Authentication
The REST API uses the same API keys as AI / Agent access. Mint a key, then send it as a bearer token.
Get a key
Section titled “Get a key”Create an API key in the Agent Access tile of the app. The full walkthrough (and how to revoke) lives in the Agent-access docs:
Pick the right scope
Section titled “Pick the right scope”| Scope | Can call |
|---|---|
| read | GET only |
| write | GET, plus POST / PATCH / DELETE |
A read key sent to a write endpoint gets 403 FORBIDDEN_SCOPE, naming the operation
it refused. Nothing is changed, and the failure happens before any of your data is
touched.
{ "error": { "code": "FORBIDDEN_SCOPE", "message": "purchaseOrders.receive requires the 'write' scope", "retryable": false, "requestId": "0f8c…" }}The pairing is enforced on our side, not just documented: every endpoint is bound at
startup to exactly one operation and one required scope, so a write can never be reached
through a GET, and a read never through a POST.
Send the token
Section titled “Send the token”Put the key in the Authorization header:
curl -s -H "Authorization: Bearer lstk_xxxxxxxx" \ "https://prod.logistified.app/api/v1/purchase-orders"- A missing or invalid token returns
401immediately — before any data is touched. - A revoked key returns
401. Revoke in the Agent-Access tile at any time. - The key identifies your shop on its own; there is no shop id in the URL.
Managing access
Section titled “Managing access”Each request is recorded in the audit log (tagged rest:), so you can see which key made
which call — writes included, so every change is traceable to the key that made it.
Manage and revoke keys from the Agent-Access tile.