OAuth 2.1

OAuth Scopes

The 17 available scopes and the access each one grants.

Scopes define the permissions your app requests from the merchant at the moment of consent. Always request the minimum scopes your integration actually needs.

Scope table

ScopeAccess granted
read:productsList and read products, variants, images, and metadata
write:productsCreate, update, and delete products and variants
read:categoriesList and read product categories
write:categoriesCreate, update, and delete categories
read:inventoryRead inventory levels by variant and location
write:inventoryUpdate inventory quantities
read:discountsList and read discounts, coupons, and promotions
write:discountsCreate, update, and delete discounts
read:ordersList and read orders, line items, and shipments
write:ordersUpdate order status, add notes, process returns
read:customersList and read customers, addresses, and order history
write:customersCreate and update customers and addresses
read:storeRead general store information (name, currency, language, etc.)
write:storeUpdate general store settings
read:analyticsAccess sales, visit, and conversion metrics
read:webhooksList webhooks configured on the store
write:webhooksCreate, update, and delete webhooks

How scopes are shown to the user

On the consent screen, scopes are grouped into merchant-friendly categories that describe the store area affected:

  • Your catalogread:products, write:products, read:categories, write:categories, read:inventory, write:inventory, read:discounts, write:discounts
  • Your salesread:orders, write:orders
  • Your customersread:customers, write:customers
  • Your store settingsread:store, write:store
  • Your reportsread:analytics
  • Automationread:webhooks, write:webhooks

Best practices

  1. Minimum privilege — only request scopes your integration actively uses. Extra scopes create distrust with the user.
  2. Read vs. write scopes — if your app only reads data, do not request write:* scopes.
  3. Expanding scopes — if you later need additional scopes, start a new authorization flow. The user must consent again.
  4. Scopes in registration — declare in the scope field of client registration the maximum set of scopes your app may request.

Scopes in the access token

The scope field in the token endpoint and introspection responses reflects exactly which scopes were granted by the user — which may be a subset of what you requested if the user denied some.

{
  "active": true,
  "scope": "read:products read:orders",
  ...
}

Always validate that the token includes the required scope before attempting the operation.

On this page