Developer documentation

Keys and permissions

Give each integration the access it needs, with a key you can expire or revoke.

Sandbox betaTest with simulated documents and orders. Live headless ordering is disabled.

Projects, applications and keys

Projects belong to your organization. An application belongs to a project and has a fixed sandbox or live environment. Keys belong to that application. Orders, files, quotes, events and usage are isolated by application.

Send Authorization: Bearer YOUR_KEY with every REST or MCP request. Secret values appear once on creation; stored credentials contain a digest and a display prefix. The console shows permissions, expiry, last use and revocation status.

Choose a scope

catalog:read discovers products and capabilities. files:write registers and preflights sandbox files. quotes:write creates and reads quotes. orders:write creates orders and performs supported order actions. orders:read retrieves orders, jobs, shipments and events. billing:read reads usage, invoice projections and the disabled credit balance. webhooks:write manages webhook endpoints, signing-secret rotation and delivery replay.

For an agent that only researches options, start with catalog:read. For a sandbox printing workflow, add files:write, quotes:write, orders:write and orders:read. Add billing or webhook permissions when your integration uses those endpoints. MCP lists only tools permitted by the presented key.

Rotate and revoke

Create a replacement key, update the server secret, verify it works, then revoke the old key in the console. Revocation and expiry are checked on each request. Use a separate application per environment and a named key per integration.

Keep keys in environment variables or a secret manager. Serve requests from your backend. Never place credentials in a public repository, browser bundle, document, shared prompt or URL.