Skip to main content

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 your app_ 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.url rather than asking the merchant to type a domain.
  • After a shop/updated webhook, to pick up a change to the profile, business details, location or app info. The event carries a section field 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.id instead 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.