AWRA OpsHub Search

AWRA Help Center

Copy link
Help Workflow Support
01 Integrations Overview Integrations 02 Connectors Directory Integrations

Developer API

Read your own data programmatically — items, stock, customers, invoices, vendors, purchase orders — with an API key, from your own scripts, spreadsheets or systems.

AWRA publishes a read API for your workspace's data. The reference — every resource, every filter, and copy-and-paste examples — is at the API documentation page. This article covers the parts people get wrong before they read it.

Keys Carry Your Workspace

Create keys at Settings → API Keys, and send one as a bearer token. The key identifies your organization — you do not pass a workspace or company identifier, and a key can never read another organization's data. Keys can be rotated (new secret, same purpose) or revoked (dead immediately). Rotate on a schedule; revoke the moment a key might have leaked.

Treat a key like a password: it belongs in a server-side configuration, not in a browser page, a mobile app, or a repository.

What You Can Read

  • Identity — confirm which workspace a key belongs to.
  • Inventory — items with search, category and low-stock filters, and stock levels.
  • Sales — customers and invoices, filterable by status, customer, issue date, and whether a balance is still due.
  • Procurement — vendors (including preferred-only) and purchase orders by status, payment status, vendor and order date.

Paging: Numbered Pages Or A Cursor

Lists are paginated — 25 by default, up to 100 per request. Which paging mode you choose matters once your data is large:

  • Numbered pages are fine for browsing and for small result sets, and give you a total.
  • Cursor paging is what you want to read a whole resource. Page 1,000 costs what page 1 costs, and no row is skipped or duplicated if records change while you are paging. Follow the next link the response gives you; do not build cursors yourself, and do not expect a total.

Sync Incrementally

Ask for what changed rather than re-reading everything: an updated since timestamp returns only records modified at or after that moment. Store the time of your last successful run and pass it next time. An unparseable timestamp is rejected with an error rather than silently ignored — which is deliberate, because a silently ignored filter would hand you a full export while you believed you were syncing a delta.

Good Manners

  • Filter on the server, not in your script. Every resource has filters; use them instead of downloading everything and discarding most of it.
  • Handle failure. Retry with a delay; never hammer a failing endpoint in a tight loop.
  • Do not poll for events. If you need to react to something happening, drive it from Workflow Automation or a connector rather than a loop asking whether it happened yet.

This API Reads

It is a read interface. To get data in, use the import templates on the module you are loading, or the connectors. To move data between AWRA and another system on a schedule, look at Integrations first — it is usually already built.

Need help with this topic?

Capture the module, record number, branch or warehouse, user, visible message, and what you expected to happen before contacting support.

Open support guide