Skip to content

Authentication

The REST API uses the same API keys as AI / Agent access. Mint a key, then send it as a bearer token.

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:

ScopeCan call
readGET only
writeGET, 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.

Put the key in the Authorization header:

Terminal window
curl -s -H "Authorization: Bearer lstk_xxxxxxxx" \
"https://prod.logistified.app/api/v1/purchase-orders"
  • A missing or invalid token returns 401 immediately — 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.

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.