getJSON reads any content a user or an agent points at, a web page or a file, and returns JSON in your schema, validated. Try and use it without an account.
{
"source": {
"url": "https://x.com/i/status/20",
"finalUrl": "https://x.com/jack/status/20",
"kind": "post",
"platform": "x",
"provider": "x-fxtwitter",
"fetchedAt": "2026-10-27T21:23:55.884Z",
"cached": false
},
"content": {
"title": null,
"text": "just setting up my twttr",
"author": {
"name": "jack",
"handle": "@jack",
"url": "https://x.com/jack"
},
"publishedDate": "2006-03-21T20:50:14.000Z",
"language": "en",
"wordCount": 5,
"engagement": {
"likes": 311267,
"replies": 18122
},
"hashtags": [],
"mentions": [],
"linkedContent": [],
"truncated": false
},
"meta": null,
"wall": null,
"result": null
}Put getjson.de/ in front of the link and open it in your browser. The page you get back is the JSON.
https://getjson.de/https://x.com/jack/status/20
One GET, no key, no account. Send Accept: text/markdown if your agent wants the text as Markdown.
curl https://getjson.de/https://x.com/jack/status/20
Connect the server once. The read tool needs no key.
claude mcp add --transport http getjson https://getjson.de/mcp
{
"name": "read",
"arguments": {
"url": "https://x.com/jack/status/20"
}
}All three get the same envelope back: source, content, meta, wall and result.
0 credits to read
0 credits to read
0 credits to read
0 credits to read
0 credits to read
0 credits to read
0 credits to read
0 credits to read
0 credits to read: curl -F "file=@report.pdf" https://getjson.de/
When a link blocks the read, the answer says why in wall: login, bot_protection, no_text. You don't get a guess. What we can't read
Add a JSON Schema to the same call. The answer has the same fields as a read, and result is filled, in your shape.
curl -G https://getjson.de/https://x.com/jack/status/20 --data-urlencode 'schema={"type":"object","properties":{"author":{"type":"string"},"text":{"type":"string"},"likes":{"type":"integer"}},"required":["author","text","likes"]}'{
"source": { … },
"content": { … },
"meta": null,
"wall": null,
"result": {
"text": "just setting up my twttr",
"likes": 311267,
"author": "jack (@jack)"
}
}If the result breaks your schema, getJSON tries once more. If the retry breaks it too, the GET answers 422 with the code schema_mismatch and the fields that failed. A job on /v1/extract fails with the same code, and its credits are refunded.
Reading a link or a file costs 0 credits. An extraction costs 1 to 3 credits: a fixed mode has one fixed price, and auto picks the model by the document and costs at most 3. Every account with credits can send an inline schema with a call. Saved schemas, used by schema_id, need the Pro plan. A new account starts with 5 free credits.
Your agent reads links for 0 credits, 20 a minute. Three schema calls a day per network are free too.
When it needs more, it solves a small proof-of-work and gets a trial key. No email.
The agent hands you a claim link. You sign in, the key moves into your account and stops expiring.
5 free credits for an account. No card. // reads stay at 0 credits
Get started free