Epicor REST API v2 URL Builder for OData Services and BAQs
The Epicor REST API v2 exposes business objects and saved BAQs as OData endpoints. Getting the URL right, with company, service, entity and encoded filter, is where most first calls fail. This builder assembles the pieces for you.
Fill in
Business object GET
GET https://erp.example.com/Kinetic/api/v2/odata/EPIC06/Erp.BO.JobEntrySvc/JobHeads?$top=50&$filter=JobReleased%20eq%20true%20and%20JobClosed%20eq%20false&$select=JobNum,PartNum,ProdQty,DueDate
Saved BAQ GET
GET https://erp.example.com/Kinetic/api/v2/odata/EPIC06/BaqSvc/OpenJobsByOp/Data?$top=50
Headers
Authorization: Basic <base64 of user:password> x-api-key: <your API key> Accept: application/json Content-Type: application/json
curl example
curl -X GET "https://erp.example.com/Kinetic/api/v2/odata/EPIC06/Erp.BO.JobEntrySvc/JobHeads?$top=50&$filter=JobReleased%20eq%20true%20and%20JobClosed%20eq%20false&$select=JobNum,PartNum,ProdQty,DueDate" -H "Authorization: Basic <base64>" -H "x-api-key: <key>" -H "Accept: application/json"
Confirm the URL pattern, entity set names and authentication scheme for your Kinetic version and hosting, since cloud and on-premises setups can differ. Never put credentials in source control, and test against a non-production instance first.
Integration design review
Planning an Epicor integration or AI layer over the REST API? Request an optional design discussion.
Optional. The tool and every export work without this. No spam.
How to use the builder
Fill in your host, instance and company, select a service and set the entity set, filter and fields. Copy the GET line into a REST client such as Postman, add the headers, and run it against a test instance. For BAQ results, enter the BAQ ID and use the BAQ call. Always URL-encode spaces in filters as percent twenty.
- Pattern: host / instance / api/v2/odata / company / service / entity
- Use $select to return only the fields you need
- Use $top while testing to limit the load
- Send an API key header plus your normal credentials
OData filters in practice
Filters use operators such as eq, ne, gt, lt, and and or. String values go in single quotes and booleans are written true or false. For example, a filter for released and open jobs combines two boolean conditions with and. URL-encode the filter so spaces and quotes survive transport. Test small filters first and add conditions one at a time.
Business objects versus BAQs
Business object services are good for reading and writing standard entities and respect the business logic and BPMs on the service. BAQs are better for read-only joined data that you have already designed. A BAQ call needs the query saved, and the calling user needs permission to run it.
Common mistakes
Forgetting the company segment, using the wrong instance name, leaving spaces unencoded, and requesting every field of a large table with no top. Also check that the API key is valid for the user and that the user has access to the service in security. Hard-coded credentials in scripts are a frequent audit finding.
Frequently Asked Questions
What does an Epicor REST API v2 URL look like?
The pattern is the server, the instance name, then api/v2/odata, then the company ID, the service name and the entity set, with OData query options after a question mark. Exact details depend on version and hosting, so confirm in your API help page.
How do I authenticate to the Epicor REST API?
Most setups use an API key header together with credentials such as basic authentication, though token-based options exist depending on version and hosting. Use a dedicated integration account with limited security rights and keep keys out of source control.
Can I call a saved BAQ over REST?
Yes. Saved BAQs can be reached through the BAQ service by ID, returning the query results as JSON. The calling user needs access to the BAQ, and query parameters can be supplied as options on the URL.
Why do I get an empty list or a 401?
An empty list usually means the filter is too narrow or the wrong company is used. A 401 points to a missing or invalid API key or credentials. Check the company segment, encoding of the filter and the security of the integration user.
If you are building integrations over Epicor, we can help design a read-only API layer with logging and approval for any write-back.
Related Tools
Epicor BAQ Query Template Generator
Fill in company, days back and status filters to get a starter SQL for an open jobs BAQ, plus a design checklist for the Query Builder.
EpicorEpicor Security Group Design Worksheet
An editable worksheet to plan security groups by role and score each for exposure, so over-broad access is visible before audit.
EpicorEpicor Kinetic Upgrade Checklist
A phase-by-phase upgrade checklist covering inventory, testing, integrations, cutover and rollback for Epicor Kinetic.
EpicorEpicor Kinetic Job Status Reference
A searchable lookup of the job lifecycle flags and related fields in Epicor Kinetic job entry, so you can build BAQs and dashboards with the right filter.
More Epicor tools
See all- Epicor BPM Directive Design Template
- Epicor DMT Import Template Worksheet (Part and BOM)
- Epicor MRP Run Checklist
- Epicor Safety Stock and Reorder Point Calculator
- Epicor EOQ and Lot Sizing Calculator
- Epicor Resource Group Burden Rate Calculator
- Epicor Shop Floor OEE Calculator
- Epicor Job Cost Variance Worksheet
- Epicor Shop Floor Labor Reporting SOP Template