Overview
GET /api/v1/app/context returns the identity of the store your app is installed on and the
merchant who installed it. It is default-granted to every installation: no OAuth scope is
required, because it exposes only the store profile an app needs to render its own header.
Call it first, before any scoped endpoint, to display the store’s name, logo, currency,
country and storefront domain, and to learn whether the installing user is the owner or a staff
member.
Authentication
Send yourapp_ access token as a Bearer header. This endpoint accepts an app token only. A
merchant session is refused with 403, because the response is the store the app is installed on,
not the store a person happens to be browsing.
The store comes from the installation bound to your token, never from a header or query
parameter. There is no x-shop-id here: a token can only ever read the one store it was installed
on.
Response
app
id and clientId are stable across every store. installationId changes with each install. The
app id is the value the scripts API accepts as integration, so an app never has to hardcode or
guess it. See Create a script.
store
The storefront domain is resolved from the store’s own domains in this order: the default
domain first, then an active custom domain, then any other active domain. When none of those is
available it falls back to the store’s legacy domain field.
domain and url are both null
when the store has no domain at all.
Use store.url to build product links, emails and canonical URLs. Do not ask the merchant to
type a domain: this is the storefront they have already set up, and a hardcoded value goes stale
when they change it.
Every field inside location and business is returned as null when it is not set, so the
object shape stays stable. socialMedia is the store’s own object and its keys vary by store.
user
user is the person who completed the install, not necessarily the person viewing your app right
now. Use user.id to bind your own session to that person, and compare it with the ?user= value
the dashboard appends to your iframe URL. See Install your app.
This endpoint is for identity, not for store data. It carries no orders, customers, products,
financial balances or credentials. Read those from their own endpoints with the matching scope.
When to call it
- On first load, to render the store’s name, logo, currency, country and storefront domain without asking the merchant for a scope.
- When you need a link, to build product links, emails and canonical URLs from
store.urlrather than asking the merchant to type a domain. - After a
shop/updatedwebhook, to pick up a change to the profile, business details, location or app info. The event carries asectionfield naming the part that changed and no values, so re-fetch them here. See Webhooks. - When binding a session, to record which user installed the app and whether they are the owner or staff.
- When you need your own id, read
app.idinstead of hardcoding it. The scripts API and any support or billing link can use it.
Errors
Next steps
Scopes & permissions
The default grant and every scope an app can request.
Webhooks
The
shop/updated topic and the rest of the event list.Install your app
Exchange the install for a token and bind your session to
user.id.Apps API overview
Authentication, the response envelope and money units.

