Raw schema
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"Article",
"BlogPosting",
"HowTo",
"FAQPage",
"Product",
"Organization",
"BreadcrumbList",
"WebSite",
"SoftwareApplication",
"Service",
"LocalBusiness"
],
"description": "The schema.org type to build."
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {},
"description": "Type-specific fields. Every type also takes siteUrl (absolute base for relative paths like /pricing), @id (e.g. https://example.com/#organization), and any other schema.org property of the type, passed through as-is (alternateName, disambiguatingDescription, contactPoint, address, featureList…). Article/BlogPosting: {headline, authorName, url?, authorUrl?, datePublished?, dateModified?, image?, publisherId?, publisherName?, publisherUrl?, publisherLogo?, description?}. HowTo: {name, steps:[{text, name?, image?, url?}], description?, image?, totalTime? (ISO 8601 like PT15M; '15 minutes' is converted)}. FAQPage: {faqs:[{question, answer}]}. Product: {name, description?, image?, brandName?, sku?, price?, currency? (ISO 4217, default USD), availability? (InStock, OutOfStock, PreOrder, PreSale, BackOrder, Discontinued, SoldOut, LimitedAvailability, InStoreOnly, OnlineOnly, MadeToOrder, Reserved — bare name or https://schema.org/ URL), url?}. Organization: {name, url, logo?, description?, sameAs?:[full profile URLs]}. BreadcrumbList: {items:[{name, url}]} — url may be relative when siteUrl or an earlier absolute item url gives the base; the last item may omit it. WebSite: {name, url, publisherId?, publisherName?, searchUrlTemplate?}. SoftwareApplication: {name, url?, description?, applicationType? (WebApplication, MobileApplication), applicationCategory?, operatingSystem?, image?, price?, currency?, publisherId?, publisherName?}. Service: {name, url?, description?, serviceType?, providerId?, providerName?, price?, currency?, image?}. LocalBusiness: {name, address:{streetAddress, addressLocality, addressRegion, postalCode, addressCountry}, businessType? (e.g. Plumber, Dentist), url?, telephone?, email?, priceRange?, logo?, image?, sameAs?, geo?:{latitude, longitude}}."
}
},
"required": [
"type",
"data"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}