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.
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.
Related Tools
Acumatica Generic Inquiry Design Template
A fill-in design specification for a Generic Inquiry (SM208000): purpose, tables and joins, result columns, parameters, access rights and test cases.
ERP Migration & SelectionAcumatica License Cost Calculator
Turn a vendor quote into a multi-year cost view: subscription with annual increases, implementation, training, integrations and internal time.
Other ERPsAcumatica Manufacturing Edition Setup Checklist
A group-by-group checklist covering the foundation, engineering data, shop floor, planning and costing setup for Acumatica Manufacturing.
More Developer Tools tools
See all- Acumatica Sales Order REST JSON Template
- Acumatica OData Generic Inquiry URL Builder
- Acumatica REST API Python Script Generator
- SAP Sales Order ABAP SELECT Generator (VBAK, VBAP, VBFA)
- SAP Sales Order Create BAPI ABAP Generator (BAPI_SALESORDER_CREATEFROMDAT2)
- SAP ABAP Open Items SELECT Generator
- SAP ACDOCA SQL Query Generator
- SAP QM Inspection Lot ABAP SELECT Generator
- SAP Quality Notification Pareto SQL Query Generator