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
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
-
401UNAUTHORIZEDThe Authorization header is missing.
-
401INVALID_TOKENThe Bearer header or token prefix is malformed.
-
401STORE_ADMIN_TOKEN_RUNTIME_UNAUTHORIZEDThe 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.
-
402SUBSCRIPTION_REQUIREDThe store does not have an active or trialing subscription.
-
403API_VERSION_UNSUPPORTEDThe credential is pinned to an API version that cannot be served.
-
429RATE_LIMITEDThe request allowance is exhausted. Wait for Retry-After before retrying.