Developer ToolsFree generatorPDF, Excel, Word exportAcumatica

Acumatica REST API URL Builder

Acumatica exposes ERP data through a contract-based REST API where every call is a URL made of the instance, an endpoint, a version and an entity. This builder assembles that URL, the OData-style query options and the login and logout calls so you can paste them straight into Postman or code.

Fill in

No trailing slash. Include the virtual directory for on-premise installs.

Check the Web Service Endpoints screen (SM207060) for versions on your tenant.

Generated code
Download:

1. Login (store the session cookie)

POST https://mycompany.acumatica.com/entity/auth/login
Content-Type: application/json

{
  "name": "apiuser",
  "password": "<password>",
  "tenant": "Company"
}

2. Read records

GET https://mycompany.acumatica.com/entity/Default/24.200.001/StockItem?$filter=ItemStatus eq 'Active'&$select=InventoryID,Description,ItemClass,DefaultPrice&$expand=[$expand detail]&$top=100&$skip=0
Accept: application/json

3. Read one record by key

GET https://mycompany.acumatica.com/entity/Default/24.200.001/StockItem/<key value>?$select=InventoryID,Description,ItemClass,DefaultPrice
Accept: application/json

4. Create or update (PUT)

PUT https://mycompany.acumatica.com/entity/Default/24.200.001/StockItem
Content-Type: application/json

{
  "InventoryID": { "value": "WIDGET-100" },
  "Description": { "value": "Widget, anodized" }
}

5. Logout (release the API login slot)

POST https://mycompany.acumatica.com/entity/auth/logout

Remove the $expand parameter if you leave it blank. Field names and values in the PUT body are Acumatica contract names and must match your endpoint version. Acumatica limits concurrent API logins per license, so always log out. Verify against your version of the Web Service Endpoints.

Review my Acumatica integration plan

Optional: send us your endpoint list and we will point out rate limit, paging and session issues before you build.

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

How to use the builder

Enter your instance base URL, the endpoint name and version, and the entity you want such as StockItem, SalesOrder or Customer. Add a filter, the fields you need and a page size. The output shows login, read, single-record read, create or update, and logout. Copy the blocks into your REST client, replace the password placeholder and run the login first. Acumatica returns a session cookie that every later call must send.

  • Always login, call, then logout in one script
  • Use $select to cut payload size on wide entities
  • Page with $top and $skip instead of one huge pull
  • Use the Default endpoint for standard entities, a custom endpoint for your own

How the URL is structured

The path pattern is /entity/{endpoint}/{version}/{entity}. The Default endpoint ships with Acumatica and covers customers, vendors, stock items, sales orders and many more. The version string follows the release, for example 24.200.001 for a 2024 R2 style build. Query options follow OData conventions: $filter uses operators such as eq, ne, gt and lt, strings use single quotes, and $expand pulls detail collections like warehouse details or order lines in the same call.

Reading the result and paging

A GET returns a JSON array where every field is an object with a value property, for example the InventoryID is returned as an object holding the actual string. Plan your parsing for that. For large tables, loop with $top set to a few hundred and increase $skip by the same amount until a page comes back short. Acumatica can also time out very large reads, so prefer narrow filters such as a last modified date.

Common mistakes

Most failures come from small details: forgetting to log out so the license slot stays occupied, using double quotes inside a filter, sending the wrong tenant name, or calling an entity that is not in the chosen endpoint version. A 500 response on a PUT usually means a required field or a key mismatch rather than a bad URL. Test reads first, then writes in a sandbox tenant.

Frequently Asked Questions

What is the Acumatica contract-based REST API?

It is a versioned web service where each endpoint defines a set of entities such as customers or sales orders with stable field names. Because the contract is versioned, your integration does not break when the underlying screens change between releases.

How do I authenticate to Acumatica REST?

You can post name, password and tenant to the auth login URL and reuse the session cookie, or use OAuth 2.0 with a connected application. The cookie method is simplest for scripts. Always call logout when finished to free the login.

Why does my $filter return nothing?

Check that field names match the contract exactly, string values use single quotes, and dates follow the datetimeoffset format. Also confirm the user has rights to the data. A silent empty result often means a misspelled field or a restrictive role.

Can I use this for custom fields?

Yes, but custom fields appear in the REST contract only after you add them to a custom endpoint or through the custom field mapping on the Default endpoint. Use the Web Service Endpoints screen to expose them, then reference them by the name you mapped.

If you are wiring Acumatica to MES, quality or reporting systems, we can build and test those integrations with your team, including read-only AI queries over the data.