Diagnostic scanner for broken JSON
Paste a blob or a URL. Jsonpin pinpoints the line and column where parsing fails and explains what's wrong in plain language — not "unexpected token at position 4471." For URLs, it also reports what the server actually sent: content-type, whether the body is JSON, and whether it is a JSON error object dressed as a success.
How it works
Paste JSON or a URL
Paste a blob of JSON in the editor, or drop a URL that should return JSON. Pasted content stays in your browser — it is never sent anywhere. A URL is fetched server-side so the tool can inspect the raw HTTP response.
Pinpoint the error
If parsing fails, Jsonpin shows the line and column, the character that triggered the failure, and a plain-language explanation of what was expected. No digging through stack traces.
Inspect the HTTP response
For URL fetches, Jsonpin reports the HTTP status, content-type header, whether the body is valid JSON, and — critically — whether the server returned what looks like an error object dressed as a 200 OK.
Everything at a glance
Line & column
Every error includes the line and column — no byte-offset guessing.
Plain-language messages
"The JSON is incomplete — it ends before the structure is closed" instead of "Unexpected end of JSON input at position 4471."
HTTP metadata
Status code, content-type, response size, truncation info — everything you need to diagnose a broken API response in one place.
Error-dressed-as-success
Detects when an API returns HTTP 200 with a JSON error body — the kind of bug that hides in plain sight because the status code says everything is fine.
Verdict reliability
When the upstream returns non-2xx, every derived verdict is marked as "not established" — no pretending a 500 error tells you anything about the JSON.
No crawling
Jsonpin fetches the URL you type — no more. Redirects are followed but no crawling is performed. What you asked for is what is inspected.
Known limitations
- A host behind Cloudflare cannot be reached from a Cloudflare Worker. If your target site uses Cloudflare, the fetch will report a failure — this is a platform restriction, not a result about your network.
- Body size is capped at 100 KB. Larger responses are truncated with a notice.
- Fetch times out after 15 seconds.
- No email, notifications, scheduled re-checks, or saved history. Every analysis starts fresh.