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

> Source: https://netray.co/tools/epicor-baqsvc-odata-url-builder
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: Free Tools

## Short answer

Builds Epicor REST v2 OData URLs and curl commands for BAQs and business object services, with API key header and filters.

## Category

epicor

## Erp

Epicor Kinetic

## Audience

- Epicor developer
- Integration developer

## Tool

**Kind:** template

**Output:** code

**Language:** http

**Fields:**

#### Server host

**Key:** server

**Type:** text

**Default:** erp.example.com

#### Instance name

**Key:** instance

**Type:** text

**Default:** KineticProd

#### Company ID

**Key:** company

**Type:** text

**Default:** EPIC06

#### BAQ ID

**Key:** baq

**Type:** text

**Default:** ZOpenJobs

#### Rows per page ($top)

**Key:** top

**Type:** number

**Default:** 100

#### OData filter on a BAQ column

**Key:** filter

**Type:** text

**Default:** JobHead_PartNum eq 'BRK-1001'

#### Business object service

**Key:** bo

**Type:** text

**Default:** Erp.BO.PartSvc

#### Entity set

**Key:** entity

**Type:** text

**Default:** Parts

**Blocks:**

#### BAQ call (GET)

**Body:** GET https://{{server}}/{{instance}}/api/v2/odata/{{company}}/BaqSvc/{{baq}}/Data?$top={{top}}&$filter={{filter}}
Authorization: Basic <base64 of user:password>
x-api-key: <your API key>
Accept: application/json

#### Business object call (GET)

**Body:** GET https://{{server}}/{{instance}}/api/v2/odata/{{company}}/{{bo}}/{{entity}}?$top={{top}}&$select=PartNum,PartDescription
Authorization: Basic <base64 of user:password>
x-api-key: <your API key>
Accept: application/json

#### Same BAQ call as curl

**Body:** curl -G "https://{{server}}/{{instance}}/api/v2/odata/{{company}}/BaqSvc/{{baq}}/Data" \
  --data-urlencode "$top={{top}}" \
  --data-urlencode "$filter={{filter}}" \
  -H "x-api-key: YOUR_API_KEY" \
  -u "user:password" \
  -H "Accept: application/json"

**Notes:** 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.

## Content

**Intro:** 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.

**Sections:**

#### How to use the builder

**Body:** 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

**Body:** 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.

**Bullets:**

- $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

**Body:** 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.

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

**Faq:**

#### Is an API key required for REST v2?

**Answer:** 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?

**Answer:** 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?

**Answer:** 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?

**Answer:** 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.

## Search terms

epicor rest api v2 baq, epicor baqsvc odata, epicor rest api url format, epicor odata filter example, epicor api key x-api-key, epicor rest curl example, epicor kinetic rest api, epicor odata top skip

---
Talk to an engineer: https://netray.co/contact?intent=erp_ai | Machine catalog: https://netray.co/agent/catalog.json
