Send a PDF, an image, plain text, CSV, an X post or any web link to one endpoint and get back JSON that is checked against your JSON Schema before it reaches your code. Get a key, run the quickstart, and read the reference below.
No account and no email. Solve a one-second proof-of-work with POST /api/agent/trial/challenge and POST /api/agent/trial. The key has 2 credits, runs the budget mode, takes files up to 5 MB and expires after 24 hours unless a human claims it.
POST /api/agent/signup sends a 6-digit code, POST /api/agent/verify returns a key. A new account starts with 5 free credits. The same flow mints more keys for an existing account.
Sign in, open Settings → API keys and create a key. A key starts with gj_, is shown once and goes in every request as Authorization: Bearer gj_….
Signed in already? Go to API keys.
# 1. Start an extraction (202 → jobId) curl https://getjson.de/v1/extract \ -H "Authorization: Bearer $GETJSON_API_KEY" \ -F "file=@invoice.pdf" # 2. Poll until status is "completed" or "failed" curl https://getjson.de/v1/jobs/<jobId> \ -H "Authorization: Bearer $GETJSON_API_KEY"
Extraction is asynchronous. Poll every 1–2 seconds. Add schema (a JSON Schema as a string) to fix the output shape, or model to pick a mode such as auto, budget or premium. A link job in auto mode without a schema returns the source as JSON (an article, a post, a file's text) for 0 credits. To read a link without a key, call GET https://getjson.de/<url>.
Every endpoint with examples. Also as markdown at /docs.md.
The machine-readable description of the REST API.
The guide for AI agents: when to use getJSON and how to call it.
A drop-in SKILL.md for Claude Code and other skill-aware agents.
Streamable HTTP at https://getjson.de/mcp. The link opens its Server Card.
npm install @getjson/sdk — typed client for the /v1 API.
100 requests per minute per API key, 30 for /v1/sources. Every API response carries RateLimit-Policy and RateLimit headers (IETF draft 11) plus RateLimit-Limit, -Remaining and -Reset. A 429 adds Retry-After in seconds.
The version is in the path: /v1. Inside /v1 we only add: new endpoints, new optional fields and new values. A breaking change ships as /v2 next to /v1.
A /v1 endpoint that will go away first sends a Deprecation header (RFC 9745), a Sunset header (RFC 8594) and a Link with rel="deprecation", at least 6 months before the sunset date.