Structured Data Extractor: Schema Markup, JSON-LD, Microdata
Pricing
from $0.32 / 1,000 scanned pages
Structured Data Extractor: Schema Markup, JSON-LD, Microdata
Extracts all structured data from web page URLs, single or bulk: JSON-LD, Microdata and RDFa, with @graph unwrapped. Returns every entity plus each schema.org type found and an entity count. For SEO specialists, developers and e-commerce analysts.
Pricing
from $0.32 / 1,000 scanned pages
Rating
0.0
(0)
Developer
Broke to Built
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
14 days ago
Last modified
Categories
Features
Share
Structured Data Extractor - JSON-LD, Microdata & RDFa from any URL
Structured Data Extractor pulls every JSON-LD, Microdata and RDFa block from a web page and lists the schema.org types it declares, at $0.0004 per page on the Apify Free plan.
- Price: $0.0004 per page scanned on the Free plan, less on paid plans. A URL that cannot be fetched is not charged.
- Example input:
{ "url": "https://example.com/product" } - Output fields:
ok,url,status,jsonLd,microdata,rdfa,allTypes,entityCount
Extract all structured data from a web page: JSON-LD (<script type="application/ld+json">),
Microdata (itemscope/itemprop), and RDFa (typeof/property), plus the list of
schema.org types found. Built for SEO audits, rich-result debugging, knowledge-graph building,
and AI agents that need a page's semantic data. Single URL or bulk.
$0.0004 per page. Failed fetches are recorded free.
What you get
- JSON-LD objects, with
@graphunwrapped into individual entities. - Microdata items with nested scopes resolved into properties.
- RDFa typed resources and their properties.
allTypes- every schema.org type detected (Product, Organization, BreadcrumbList, ...).entityCountacross all three formats.- Fail-soft: an unreachable URL returns
{ok:false, error}and is never charged.
Input
{ "url": "https://www.apify.com", "urls": ["https://example.com/product"], "maxUrls": 25 }
Output (real run, 2026-08-07)
{"ok": true,"url": "https://apify.com/","status": 200,"jsonLd": [{ "@context": "https://schema.org", "@type": "Organization", "name": "Apify","url": "https://apify.com/", "sameAs": ["https://github.com/apify", "https://x.com/apify"] }],"microdata": [],"rdfa": [],"allTypes": ["ContactPoint", "Organization"],"entityCount": 1}
Example
A real run on 2026-10-31 with the input this page's form is prefilled with:
{"url": "https://www.apple.com/shop/buy-iphone/iphone-15-pro"}
It finished in 2 seconds and returned 1 result. It was charged for 1 page-scanned event ($0.0004 on the Free plan). The first result (long text and lists cut for display):
{"ok": true,"url": "https://www.apple.com/iphone/","requestedUrl": "https://www.apple.com/shop/buy-iphone/iphone-15-pro","status": 200,"jsonLd": [{"@context": "http://schema.org","@id": "https://www.apple.com/#organization","@type": "Organization","name": "Apple","url": "https://www.apple.com/","logo": "https://www.apple.com/ac/structured-data/images/knowledge_graph_logo.png?202610300940","subOrganization": {"@type": "Organization","name": "Apple Support","url": "https://support.apple.com","@id": "https://support.apple.com/#organization"},"contactPoint": [{"@type": "ContactPoint","telephone": "+1-800-692-7753","contactType": "sales","areaServed": "US"},{"@type": "ContactPoint","telephone": "+1-800-275-2273","contactType": "technical support","areaServed": "US","availableLanguage": "…"},{"@type": "ContactPoint","telephone": "+1-800-275-2273","contactType": "customer support","areaServed": "US","availableLanguage": "…"}],"sameAs": ["http://www.wikidata.org/entity/Q312","https://www.youtube.com/user/Apple","https://www.linkedin.com/company/apple","… 2 more"]},{"@context": "http://schema.org","@type": "Brand","@id": "https://www.apple.com/iphone/#brand","name": "iPhone","description": "Designed for Apple Intelligence. Discover iPhone Duo, iPhone 18 Pro, iPhone Air, iPhone 17, and iPhone 17e.","url": "https://www.apple.com/iphone/","mainEntityOfPage": "https://www.apple.com/iphone/","image": "https://www.apple.com/v/iphone/home/cl/images/meta/iphone__sgu02z38g362_og.png"}],"microdata": [],"rdfa": [{"properties": {"itemListElement": {"properties": "…","type": "ListItem"}},"type": "BreadcrumbList"}],"allTypes": ["Brand","BreadcrumbList","ContactPoint","… 2 more"],"entityCount": 3}
Pricing - $0.0004 per page
$0.0004 per page scanned on the Apify Free plan, billed as the page-scanned event. Paid Apify
plans pay less ($0.00037 Bronze, $0.00035 Silver, $0.00032 Gold, $0.00029 Platinum, $0.00027
Diamond). No start fee. Failed fetches are recorded free. A page with no structured data was
scanned successfully and is charged.
Limits (honest ones)
- Parses the HTML the server returns; structured data injected later by JavaScript is not seen (no headless browser).
- Reads the raw values as authored - it does not validate them against Google's rich-result requirements.
maxUrlscapped at 50 per run.
FAQ
- How do I extract JSON-LD from a URL? Pass
{"url": "https://example.com/product"}; every<script type="application/ld+json">block comes back parsed in thejsonLdarray, with@graphunwrapped into individual entities. - Does it run JavaScript? No - it reads the server HTML, which is where the vast majority of structured data lives.
- What if a page has none? You get
entityCount: 0with empty arrays (a real answer), still one page scanned. - Can it do many pages? Yes - pass
urls(up to 50). - What schema.org types will it tell me a page uses?
allTypeslists every type found across all three formats, de-duplicated and sorted -Product,Organization,BreadcrumbList,FAQPage,Article, whatever the page declares.
When not to use this
- You want to know if Google will show a rich result. This reports the markup as authored. It does not validate against Google's rich-result requirements or flag missing required properties - use the Rich Results Test for that verdict.
- Your markup is injected by JavaScript. No headless browser here. A React app that adds JSON-LD on mount will read as empty; server-rendered markup is what this sees.
- You want to crawl a site's structured data. It reads exactly the URLs you pass, up to 50 per run. Generate the URL list yourself (a sitemap extractor pairs well with this).
- You want Open Graph / Twitter Card tags. Those are social meta tags, not structured data - see our Open Graph & Twitter Card Extractor.
- You need the markup rewritten or generated. This is read-only: it extracts, it does not author or repair schema.
Use from code or AI agents
curl -X POST "https://api.apify.com/v2/acts/EliAI~webpage-structured-data-extractor/runs?token=YOUR_APIFY_TOKEN" \-H 'content-type: application/json' \-d '{"url":"https://www.apify.com"}'
Callable as an agent tool through the Apify MCP server (mcp.apify.com).
Who uses it
- SEO specialists debugging why a product page lost its rich result by reading its JSON-LD
- Developers verifying Microdata and RDFa survived a template migration
- Knowledge-graph builders collecting schema.org entities from a list of pages
- E-commerce analysts extracting price and availability markup from competitor product pages
- AI agent builders letting an agent read a page's structured facts without parsing HTML
Changelog
- 2026-11-01: Page text only: an Example section from a real run. Code, output and price are unchanged.