Validate Schema.org JSON LD with a simple API. Send raw schema objects or webpage URL and get clear validation results, detailed error messages, and optional access to the original schema data.
The validator checks syntax, property names, type mismatches, missing context or type, invalid URLs, invalid dates, and email formats. It can also validate schema directly from webpages by extracting JSON LD scripts.
Use the API for development checks, publishing pipelines, SEO tooling, and live webpage validation.
Run a quick check on your JSON LD so you can catch mistakes before a page goes live.
Surface validation results in your own UI with statuses, error counts, and source URLs.
Use structured error paths and error types to identify exactly what needs to be fixed.
Submit up to 10 schemas in a single request and process the results in one pass.
Pass a webpage URL and let the API extract and validate all JSON LD blocks found on the page.
Use the validator to keep schema markup correct, consistent, and easy for search engines to process.
Send either direct schema objects or webpage URL.
POST /validate-schema
curl --request POST \
--url https://structured-data-schema-org-json-ld-validator-api.p.rapidapi.com/api/validate-schema \
--header 'Content-Type: application/json' \
--header 'x-rapidapi-host: structured-data-schema-org-json-ld-validator-api.p.rapidapi.com' \
--header 'x-rapidapi-key: YOUR_API_KEY' \
--data '{
"schema-code": true,
"schemas": [
{
"@context": "https://schema.org",
"@type": "Person",
"name": "Jane Doe",
"email": "jane@example.com",
"url": "https://example.com/jane"
},
{
"@context": "https://schema.org",
"@type": "Person",
"name": "",
"email": "not-an-email",
"url": 12345,
"birthDate": "invalid-date"
},
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"name": "Example Corp",
"url": "https://example.com"
},
{
"@type": "WebSite",
"url": "https://example.com",
"name": "Example Site"
}
]
},
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"name": null,
"url": "not-a-valid-url"
}
]
}
]
}'
Direct schema validation output
{
"success": true,
"results": [
{
"inputType": "user_provided",
"index": 0,
"source": null,
"name": "Person",
"isValid": true,
"errors": [],
"schemaCode": {
"@context": "https://schema.org",
"@type": "Person",
"name": "Jane Doe",
"email": "jane@example.com",
"url": "https://example.com/jane"
}
},
{
"inputType": "user_provided",
"index": 1,
"source": null,
"name": "Person",
"isValid": false,
"errors": [
{
"path": "root.name",
"message": "Property present but empty",
"error_type": "EMPTY_PROPERTY"
},
{
"path": "root.email",
"message": "Invalid email format: 'not-an-email'",
"error_type": "INVALID_EMAIL"
},
{
"path": "root.url",
"message": "Invalid URL format: expected string",
"error_type": "INVALID_URL"
},
{
"path": "root.birthDate",
"message": "Invalid date format: 'invalid-date'",
"error_type": "INVALID_DATE_FORMAT"
}
],
"schemaCode": {
"@context": "https://schema.org",
"@type": "Person",
"name": "",
"email": "not-an-email",
"url": 12345,
"birthDate": "invalid-date"
}
},
{
"inputType": "user_provided",
"index": 2,
"source": null,
"name": "Graph[Organization, WebSite]",
"isValid": true,
"errors": [],
"schemaCode": {
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"name": "Example Corp",
"url": "https://example.com"
},
{
"@type": "WebSite",
"url": "https://example.com",
"name": "Example Site"
}
]
}
},
{
"inputType": "user_provided",
"index": 3,
"source": null,
"name": "Graph[Organization]",
"isValid": false,
"errors": [
{
"path": "root.@graph[0].name",
"message": "Property cannot be null",
"error_type": "NULL_VALUE"
},
{
"path": "root.@graph[0].url",
"message": "Relative URL not allowed or invalid URL format: 'not-a-valid-url'",
"error_type": "INVALID_URL"
}
],
"schemaCode": {
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"name": null,
"url": "not-a-valid-url"
}
]
}
}
]
}
Extract ld plus json scripts automatically
curl --request POST \
--url https://structured-data-schema-org-json-ld-validator-api.p.rapidapi.com/api/validate-schema \
--header 'Content-Type: application/json' \
--header 'x-rapidapi-host: structured-data-schema-org-json-ld-validator-api.p.rapidapi.com' \
--header 'x-rapidapi-key: YOUR_API_KEY' \
--data '{
"schema-code": true,
"urls": [
"https://projecthq.site/"
]
}'
URL extraction output
{
"success": true,
"results": [
{
"type": "url_extracted",
"index": 0,
"source": "https://projecthq.site/",
"name": "WebApplication",
"isValid": true,
"errors": [],
"schemaCode": {
"@context": "https://schema.org",
"@type": "WebApplication",
"name": "ProjectHQ",
"description": "ProjectHQ is a complete business management suite built for solo entrepreneurs and indie developers. It includes SoloFlow (project management), Indie CRM (lightweight CRM), SocialScope (marketing effort tracking), and a (VidyaVault) knowledge base tool — all in one streamlined platform.",
"url": "https://projecthq.site",
"applicationCategory": "BusinessApplication",
"operatingSystem": "Web Browser",
"offers": {
"@type": "Offer",
"availability": "https://schema.org/PreOrder",
"description": "Coming Soon"
},
"creator": {
"@type": "Organization",
"name": "ProjectHQ",
"url": "https://projecthq.site"
}
}
},
{
"type": "url_extracted",
"index": 1,
"source": "https://projecthq.site/",
"name": "WebPage",
"isValid": true,
"errors": [],
"schemaCode": {
"@context": "https://schema.org",
"@type": "WebPage",
"name": "ProjectHQ - Solo Business Management Suite",
"description": "All in one business management platform for solo entrepreneurs and Indie Developers",
"url": "https://projecthq.site"
}
}
]
}
Subscribe via RapidAPI, get your API key, and start validating schema in just a few steps.
Create a RapidAPI account if you do not have one, then subscribe to our API from the RapidAPI marketplace.
Begin with the free plan. No payment method is required to get started.
Copy your RapidAPI key from your account and include it in your request headers.
Send schemas or URL to the validation endpoint and use the response in your app or workflow.
Common questions about the validator, the response shape, and how schema handling works.