OData Query Builder

Construct a Dataverse-style OData request URL from a base API URL, entity set, selected properties, and optional $filter, $expand, $orderby, $top, $skip, and $count values. The browser encodes option values but does not validate or execute the request.

How to Use the OData Query Builder

Assemble an encoded Web API request URL, then execute it yourself with an authorized HTTP client.

  1. Enter your Dataverse Web API base URL and the entity-set name (plural logical name).
  2. Add $select properties one at a time via Enter, comma, blur, or Add field.
  3. Optionally enter raw $filter, $expand, and $orderby text; set $top, $skip, or Include $count.
  4. Inspect the live URL preview and confirm encoding looks correct.
  5. Copy or download the URL, then test it with authentication and least-privilege permissions.

URL construction method

The builder trims trailing slashes from the base URL, appends the entity set, joins selected properties with commas, URL-encodes each option value, and concatenates populated options with &. Empty options are omitted.

Example

Base https://yourorg.crm.dynamics.com/api/data/v9.2, entity set accounts, select name and revenue yields a URL ending in /accounts?$select=name%2Crevenue (comma encoded). Adding $filter=statecode eq 0 encodes spaces and operators in the filter value.

When to use it

  • Drafting Web API URLs for Postman, curl, or application code.
  • Quickly encoding awkward filter text without hand-rolling percent escapes.
  • Not for discovering metadata—bring entity-set and property names from your environment.

Mistakes and limits

  • Display labels are not entity-set or property names.
  • No grammar check, paging-cookie helper, or header builder is included.
  • A constructed URL is not proof of production safety or correct privileges.

Privacy note

URL construction is local; no request is sent from this page. Query strings can still expose tenant hostnames, GUIDs, and filter literals in browser history, logs, and shared tickets—redact before sharing.

FAQ

Does this call my Dataverse environment?

No. It only constructs a URL string in your browser. It does not authenticate, send HTTP requests, inspect metadata, or retrieve records.

How are query options encoded?

Selected columns are joined with commas into $select. Each populated option value ($filter, $expand, $orderby, $top, $skip) is passed through encodeURIComponent. $count=true is appended when Include $count is enabled.

Does the builder validate OData syntax inside $filter?

No. $filter, $expand, and $orderby are treated as opaque strings that get URL-encoded. Grammar, types, and relationship paths are your responsibility.

What is the default base URL pattern?

The empty form starts with a placeholder like https://yourorg.crm.dynamics.com/api/data/v9.2 and entity set accounts. Replace the host and API version with values that match your tenant.

Should I percent-encode values before pasting them into the fields?

Usually no. The builder encodes option values for you. Pre-encoding can double-encode percent signs and produce a URL the service rejects.

Is the generated URL guaranteed to work?

No. Confirm base URL, API version, entity-set and property logical names, expand paths, OData syntax, headers, permissions, pagination, and service limits in your environment before executing it.

Can this tool add Prefer headers or authentication?

No. It builds the request URL only. Auth tokens, Prefer: odata.include-annotations, and other headers belong in your HTTP client or code.