- Is the workspace on a plan that includes the API? If not, you get
403 plan_required. - Is this key allowed to do what you’re asking? If not, you get
403 insufficient_scope.
How permissions work
A permission is just a resource paired with an action — like “read products” or “create orders.” You can give a key full access, or pick exactly what it’s allowed to touch. The resources you’ll use with the API are:product— products, plus their categories and tags, collections and bundles (they’re all product merchandising)sale— orderssale_payment— recording a payment against an ordercustomer— customerswebhook— managing your webhook endpoints
GET reads, POST creates, PUT and PATCH
update, and DELETE deletes. So reading a product needs read access to products, creating an order
needs create access to orders, and so on.
An example
Say you give a key read access to products and orders. It can callGET /v1/products and
GET /v1/orders without a problem. But if it tries POST /v1/products, it gets back
403 insufficient_scope — it was never allowed to create products.
A full-access key skips these checks and can do everything.

