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

01

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.

02

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.

03

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