Getting Started
Getting Started
SchemaCheck validates Schema.org JSON-LD structured data via a simple REST API. Send a URL or raw JSON-LD, get back errors, warnings, rich result eligibility, and fix suggestions.
Get your free API key
Sign up with your email — no password, no credit card. You get 100 validations free every month.
curl -X POST https://schemacheck.dev/api/auth/signup \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com"}'Response
{
"ok": true,
"email": "you@example.com"
}A verification email is sent to your address. Click the link inside to confirm and receive your API key. The link expires in 24 hours.
Prefer a form? Sign up on the homepage — a verification email will be sent automatically.
Make your first request
Paste your key into this GET request. Replace YOUR_KEY with the key from your welcome email (it starts with sc_live_).
curl "https://schemacheck.dev/api/v1/validate?url=https://apple.com&access_key=YOUR_KEY"That's it. One URL, one call, structured results. No headers required for GET requests when using access_key.
Read the response
Here's what you'll get back (abbreviated — real responses include every schema found on the page):
{
"success": true,
"url": "https://apple.com",
"schemas_found": 3,
"schemas": [
{
"type": "WebSite",
"valid": true,
"rich_result_eligible": true,
"deprecated": false,
"deprecation_note": null,
"errors": [],
"warnings": [
{
"severity": "warning",
"property": "potentialAction",
"message": "Recommended property 'potentialAction' is missing",
"fix": "Add potentialAction with SearchAction for Sitelinks Searchbox",
"google_docs_url": "https://developers.google.com/search/docs/appearance/structured-data/sitelinks-searchbox"
}
],
"properties_found": ["name", "url"],
"properties_missing_required": [],
"properties_missing_recommended": ["potentialAction"],
"rich_result": {
"eligible": true,
"reason": "All required properties are present for WebSite rich results.",
"google_docs_url": "https://developers.google.com/search/docs/appearance/structured-data/sitelinks-searchbox"
}
}
],
"summary": {
"total_schemas": 3,
"valid_schemas": 2,
"invalid_schemas": 1,
"total_errors": 2,
"total_warnings": 3,
"rich_result_eligible": 2,
"score": 73
},
"meta": {
"api_version": "1.0",
"validated_at": "2026-03-18T10:30:00.000Z",
"cached": false,
"credits_used": 1,
"credits_remaining": 99,
"response_time_ms": 812
}
}schemas_foundHow many JSON-LD blocks were found on the page.
schemas[].validtrue if all required properties are present and correctly typed.
schemas[].rich_result_eligibletrue if this schema qualifies for Google Rich Results.
schemas[].errorsRequired property missing or invalid. Prevents rich results.
schemas[].warningsRecommended property missing. Won't prevent rich results but improves quality.
summary.score0–100 health score. 100 = no errors, penalised for errors (−40) and warnings (−10).
meta.cachedtrue if result was served from cache (1-hour TTL). cached results cost 0 credits.
Validate raw JSON-LD
Don't have a public URL? Pass the JSON-LD object directly in the request body. Useful for validating during development before publishing.
curl -X POST https://schemacheck.dev/api/v1/validate \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonld": {
"@context": "https://schema.org",
"@type": "Article",
"headline": "My Article Title",
"author": { "@type": "Person", "name": "Jane Doe" },
"datePublished": "2026-03-18",
"image": "https://example.com/photo.jpg"
}
}'JSON-LD requests are never cached — useful for testing changes in real time.