JSON-LD Extractor - Schema.org Structured Data & Rich Snippets
Pricing
from $0.50 / 1,000 results
JSON-LD Extractor - Schema.org Structured Data & Rich Snippets
$0.5/1K π₯ JSON-LD structured data extractor! Pull Schema.org markup β products, articles, recipes & events β from any URL. No API key. Export JSON, CSV, Excel or API in seconds. Perfect for SEO audits & RAG β‘
Pricing
from $0.50 / 1,000 results
Rating
0.0
(0)
Developer
ninhothedev
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Share
JSON-LD Structured Data Extractor
Extract published JSON-LD entities from a list of HTTP(S) pages for structured-data audits and data pipelines. Arrays and @graph members become individual rows. Original nested properties are retained in data; this is extraction, not Schema.org or rich-result validation.
First run
{"urls":["https://www.python.org/"],"maxItems":5,"includeMicrodata":false}
Paste this into the Console input or pass it as the JSON body of an Actor API run. urls is required: API {} fails before fetching. Public websites can change or block automated requests. No browser JavaScript is executed.
Inputs
| Field | Behavior |
|---|---|
mode | Only extract (default) |
urls | 1β1000 nonempty HTTP(S) strings; missing scheme becomes HTTPS; duplicate URLs and fragments removed |
maxItems | Global delivered entity limit, 1β1000; default 5; includes rows already in a resumed run |
includeMicrodata | Boolean, default false; when true adds best-effort microdata. When false microdata remains a fallback if JSON-LD yields no entities |
The Actor checks the remaining entity and event budget before each URL and each dataset write. URLs are processed sequentially. HTTP fetches follow at most three redirects within a 20-second deadline after DNS resolution; documents are capped at 2 MB. Each destination must resolve only to public addresses and the selected address is pinned during the request. Only HTTP(S) standard ports and HTML responses are supported; private hosts and nonstandard ports are rejected. No automatic retries. Use the platform run timeout for a whole-run wall-clock bound (system DNS resolution can exceed the fetch deadline).
Output
Each row retains the existing url, schema_type, name, data, source and scraped_at fields. entity_id is an additive SHA-256 identity based on submitted page URL, source format and canonical entity content. url is the normalized submitted URL, including after redirects. Identical entities on different pages remain separate source evidence. Identical repeats on the same page are deduplicated, including on resume; content changes create a new identity. Missing name or type is null. schema_type preserves the published value, including arrays. The flat overview supports CSV; use JSON for nested data.
{"url":"https://example.com/","schema_type":"Product","name":"Widget","data":{"@type":"Product","name":"Widget"},"source":"json-ld","scraped_at":"2026-09-05T00:00:00+00:00","entity_id":"<sha256>"}
RUN_SUMMARY in the key-value store records requested URLs, attempted-page coverage, delivered/resumed counts, and stop reason. A successfully fetched page with no structured data is empty and succeeds without a fake row. Fetch failure is fetch_error; malformed/empty JSON-LD blocks are parse_error. Good entities from other blocks/pages remain available, but any observed source or parse error makes the run fail with a partial-result explanation. Errors and empty pages do not create charged dataset rows. URLs beyond a limit are unattempted, not asserted complete.
Pricing and limits
Current configured price: $0.0005 per delivered entity ($0.50 per 1,000), plus the platform-configured Actor Start event of $0.00005 per GB with a minimum of one event. At the minimum start fee, 5 entities cost $0.00255, 100 cost $0.05005 and 1,000 cost $0.50005. The current Console pricing and account charges govern; these are event-price examples, not a guarantee about every platform/account cost. No additional explicit charge call duplicates automatic dataset billing. A failed run can still charge valid rows delivered before failure.
This Actor fetches publicly accessible HTML only. It does not expand remote JSON-LD contexts, infer missing information, authenticate, bypass blocks, crawl discovered links, enrich contacts, or certify search-engine eligibility. Microdata parsing remains best effort. Resume reconstructs identities from dataset rows and can refetch pages; already delivered identical entities are not rewritten.
Development
Install pinned dependencies from requirements.txt; run python -m unittest discover -s tests -p 'test_contract.py' and python tests/test_smoke.py. Run the real Actor locally with apify run and input in storage/key_value_stores/default/INPUT.json. Local storage is not synced to the cloud.