Schema Markup Generator API
Generate schema.org JSON-LD structured data (Article, FAQ, HowTo, Product, LocalBusiness, Organization, Person, Event, Breadcrumbs, WebSite, Recipe), checked against Google's required and recommended properties.
POST /api/v1/tools/schema-markup-generatorMCP schema_markup_generatorWeb & SEOCreate JSON-LD structured data for articles, FAQs, products, local businesses, events, recipes, breadcrumbs and more, with Google's required fields checked.
Input
Send these as a JSON object. Unknown fields are rejected.
- type
- The schema.org type to build. (string, one of Article, FAQPage, HowTo, Product, LocalBusiness, Organization, Person, Event, BreadcrumbList, WebSite, Recipe, required)
- values
- A JSON object of string values keyed by property path. Keys per type: Article: @type, headline, image, datePublished, dateModified, author.name, author.url, publisher.name, publisher.logo. FAQPage: mainEntity. HowTo: name, description, image, totalTime, estimatedCost.value, estimatedCost.currency, supply, tool, step. Product: name, image, description, brand, sku, gtin, offers.price, offers.priceCurrency, offers.availability, offers.itemCondition, offers.url, offers.priceValidUntil, aggregateRating.ratingValue, aggregateRating.reviewCount, aggregateRating.bestRating. LocalBusiness: @type, name, address.streetAddress, address.addressLocality, address.addressRegion, address.postalCode, address.addressCountry, url, telephone, image, priceRange, geo.latitude, geo.longitude, openingHoursSpecification, servesCuisine. Organization: name, url, logo, description, email, telephone, sameAs, address.streetAddress, address.addressLocality, address.addressRegion, address.postalCode, address.addressCountry. Person: name, url, image, jobTitle, worksFor.name, sameAs. Event: name, startDate, endDate, eventAttendanceMode, eventStatus, location.name, location.address.streetAddress, location.address.addressLocality, location.address.addressRegion, location.address.postalCode, location.address.addressCountry, location.url, description, image, offers.price, offers.priceCurrency, offers.url, offers.availability, offers.validFrom, organizer.name, organizer.url, performer.name. BreadcrumbList: itemListElement. WebSite: name, alternateName, url, search. Recipe: name, image, description, author.name, datePublished, prepTime, cookTime, totalTime, recipeYield, recipeCategory, recipeCuisine, keywords, nutrition.calories, recipeIngredient, recipeInstructions, aggregateRating.ratingValue, aggregateRating.reviewCount, aggregateRating.bestRating. Lists (image, supply, tool, recipeIngredient…) are one item per line; FAQ mainEntity is "Question | Answer" per line; steps are "Name | Text" or plain text per line; breadcrumbs are "Name | URL" per line; dates are ISO 8601; durations are ISO 8601 such as PT20M. (string, required)
curl https://pithlab.com/api/v1/tools/schema-markup-generator \n -H "Authorization: Bearer $PITHLAB_KEY" \n -H "Content-Type: application/json" \n -d '{"type":"FAQPage","values":"{\"mainEntity\":\"How long does delivery take? | Two to three working days in the UK.\\nCan I return an item? | Yes, within 30 days of delivery.\"}"}'Example response
{
"ok": true,
"result": {
"jsonLd": {
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "How long does delivery take?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Two to three working days in the UK."
}
},
{
"@type": "Question",
"name": "Can I return an item?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, within 30 days of delivery."
}
}
]
},
"script": "<script type=\"application/ld+json\">\n{\n \"@context\": \"https://schema.org\",\n \"@type\": \"FAQPage\",\n \"mainEntity\": [\n {\n \"@type\": \"Question\",\n \"name\": \"How long does delivery take?\",\n \"acceptedAnswer\": {\n \"@type\": \"Answer\",\n \"text\": \"Two to three working days in the UK.\"\n }\n },\n {\n \"@type\": \"Question\",\n \"name\": \"Can I return an item?\",\n \"acceptedAnswer\": {\n \"@type\": \"Answer\",\n \"text\": \"Yes, within 30 days of delivery.\"\n }\n }\n ]\n}\n</script>",
"errors": [],
"missingRequired": [],
"missingRecommended": [],
"notes": [
"Google now shows FAQ rich results only for well-known, authoritative government and health sites. The markup is still valid for other sites."
]
}
}