Skip to main content

JSON-LD Formatter & Validator

Format, beautify and validate JSON-LD structured data — paste raw JSON or a full <script> tag and check @context, @type and the required properties Google needs for Article, Product, FAQPage, BreadcrumbList, LocalBusiness, Event and more. Runs entirely in your browser.

Input

Output

Formatted JSON-LD
 
Validation checklist
NodePropertyRequirementResult
No data yet
Was this helpful?

Guides

Paste JSON-LD you already have — copied out of a CMS plugin, a template, or AI-generated markup — and check it before it ships. This tool formats the JSON, confirms @context actually points at schema.org, checks every @type it finds against the properties Google's rich-result docs require, and tells you which rich results the markup would actually be eligible for.

How to use it

  1. Paste your structured data into the box — either the raw JSON object, or the whole <script type="application/ld+json">…</script> tag copied straight from a page's <head>. The tag wrapper is stripped automatically.
  2. Read the Result line for the overall verdict: how many nodes were found, which rich results they're eligible for, and how many problems or warnings turned up.
  3. The Validation checklist table lists every check — @context, @type, and each required/recommended property — with a Present, Missing or Not set status so you know exactly what to fix.
  4. Copy the Formatted JSON-LD back out once it's clean.

What gets checked

  • @context — flagged unless it resolves to https://schema.org (a string, an array containing it, or a @vocab mapping).
  • @type — checked against a curated list of real schema.org type names. An unrecognized type gets a soft warning, not a hard error — schema.org has 800+ types, so this tool doesn't claim to know all of them.
  • Required and recommended properties, per type, for the schema.org types Google actually renders rich results for: Article (and its subtypes like BlogPosting/NewsArticle), Product, FAQPage, BreadcrumbList, Event, LocalBusiness (and common subtypes like Restaurant/Store/Hotel), Organization, Person, Recipe, VideoObject, HowTo, JobPosting and WebSite.
  • @graph arrays — every node inside a @graph is checked individually, inheriting the document's top-level @context when it doesn't declare its own.

Why AI-generated JSON-LD needs this

A model asked for structured data will often invent a plausible-sounding @type that isn't real, or emit a technically valid object that's missing the one property (datePublished, offers.price, thumbnailUrl…) Google actually requires for the rich result. Both mistakes validate as syntactically correct JSON, so nothing catches them until Search Console reports zero rich results weeks later. This checks for exactly that gap.

Does this generate JSON-LD from scratch?

No — for that, use the Schema Markup Generator, which fills a form and produces valid JSON-LD for you. This tool is for markup you already have and want to check or reformat.

Is my data private?

Yes. Parsing and validation run entirely in your browser (or in the API/Node runtime if you call it programmatically) — nothing is uploaded or logged.

What if my @type isn't in the checklist?

It's still validated for @context/@type correctness; it just doesn't get a required-property checklist, since only types with a defined Google rich result have one. Recognized-but-unchecked types (like WebPage or ImageObject) show @type … OK with no follow-up rows.

structured dataschema.orgrich resultsseogoogle rich snippetsschema validatormicrodata

Use it from code

REST API

curl -X POST https://api.iotools.cloud/v1/tool/json-ld-formatter-validator \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonLdInput": "<script type=\"application/ld+json\">\n{\n  \"@contex…"
  }'

Swap in your own key from your account. The tool's fields are the body — no wrapper.

Ask an AI agent

Use the IOTools `json-ld-formatter-validator` tool (JSON-LD Formatter & Validator) on this input:

YOUR_INPUT_HERE

Paste this at any agent connected to the IOTools MCP server, then add your input.

Cost per callFrom 5 credits

Love the tools? Lose the ads.

One payment clears every ad from your account, for good. No subscription, no tracking.