1Create an Admin Application Key
Keys are created in Backoffice - there is no API call that mints one for you.
- In Backoffice, go to Settings → Application APIs (
/settings/api). - Click Create Application API.
- On the Basics tab, choose the store this key belongs to and set Application Type to Admin.
- On the Access Control tab, save with every Scope checkbox left unchecked.
- Save. The plaintext key is shown once, right after creation - copy it now. Only a masked preview is shown afterwards (regenerate from the same screen if you lose it).
Unlike Store keys, there is no "publishable" variant for Admin - every Admin key is a secret, server-to-server credential. Never embed one in a browser, mobile app, or anywhere a customer could read it: a request carrying a browser Origin header is rejected outright, key or not.
2Call the API
Base URL for every Admin endpoint: /api/v1/admin/...
curl https://your-store.example.com/api/v1/admin/sales/orders \
-H "X-Commerce-Key: sk_admin_yourstore_<secret>"
X-Storefront-Application-Key also works, as a legacy alias for the same header. That's the whole auth story for an Admin Application Key - the store you're calling on behalf of is already embedded in the key itself, so no separate store header is needed.
Coming from the older
api/ surface? That one also accepts
HTTP Basic (an Auth0 username and password) and a Token-scheme JWT. Neither works here.
Issue an Admin Application Key for this API and send it as above. Your existing
integration keeps working against api/ until you are ready to move.
3Handle pagination and errors
Pagination
List endpoints read paging from request headers and return it in response headers:
| Header | Direction | Meaning |
|---|---|---|
X-Page-Number | Request & response | 1-based page number (defaults to 1) |
X-Page-Size | Request & response | Items per page (default 50, max 100) |
X-Page-Count | Response | Total number of pages |
X-Page-TotalRecords | Response | Total matching records |
curl https://your-store.example.com/api/v1/admin/sales/orders \
-H "X-Commerce-Key: sk_admin_yourstore_<secret>" \
-H "X-Page-Number: 2" \
-H "X-Page-Size: 25"
Errors
Expected failures come back as RFC 9457 Problem Details, same shape as the Store API:
{
"type": "https://…",
"title": "Bad Request",
"status": 400,
"code": "…",
"detail": "…",
"traceId": "00-abc123…"
}
All Admin traffic shares the same 200-requests-per-minute-per-key limit as the Store API. A 429 comes with a Retry-After header.
4Explore and test everything live
The full reference - every endpoint, every field - is at /docs/admin.
Click Authorize at the top of that page and paste in your key - every "Test Request" button then fires a real call using it, so you can try an endpoint before writing any code against it.