Website Structured Data (JSON-LD) Extractor
parseforge/website-structured-data-extractor
Developer tools
- Total users
- 2
- Monthly active
- 1
- Total runs
- 5
- Bookmarked
- 0
- Rating
- Not rated yet
- Last modified
- 3 days ago
Overview

๐งฉ Website Structured Data (JSON-LD) Extractor
๐ Turn any list of web pages into clean schema.org structured data in seconds.
Give this Actor a list of URLs and it returns the schema.org JSON-LD embedded in each page: Product, Article, JobPosting, Event, FAQPage, Organization, BreadcrumbList, and every other type sites publish for search engines. One row per structured-data object, with the full JSON preserved.
Most modern sites ship rich JSON-LD for SEO. This Actor reads it directly, so you get the site's own clean, structured facts without writing per-site selectors.
| For | Use it to |
|---|---|
| SEO & content teams | Audit structured data across pages, catch missing or malformed markup |
| Data & RevOps teams | Pull product, job, event, or article facts from pages you already track |
| Developers | Normalize schema.org data from any set of URLs into one dataset |
๐ What it does
- Fetches each URL you provide (US residential proxy by default, so arbitrary sites do not block a datacenter IP).
- Extracts every
<script type="application/ld+json">block, flattening@graphand arrays so each schema.org object is its own row. - Preserves the complete JSON-LD object alongside its type and name.
๐ก Why it matters: you supply the URLs, so there is no anti-bot guesswork. The Actor reads the structured data the site already publishes.
๐ Output
| Field | Description |
|---|---|
๐ sourceUrl |
The page the record came from |
๐ท๏ธ type |
schema.org @type (e.g. Product, Article, JobPosting) |
๐ name |
Name / headline / title of the object, if present |
๐ฆ data |
The full JSON-LD object |
๐ scrapedAt |
When this row was collected |
โ ๏ธ error |
Null on success; a message when a page could not be read or had no JSON-LD |
Sample record:
{
"sourceUrl": "https://www.bbc.com/news",
"type": "WebPage",
"name": "BBC News - Breaking news, video and the latest top stories",
"data": { "@context": "https://schema.org", "@type": "WebPage", "name": "BBC News โฆ" },
"scrapedAt": "2026-08-23T14:00:00.000Z",
"error": null
}
๐ How to use
- Create a free account w/ $5 credit.
- Paste your URLs into
startUrls, setmaxItems. - Run it and download the dataset as JSON, CSV, Excel, or XML.
โ FAQ
Which structured-data formats are supported? schema.org JSON-LD (the format almost every site uses for SEO).
What if a page has no JSON-LD? You get one row for that URL with an error note, so nothing fails silently.
Do I need proxies or keys? No. A US residential proxy is used by default; you can change it in the input.
Can it read product / job / event / article / FAQ pages? Yes. It returns whatever schema.org types the page publishes (Product, JobPosting, Event, Article, FAQPage, and more).
๐ Recommended Actors
๐ก Pro Tip: browse the complete ParseForge collection for more data-extraction Actors.
This Actor extracts publicly available structured data from the URLs you provide, for analysis and research. Use it in line with each site's terms.
Input
| Field | Type | What it does | Default |
|---|---|---|---|
| startUrls required | array | Web pages to extract schema.org JSON-LD structured data from. Paste product, article, job, event, or any pages. | [{"url":"https://blog.apify.com"},{"url" |
| maxItems | integer | Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000 | 10 |
| proxyConfiguration | object | Proxy used to fetch pages. US residential by default so arbitrary sites do not block a datacenter IP. | {"useApifyProxy":true,"apifyProxyGroups" |
Pricing
from $3.62 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| result | Single result in the default dataset. | $0.00362 to $0.004 |
Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.
API
One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.
curl -X POST "https://api.apify.com/v2/acts/parseforge~website-structured-data-extractor/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"helloWorld": 123
}' Examples
Input that runs as-is.
{
"helloWorld": 123
} Reviews
No reviews yet. Be the first.
Issues
We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.
Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.
Related scrapers
Run Website Structured Data (JSON-LD) Extractor on Apify All scrapers