JSON-LD Extractor - Schema.org Structured Data & Rich Snippets avatar

JSON-LD Extractor - Schema.org Structured Data & Rich Snippets

Pricing

from $0.50 / 1,000 results

Go to Apify Store
JSON-LD Extractor - Schema.org Structured Data & Rich Snippets

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

ninhothedev

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

2

Monthly active users

3 days ago

Last modified

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

FieldBehavior
modeOnly extract (default)
urls1–1000 nonempty HTTP(S) strings; missing scheme becomes HTTPS; duplicate URLs and fragments removed
maxItemsGlobal delivered entity limit, 1–1000; default 5; includes rows already in a resumed run
includeMicrodataBoolean, 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.