Docs/Get started/Authentication
Reference

Authentication

Every API call is authenticated with a workspace-scoped API key sent in the X-API-Key header. Keys carry scopes and are bound to one environment.

The X-API-Key header

Send your API key in the X-API-Key header on every request. There is no session, no cookie, and no unauthenticated endpoint other than the status page.

text
X-API-Key: idpf_live_9f2a4c81e6b74d0fa3c5e7b921d84f60

Key format

A key is idpf_<environment>_<random>. The environment is baked into the key, so a key only ever acts in the environment it was minted for, and a job inherits its environment from the key that submitted it.

PrefixEnvironmentNotes
idpf_sandbox_SandboxFree, rate-limited. Never bills against your plan.
idpf_live_ProductionMetered against your plan allowance.

Only a SHA-256 hash of the key is stored — the full secret is shown once, at creation. To mint one, see Generate an API key.

Scopes

A key is minted with a set of scopes. Scopes describe the access a key is intended for; the key's plan and bound pipeline also govern what it can reach, and per-scope enforcement is tightening over time.

ScopeGrants
jobs:writeSubmit and cancel jobs
jobs:readRead job status, stage traces, and results
pipeline:readList pipelines and their published versions
api-keys:manageCreate, rotate, and revoke API keys
billing:readRead credit balance and billing
Keys are shown once

The full secret is returned only in the create response. Store it in your secret manager immediately. Rotating issues a new secret with an overlap window, so callers migrate without downtime.

Errors

StatusCodeMeaning
401invalid_api_keyMissing, malformed, revoked or expired key.
403insufficient_scopeValid key, but the scope was not granted.
404not_foundResource exists but is outside the key's workspace — deliberately indistinguishable from absence.
429rate_limitedBack off using the Retry-After header.
Was this page helpful?
Last updated 19 Aug 2026