Token and store details

Check which store a Store API token belongs to, the store's type, and the scopes the token grants.

Call GET /discover to confirm which store a token belongs to, whether that store is live, a development store, or a transfer store, and which scopes the token grants. It is useful after an app is installed or a token is replaced, and it does not require a resource scope. Development and transfer stores have smaller rate limits and take test payments only; see Development and transfer stores. A partner or developer organization can manage stores in different regions. A Store API token still identifies one store; use the returned store_id to keep each store's cached data separate.

Endpoints#

Discover connection

GET

Inspect the authenticated Store API connection.

Returns the store, its store type, the API version, the token's identity, and granted scopes resolved from your bearer token. Use this read-only request after installation or token rotation to check the connection. No resource scope is required. The token must be valid and the store must have an active or trialing subscription. The request uses the normal rate-limit allowance. A partner or developer organization can manage stores in different regions. A Store API token still identifies one store; use the returned store_id to keep each store's cached data separate.

Response fields

The response is an object with success: true and a data object. The fields below describe data; the sample shows an app token with a linked sales channel.

Field Type Presence and meaning
api_version string Always present. The API version pinned to the credential, currently 2025-01.
token_type string Always present. app for both tpat_ and tast_; store_admin for tsat_.
store_id string Always present. ID of the store this token can access.
store_name string Always present. The store's name from Settings > General.
store_country string Always present. The store's two-letter country code from Settings > General, or empty when the merchant has not set one. Business details such as address and phone are the primary location: the first row of GET /locations, with is_primary: true.
store_timezone string Always present. The store's timezone identifier.
store_currency string Always present. The store's base currency code.
store_default_locale string Always present. The store's default locale code.
primary_domain string Always present. The resolved primary domain, without a URL scheme. It can be empty when no value is available.
plan_name string Always present. The connected store's plan name.
store_type string Always present. live for a store that serves real customers, dev for a development store, or transfer for a store a partner is building for a client. Development and transfer stores use smaller rate limits whatever their plan, and take test payments only; see Development and transfer stores. A development store is never billed, and a transfer store is not billed until the client takes ownership; app charges and usage on these stores are test only.
scopes array of strings Always present, including an empty array when there are no granted scopes. Check the scope catalog for implied read access.
app_id, app_name, app_slug string Present only for app tokens. The app's ID, display name, and slug.
installation_id string Present for an app token when an installation ID is available; otherwise omitted.
sales_channel_id, channel_type string Present for an app token when the corresponding sales-channel value is available; otherwise omitted.
token_name string Present only for store_admin tokens. The name given to the admin token.

A Store Admin token response contains token_name and omits the app, installation, and sales-channel fields. Conditional fields are omitted rather than returned as null. This response does not contain the credential itself. See Authentication, Rate limits, and Errors.

Headers

Name Type Description
Authorization required string

Bearer Store API token.

Errors

  • 401 UNAUTHORIZED

    The Authorization header is missing.

  • 401 INVALID_TOKEN

    The Bearer header or token prefix is malformed.

  • 401 STORE_ADMIN_TOKEN_RUNTIME_UNAUTHORIZED

    The token was not accepted: it is unknown, expired, revoked, or replaced, or its app was uninstalled. Returned for app, App Bridge session, and Store Admin tokens alike.

  • 402 SUBSCRIPTION_REQUIRED

    The store does not have an active or trialing subscription.

  • 403 API_VERSION_UNSUPPORTED

    The credential is pinned to an API version that cannot be served.

  • 429 RATE_LIMITED

    The request allowance is exhausted. Wait for Retry-After before retrying.