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
New to Epicor ERP? Start with the Epicor ERP guide and toolkit, or plan with Training Path Builder, ERP Certification Study Planner, Upgrade Path Planner.
Keep exploring
Free tools
- Epicor BAQ OData REST URL BuilderBuilds Epicor REST v2 OData URLs and curl commands for BAQs and business object services, with API key header and filters.
- Epicor REST API PowerShell Script GeneratorFill in your server, company and service name to generate a PowerShell script that calls Epicor REST v2 and saves the result to CSV.
- Epicor BAQ Query Template GeneratorFill 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.
ERP fixes and how-tos
- Epicor Kinetic API Documentation: Where It Lives and How the URLs WorkWhere the Epicor Kinetic REST API documentation lives, the v1 and v2 URL patterns, how authentication works, and what to use instead of an SDK.
- How to Add AI to Epicor Kinetic On-Premises Without Moving Your DataReference architecture for a private AI assistant on Epicor Kinetic on-premises: BAQ and REST v2 access, SQL replica, local LLM, roles, audit and rollout.
- Epicor REST API v2: OData Filter, Select and Expand ExamplesWorking Epicor Kinetic REST v2 OData examples: URL format, filter, select, top, expand, BAQ endpoints, the API key header and paging, with common error causes.
AI on your ERP
- AI for Epicor Kinetic, Beyond What Prism CoversAdd AI to Epicor Kinetic beyond Prism: private LLM over BAQs, BPM data, and REST v2, on-prem or private cloud, with honest guidance on when Prism already covers you.
- Private AI for Epicor Kinetic Cloud, Outside the Multi-Tenant BoundaryRun a private LLM on Epicor Kinetic private cloud or Kinetic Cloud data via BAQs, REST v2 and Data Fabric, keeping sensitive manufacturing data off shared AI.
Integrations
- How to add AI agents to Epicor KineticHow to add AI agents to Epicor Kinetic: a tool layer over the REST v2 API and BAQs, MRP exception triage, PO expediting, and human approval before any write.
- How to build an MCP server for Epicor KineticDesign a Model Context Protocol server for Epicor Kinetic: which read tools to expose, BAQ and REST v2 mapping, auth, stdio vs HTTP transport and audit logging.