The examples use
https://www.merchkit.com as the base URL.API keys
Send your key in theAuthorization header:
A key is a secret with workspace access. Store it in a secret manager or environment variable —
never commit it to source control or expose it to a browser client.
One key, one workspace
Each API key maps to exactly one workspace. There is no account-level key that spans workspaces — to operate across multiple workspaces, create one key per workspace and select the right key per request. The same key authenticates both the REST API and the MCP server.Scopes
Keys carry scopes that grant least-privilege access. Each operation declares the scope(s) it requires, and the key must hold all of them — otherwise the request fails withinsufficient_scope.
Scopes are granted per resource and split into read and write granularity.
| Resource | Read scope | Write scope(s) |
|---|---|---|
| Products | read:products | write:products |
| Attribute definitions | read:attributes | write:attributes |
| Attribute values | — | write:attribute_values |
| Grid views | read:views | write:views |
| Vendors | read:vendors | write:vendors |
| Categories | read:categories | write:categories |
| Channels | read:channels | — |
| Completeness | read:completeness | — |
| History | read:history | — |
| Jobs | read:jobs | — |
| Import / export | — | data:import, data:export |
Scopes mirror Merchkit’s internal permission model, so an API key and a human team member reason
about access the same way. The OpenAPI spec documents the required scope for every operation in its
securitySchemes, so an agent can determine up front whether a key can perform an action.Read-only vs write keys
Because scopes are per-resource and split read/write, you can mint keys for different jobs:- Read-only key — grant only
read:*scopes. It can list and read every resource you authorize but cannot mutate anything. Use it for dashboards, analytics, sync-out jobs, or pointing an agent at your catalog for inspection. - Write key — grant the
write:*(anddata:*) scopes the integration needs, in addition to the reads. Use it for enrichment, imports, and any agent that mutates data.
Beta limitation: deletes are disabled
During the beta, destructive operations are disabled.
DELETE endpoints return 403, and
there is no delete tool in MCP, even if a key holds a delete:* scope. Destructive actions are
enabled in a later release. Build your integrations against create and update for now.