Skip to content
Developer platform · Scoped GraphQL API

One API that answers only what you were allowed

Apps call a GraphQL endpoint with their token. Each field names the scope it needs, and a query outside the app's scopes is refused with SCOPE_DENIED and written to the audit log.

In short

Apps read and write through POST /api/apps/graphql, where every field checks the scopes the merchant granted, for example orders requires read:orders. A request without the scope is refused with SCOPE_DENIED and recorded in the audit log, and app calls are limited to 60 a minute per app.

The problem it solves

An API key that opens everything turns every app into a copy of your database. Scopes only mean something if the API enforces them on every field.

How it works

4 steps, start to finish

  1. 1

    Install grants scopes

    The merchant approves the scopes on the consent screen.

  2. 2

    Call the endpoint

    Send GraphQL to /api/apps/graphql with the app token.

  3. 3

    Scopes are checked

    Each field checks its scope before it answers.

  4. 4

    Denials are recorded

    A missing scope returns SCOPE_DENIED and lands in the audit log.

In detail

What scoped graphql API does for you

Common queries

Questions people ask

  • The field is refused with SCOPE_DENIED, and the denial is written to the audit log.
  • Older REST routes still exist but are deprecated in favour of GraphQL.
  • In minor units, such as totalMinor and paidMinor on an order.

Scoped GraphQL API · Free to start

Try scoped graphql API on your own business

Set up in a couple of minutes. Your catalogue, orders and books stay yours to export.

  • Live in 2 minutes
  • Free to start
  • No credit card
The dashboard open on a laptop, a tablet and a phone