Glossary
JSON-LD
The machine-readable facts a page states about itself, in a block of JSON.
By Roger Campos · Last updated: September 2026
TL;DR
JSON-LD (JSON for Linked Data) is a W3C format for structured data that a page embeds in a <script type="application/ld+json"> tag, usually describing itself with schema.org types such as Article, Product or Organization. Search engines read it for rich results; it is Google's recommended structured-data format.
Free plan, no credit card. 1,000 credits a month.
How it works
What it looks like
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "How we cut our build time in half",
"author": { "@type": "Person", "name": "Ada Lovelace" },
"datePublished": "2026-09-01",
"image": "https://example.com/og/build-time.png"
}
</script>@context says the vocabulary is schema.org; @type says what the thing is; the rest are that type's properties. A page can hold several blocks, or one @graph that links many entities. Because it is a separate block, it can be added without touching the visible markup — the reason it displaced Microdata and RDFa.
In practice
Where it shows up
Google uses it for rich results — review stars, product prices, recipe cards, breadcrumbs, FAQ answers — and says it can read JSON-LD that JavaScript injects, once the page is rendered. Many other consumers read only the source. It is often the one place a page states its author or first publication date in a form a program can trust.
The types that matter most for web pages are Article and BlogPosting, Product with an Offer, Organization, BreadcrumbList, FAQPage and Recipe. Google's guidelines require the markup to describe content that is visible on the page; structured data that claims a price, a rating or an author the visitor can't see is a reason for a manual action, not a rich result.
URLpipe
Extracting it with URLpipe
/meta reads JSON-LD as one of its sources: the author name, the datePublished and the image all fall back to it. It returns the fields, not the graph. For the JSON-LD itself, fetch the rendered page from /html — which includes blocks JavaScript inserted — and parse the script tags:
import json, requests
from bs4 import BeautifulSoup
html = requests.post(
"https://urlpipe.dev/html",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"url": "https://example.com/blog/build-time", "sync": True},
).text
blocks = [
json.loads(tag.string)
for tag in BeautifulSoup(html, "html.parser").find_all("script", type="application/ld+json")
if tag.string
]
print([b.get("@type") for b in blocks])FAQ
Frequently asked questions
Is JSON-LD better than Microdata?
Does JSON-LD help SEO?
Can JSON-LD be added with JavaScript?
See it on your own pages.
Free plan, no card. Confirm your email and your API key is live — you'll be making real requests in minutes.