Stores
Get the authenticated store
Identify the store your API key belongs to.
Overview
Call this first: it confirms
the key works, tells you which store you are operating on, whether the
store runs on the shopify or universal platform, its current
subscription plan, the ISO 4217 currency every price on the store is
denominated in, the commerce integrations it has connected, and the
scopes your key grants — so you know which operations are available
before calling them. The operation is read-only, has no side effects,
and is always safe to retry. Requires the store:read scope.
Two of those fields are prerequisites for writing. Creating an order
(POST/api/v3/orders) or an integration product
(POST/api/v3/customisers/{customiser_id}/products) requires a
currency equal to this store's and an integration_id naming an
enabled integration of type custom that belongs to this store; this
operation is where both values come from. A store whose currency is
null has no valid three-letter currency configured and those writes
fail with a 409 store_currency_unavailable until the merchant sets one
in the merchant admin. A store with no enabled custom integration
cannot create orders or integration products at all: the merchant
connects one in the merchant admin under Integrate.
Authenticate every request with a store API key sent as a bearer token
(Authorization: Bearer <api key>); keys are created in the merchant
admin under Integrate → API Tokens with a chosen set of scopes and an
optional expiry. A 401 problem response means the key is missing,
invalid, or expired — create or re-copy the key. A 403 problem response
with code insufficient_scope means the key is valid but lacks a
required scope: the problem's required_scopes and granted_scopes
members say which scope is missing and what the key can do; create a
key that includes the required scope. A 429 problem response means too
many requests: wait retry_after seconds, then retry. Error responses
use RFC 9457 problem+json: machine-readable code, a documentation
link in type, and a request_id to quote when contacting support.
Authorisation
Bearer token required. Include it in theAuthorization header.
Required scope: store:read
curl https://web.signcustomiser.com/api/v3/stores/me \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'{
"data": {
"object": "store",
"id": 1,
"name": "Demo Signs",
"platform": "universal",
"plan": "starter",
"currency": "GBP",
"integrations": [
{
"object": "integration",
"id": 17,
"type": "custom",
"name": "Warehouse bridge",
"enabled": true
},
{
"object": "integration",
"id": 9,
"type": "woocommerce",
"name": "Old WooCommerce shop",
"enabled": false
}
],
"scopes": [
"store:read",
"pricing:read",
"pricing:write"
],
"created_at": "2026-01-12T03:14:15Z"
},
"links": {
"self": "https://web.signcustomiser.com/api/v3/stores/me",
"documentation": "https://www.signcustomiser.com/help/api/"
},
"meta": {
"api_version": "v3",
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
}{
"type": "https://www.signcustomiser.com/help/api/problems/missing_api_key",
"title": "Missing API key",
"status": 401,
"code": "missing_api_key",
"detail": "Provide a store API key as a bearer token: Authorization: Bearer <api key>. Keys are created in the merchant admin under Integrate → API Tokens.",
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}{
"type": "https://www.signcustomiser.com/help/api/problems/invalid_api_key",
"title": "Invalid API key",
"status": 401,
"code": "invalid_api_key",
"detail": "The bearer token is not a valid store API key. Check the value, or create a new key in the merchant admin under Integrate → API Tokens.",
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}{
"type": "https://www.signcustomiser.com/help/api/problems/expired_api_key",
"title": "Expired API key",
"status": 401,
"code": "expired_api_key",
"detail": "This store API key has passed its expiry date and can no longer be used. Create a replacement key in the merchant admin under Integrate → API Tokens.",
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}{
"type": "https://www.signcustomiser.com/help/api/problems/insufficient_scope",
"title": "Insufficient scope",
"status": 403,
"code": "insufficient_scope",
"detail": "This operation requires the store:read scope, but the API key grants the following scopes: pricing:read. Create a key that includes the required scope in the merchant admin under Integrate → API Tokens.",
"required_scopes": [
"store:read"
],
"granted_scopes": [
"pricing:read"
],
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}{
"type": "https://www.signcustomiser.com/help/api/problems/unknown_parameter",
"title": "Unknown query parameter",
"status": 422,
"code": "unknown_parameter",
"detail": "The request includes query parameters this endpoint does not support: filter. This endpoint accepts no query parameters.",
"errors": [
{
"parameter": "filter",
"code": "unknown_parameter",
"detail": "The query parameter \"filter\" is not supported by this endpoint."
}
],
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}{
"type": "https://www.signcustomiser.com/help/api/problems/rate_limited",
"title": "Too many requests",
"status": 429,
"code": "rate_limited",
"detail": "You have exceeded the request limit for this API key. Wait 60 seconds, then retry.",
"retry_after": 60,
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}