{"openapi":"3.1.0","info":{"title":"JSON-LD API","version":"1.0.0","description":"Generate valid schema.org JSON-LD structured data from simple fields — the markup Google and other search engines use for rich results. The generate endpoint builds ready-to-embed JSON-LD for the types that matter most for SEO: Article (and BlogPosting / NewsArticle) with author and publisher, Product with offers, price, availability and an aggregate rating, Organization and LocalBusiness with postal address and opening hours, Person, WebSite with a Sitelinks search box (SearchAction), BreadcrumbList, FAQPage, Event and Recipe with ingredients and step-by-step instructions. Pass plain fields — or JSON arrays and newline lists for breadcrumbs, FAQ questions, ingredients and social profiles — and get back a clean JSON-LD object, optionally wrapped in a ready-to-paste <script type=\"application/ld+json\"> tag. The types endpoint documents every supported type and its fields. Everything is assembled locally and deterministically, so it is instant and private. Ideal for CMS and static-site pipelines, SEO tooling, e-commerce product pages, documentation and content platforms. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This GENERATES schema.org markup; to extract structured data or Open Graph tags from a page use an HTML-parsing API, and to audit on-page SEO use an SEO API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/jsonld-api","description":"oanor gateway"}],"tags":[{"name":"JSON-LD"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/generate":{"get":{"operationId":"get_v1_generate","tags":["JSON-LD"],"summary":"Generate JSON-LD","description":"","parameters":[{"name":"type","in":"query","required":true,"description":"article, product, organization, localbusiness, person, website, breadcrumb, faq, event, recipe","schema":{"type":"string"},"example":"product"},{"name":"name","in":"query","required":false,"description":"Name/headline (type-specific — see /v1/types)","schema":{"type":"string"},"example":"Widget"},{"name":"html","in":"query","required":false,"description":"true to also return the <script> tag","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"type":"product","jsonld":{"name":"Widget","@type":"Product","@context":"https://schema.org"}},"meta":{"timestamp":"2026-06-03T09:25:04.895Z","request_id":"29e1239a-5953-4ca1-88bb-402884a5db8f"},"status":"ok","message":"Generate JSON-LD","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/types":{"get":{"operationId":"get_v1_types","tags":["JSON-LD"],"summary":"List supported types","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"types":[{"type":"article","fields":["headline","description","image","author","publisher","logo","datePublished","dateModified","url"],"aliases":["BlogPosting","NewsArticle"]},{"type":"product","fields":["name","description","image","sku","brand","price","currency","availability","url","rating","reviewCount"]},{"type":"organization","fields":["name","url","logo","description","email","telephone","sameAs","businessType"]},{"type":"localbusiness","fields":["name","url","image","telephone","priceRange","street","city","region","postalCode","country","openingHours","businessType"]},{"type":"person","fields":["name","url","jobTitle","image","email","sameAs"]},{"type":"website","fields":["name","url","search"]},{"type":"breadcrumb","fields":["items (name|url pairs, or JSON array of {name,url})"]},{"type":"faq","fields":["items (question|answer pairs, or JSON array of {question,answer})"]},{"type":"event","fields":["name","description","startDate","endDate","url","image","location","address"]},{"type":"recipe","fields":["name","image","description","author","prepTime","cookTime","yield","ingredients","instructions"]}],"usage":"POST or GET /v1/generate?type=<type>&...fields. Add html=true to also get the <script> tag. Lists (sameAs, items, ingredients) accept JSON arrays or newline/comma text."},"meta":{"timestamp":"2026-06-03T09:25:04.971Z","request_id":"9118366e-c6a0-4e99-98b9-14e36cd72723"},"status":"ok","message":"List supported types","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"name":"JSON-LD API","notes":"This GENERATES schema.org markup — to extract structured data or Open Graph tags from a page use an HTML-parsing API, and to audit on-page SEO use an SEO API. Send list/nested data as JSON via POST. Nothing is stored.","version":"v1","endpoints":[{"path":"/v1/generate","params":{"html":"true to also return the <script> tag","type":"article, product, organization, localbusiness, person, website, breadcrumb, faq, event, recipe","…fields":"type-specific fields — see /v1/types"},"returns":"the JSON-LD object (and optional HTML script tag)"},{"path":"/v1/types","params":[],"returns":"all supported types and their fields"},{"path":"/v1/meta","params":[],"returns":"this document"}],"description":"Generate valid schema.org JSON-LD structured data from simple fields — for Google rich results and SEO. Build markup for Article/BlogPosting/NewsArticle, Product (with offers and aggregate rating), Organization, LocalBusiness, Person, WebSite (with a Sitelinks search box), BreadcrumbList, FAQPage, Event and Recipe. Pass plain fields and get back a ready-to-embed JSON-LD object, optionally wrapped in a <script type=\"application/ld+json\"> tag. Pure local, no key."},"meta":{"timestamp":"2026-06-03T09:25:05.075Z","request_id":"bcdd4dba-0a3f-4a17-b726-8a7969970dec"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":2135,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":365,"monthly_call_quota":11650,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2355,"monthly_call_quota":167500,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":6155,"monthly_call_quota":880000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/jsonld-api"}