Get a test key
Create one withmode: test (needs keys:manage). The key is returned once, as for any key.
- Test keys start
pk_test_, in every environment. A live key startspk_live_in production; elsewhere every key startspk_test_, so readmode(on the key, fromGET /v1/api-keys) rather than the prefix. - A platform that provisions tenants can ask for one:
issue_api_key: truewithapi_key_mode: "test". - Rotating a key keeps its mode.
- A test key holds job scopes only:
jobs:write,jobs:read,jobs:deleteandunderwriting:write. It cannot manage keys, webhooks, mailboxes, integrations or settings, so a leaked one reaches no live job and cannot mint a live key.
POST /v1/parse, GET /v1/jobs/{job_id}, corrections, file downloads.
What is off
A test job is read as a deployment without the paid services would read it, and says so:test_mode: true on
the job (GET /v1/jobs/{job_id}) and on its result.
So a test result is real but unlabelled: use it to check your integration (upload, webhook, status handling,
mapping the response fields), not to judge categories or positions. A test job costs nothing and its
usage.cost_usd is 0.
Test and live are separate
Like Stripe’s two modes, a key sees only the jobs of its own mode:GET /v1/jobslists test jobs for a test key and live jobs for a live key.- A job of the other mode is
404on every/v1/jobs/{job_id}route (result, files, corrections, erasure). AnIdempotency-Keyused in one mode cannot be reused in the other (409). DELETE /v1/jobs?end_user_id=erases the jobs of the key’s own mode.- Test jobs are not metered: they do not appear in
GET /v1/usage, the quality report, or toward a monthly budget, and a spent monthly budget does not stop them.
Webhooks
Your webhook endpoints belong to the tenant, not to a mode, so they receive test jobs’ events too. Checkpayload.livemode: it is false for a test job and true for a live one.
Limits still apply
A test key is rate limited like any key, andmax_active_jobs caps the queued and running test jobs (counted
apart from your live jobs, so a test run never holds up production).