Skip to Content

Shop

The call to make first, and the one to make once.

It proves the credential works and names what it connected to, which is what a setup screen shows back to the seller so they know they pasted the right key. It is also where two values every other response depends on come from: the shop’s currency and its timeZone.

Deliberately thin. Nothing about billing, nothing about the owner’s account, no contact email — it answers which shop, not tell me everything about this seller.

Cache it

The values here change about once a year. Read this at setup and hold the result; a consumer that calls it before every other request is spending a quarter of its rate limit on an answer that has not moved.

The object

The full shape, field by field, is on the shop object reference.

GET /shop

The call to make first. It proves the credential works and names what it connected to, which is what a setup screen shows back to the seller so they know they pasted the right key. Deliberately thin — nothing about billing, nothing about the owner's account.

Request

curl https://api.sailo.store/api/v1/shop \
  -H "Authorization: Bearer sailo_sk_…"

200

{
  "data": {
    "id": "3f1c9a80-5e17-4a2b-9c44-2f0d8b71e6a3",
    "object": "shop",
    "handle": "acme",
    "name": "Acme Supply",
    "currency": "GBP",
    "timeZone": "Europe/London",
    "createdAt": "2026-01-09T11:02:44.108Z"
  }
}

Failures

Failure modes for GET /shop
codeWhen it happens
unauthorized HTTP 401No Authorization header, or a key we do not recognise.
forbidden HTTP 403A real key, but the shop's plan does not include the API.
rate_limited HTTP 429Too many calls on this key. Slow down and retry.
server_error HTTP 500Our fault. The body says nothing about the cause; retry.
Last updated on