Structured Data API: check the markup, or write it for them
Google retired the API behind its own structured data testing tool and the public validator is rate limited, so there is nowhere to call this from a build pipeline. This endpoint reads the schema.org markup on a page, reports every type it declares and the required fields that are missing, and can write correct markup from a real business record.
POST/v1/schema/validate
{
"data": {
"blocks": 2,
"types": [
"Dentist",
"FAQPage",
"PostalAddress",
"Question"
],
"checked_types": [
"FAQPage",
"LocalBusiness",
"Question"
],
"items": [
{
"type": "Dentist",
"checked_against": "LocalBusiness",
"valid": true,
"missing_required": [],
"missing_recommended": [
"openingHours",
"image"
]
},
{
"type": "FAQPage",
"checked_against": "FAQPage",
"valid": true,
"missing_required": []
}
],
"errors": [],
"valid": true
},
"meta": {
"credits_used": 1,
"source": "websites"
}
}
What you get
Every field in the response.
| Field | Meaning |
|---|---|
items[] | Every typed object on the page, with the ruleset it was judged against |
missing_required, missing_recommended | What is absent, named field by field |
types, checked_types | What the page declares, and what we were able to judge |
errors, valid | Broken JSON, a missing @context, and the one-line verdict |
script (on generate) | The JSON-LD wrapped in a script tag, ready to paste into a page |
How it works
What happens between your request and the response.
Reads what is there
Every JSON-LD block on the page, including @graph documents and nested objects, parsed the way a search engine would.
Judges by the documented rules
Required and recommended fields for the types rich results are documented for. A Dentist is judged as a LocalBusiness, a cafe as a food business.
Writes from real data
Pass a place_id and the generator fills LocalBusiness markup with the real address, coordinates, phone, rating, opening hours and social profiles. No other vendor has that record to hand.
Checks its own output
The generated markup is run back through the validator, so you never paste something that fails.
Pricing
One credit system for every endpoint.
Checking a URL costs one credit; checking HTML or a JSON-LD document you already hold is free. Generating markup costs one credit.
Questions
Things people ask about the Schema Validator API.
Will this tell me if I get a rich result?
It tells you whether the markup meets the documented requirements, which is the part that can be checked. Whether a search engine grants a rich result is its decision and no API can promise it.
Can I use it in continuous integration?
That is what it is for. Send the built HTML rather than a URL and the check is free, so a build can fail on missing required fields without spending credits.
What makes the generator different from a template?
It is filled from a live business record: the real address in parts, coordinates, phone in international format, rating with review count, and seven days of opening hours.