The API is included in the plan. The account owner creates keys in the developer settings. For a test account, email hello@storebay.co.uk.

Developers
Products pricing

List products

GET
/products

Authorization

AuthorizationBearer <token>

Present an API key (sb_live_… / sb_test_…), an OAuth2 access token, or a static token as a Bearer credential. The operator is implied by the credential; it is never in the path. Only a SHA-256 hash of an API key is stored server-side.

In: header

Query Parameters

cursor?string

Opaque pagination cursor from meta.cursor.next of the previous page. Do not construct or parse it.

limit?integer

Page size. Values above the maximum are clamped.

Range1 <= value <= 100
Default25
site_id?string

Products sold at this site — its own products and every product sold at all sites (site_id null).

Formatuuid
kind?string

Filter by product kind.

Value in

  • "one_off"
  • "recurring"
  • "deposit"
  • "fee"
is_active?boolean

Filter by active flag.

usable_website?boolean

Filter to products online checkout offers as an extra (true), or to those it does not (false).

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/products"
{  "data": [    {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "object": "product",      "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",      "name": "string",      "sku": "string",      "kind": "one_off",      "description": "string",      "price_minor": 0,      "currency": "str",      "vat_treatment": "standard_20",      "is_active": true,      "price_mode": "fixed",      "usable_website": true,      "usable_shop": true,      "track_stock": true,      "accounting_code": "string",      "unit_label": "string",      "standard_rate_above_per_day": 1,      "unit_price_e4": 1,      "created_at": "2019-08-24T14:15:22Z",      "updated_at": "2019-08-24T14:15:22Z"    }  ],  "meta": {    "limit": 0,    "cursor": {      "next": "string",      "has_more": true    }  }}
{  "error": {    "code": "unauthorized",    "message": "Missing or invalid credential."  }}
{  "error": {    "code": "insufficient_scope",    "message": "The credential lacks a scope required by this endpoint."  }}
{  "error": {    "code": "rate_limited",    "message": "Rate limit exceeded. Retry after 7s."  }}
{  "error": {    "code": "validation_error",    "message": "string",    "details": [      {        "field": "string",        "issue": "string"      }    ]  }}