EpicorFree generatorPDF, Excel, Word exportEpicor Kinetic

Epicor BAQ OData REST URL Builder (api/v2 BaqSvc and Erp.BO)

Epicor REST v2 follows a predictable URL pattern, but typos in the instance, company or BAQ segment waste hours. This builder assembles the URL, headers and a curl equivalent so you can test in Postman or a script in seconds.

Fill in

Generated code
Download:

BAQ call (GET)

GET https://erp.example.com/KineticProd/api/v2/odata/EPIC06/BaqSvc/ZOpenJobs/Data?$top=100&$filter=JobHead_PartNum eq 'BRK-1001'
Authorization: Basic <base64 of user:password>
x-api-key: <your API key>
Accept: application/json

Business object call (GET)

GET https://erp.example.com/KineticProd/api/v2/odata/EPIC06/Erp.BO.PartSvc/Parts?$top=100&$select=PartNum,PartDescription
Authorization: Basic <base64 of user:password>
x-api-key: <your API key>
Accept: application/json

Same BAQ call as curl

curl -G "https://erp.example.com/KineticProd/api/v2/odata/EPIC06/BaqSvc/ZOpenJobs/Data" \
  --data-urlencode "$top=100" \
  --data-urlencode "$filter=JobHead_PartNum eq 'BRK-1001'" \
  -H "x-api-key: YOUR_API_KEY" \
  -u "user:password" \
  -H "Accept: application/json"

Replace placeholder credentials; never commit real keys. Check your Epicor version and whether your site uses basic auth, token auth or both, and that the REST API and the BAQ are enabled for the API key. BAQ column names in filters usually take the form Table_Column; confirm in the BAQ designer.

Review my Epicor integration design

Optional: a short expert review of an Epicor REST integration approach.

Optional. The tool and every export work without this. No spam.

How to use the builder

Fill in the server, instance, company and BAQ ID, then copy the BAQ call. Paste into Postman, add your credentials and the x-api-key header, and send. For business objects, set the service and entity set, for example Erp.BO.PartSvc and Parts, and use $select to return only the columns you need. Adjust $top to page through large results, with $skip for the next page.

Anatomy of the URL

The path is host, instance, api/v2/odata, company, then either BaqSvc and the BAQ ID or a business object service and entity set. BAQs are called with /Data at the end. Queries use standard OData options.

  • $top and $skip: paging
  • $filter: row restriction, for example Field eq 'value'
  • $select: limit returned columns
  • $orderby: sort, for example DueDate desc
  • Headers: Authorization and x-api-key for v2

Common mistakes

Calling a BAQ that is not published or not shared with the API user returns an authorization or not found error. Using single quotes incorrectly in $filter, forgetting to URL-encode spaces, or pulling an entire table with no $top causes timeouts. Remember that a BAQ with required parameters needs those parameters supplied. Keep keys in a vault, and test against a non-production instance first.

Frequently Asked Questions

Is an API key required for REST v2?

Epicor Kinetic REST v2 uses an API key sent in the x-api-key header along with normal credentials. Keys are created in the Epicor administration area and can be restricted. Check your version's documentation for the exact setup.

How do I page through more than 100 rows?

Use $top for the page size and $skip for the offset, increasing $skip by the page size each call. Keep the sort stable with $orderby so rows do not move between pages.

Can I use this for updates?

The builder shows GET calls. Updates use POST, PATCH or business object method calls with a JSON body, and they fire BPMs and security. Test thoroughly in a non-production instance before writing data.

Why do I get 404 on my BAQ?

Typical causes are a wrong BAQ ID, wrong company or instance segment, or a BAQ that is not exposed to REST. Verify the BAQ name in Query Builder and confirm the URL pattern against a working call.

If you are building many integrations on Epicor REST, Netray can help design read-only access patterns and AI layers on top of them.