Self-register for a free, extract-only API key (no auth)
Mint a free API key from an email address. **Public — no existing key required.** This is the zero-friction entry point: an agent can go from nothing to a working key in one call. The key returned is scoped to `extract` only and carries the free plan's allowance. Broader scopes are created with `POST /keys` once you're authenticated. The raw key is shown **once, in this response** — it is stored hashed and cannot be retrieved again. Rate-limited per IP; a 429 carries `Retry-After`.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/register" \ -H "Content-Type: application/json" \ -d '{ "email": "string" }'{ "api_key": "string", "plan": "string", "scopes": [ "string" ], "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"}Poll any job (bulk or crawl) by id
Poll a bulk **or** crawl job without knowing which kind it is, and get the same superset shape either way. Prefer this over `/bulk/{job_id}` and `/crawl/{job_id}`. Read `kind` to branch: `crawl` populates `truncated`, `truncated_reason` and per-item `depth`; `bulk` leaves them at their zero values. A job id doesn't carry its kind, and the two older routes are gated on the `bulk` and `crawl` scopes — so guessing wrong cost a 403, and guessing right still cost an extra round trip just to read `kind`. This route requires **no scope** for that reason. That doesn't widen access: ownership is enforced exactly as on the other two, job ids are unguessable UUIDs, and the response is read-only. Unmetered.
List your API keys (metadata only — never the raw keys)
List every developer key on the authenticated account, including revoked ones — a non-null `revoked_at` marks a key as dead. Metadata only. Raw key values are stored hashed and are never returned by any endpoint; `key_prefix` is provided so you can match a row against a key you already hold. Unmetered.