URL → the fields you asked for

Structured Data API

Name the fields you want — price, title, availability, image — and get clean, flat JSON from any URL. Schema-guided and deterministic: it reads the structured data a page already publishes, with no language model, no per-call model cost, and no made-up values.

GET /v1/extract?url=...&fields=price,title,availability loads the page in a real browser and maps your requested fields onto its schema.org JSON-LD, OpenGraph and meta. You get back exactly the keys you asked for — the "give me {price, title, stock} as JSON" job, at a fraction of what LLM-extraction products charge.

Try it

request
curl "https://api.rasterly.dev/v1/extract?url=https://shop.example/p/42&fields=title,price,currency,availability,brand,image,rating" \
  -H "X-Api-Key: sk_live_..."
response — application/json
{
  "url": "https://shop.example/p/42",
  "fields": {
    "title": "Acme Wool Runner",
    "price": "98.00",
    "currency": "USD",
    "availability": "InStock",
    "brand": "Acme",
    "image": "https://…/p1.jpg",
    "rating": "4.7"
  }
}

Fields with built-in synonyms

Absent fields come back null — deterministic honesty beats a confident guess.

What it's for

Why rasterly

It's the same one-render engine as the screenshot and read endpoints, so it's priced from $0.90 per 1,000 calls with 100/mo free. Because field mapping is deterministic — no model in the loop — you skip the per-call token cost that generic LLM-extract APIs pass on, and you never get a hallucinated price. Need the full payload instead? Drop fields= and /v1/extract returns all JSON-LD, tables, images and links.

FAQ

How do I ask for specific fields?
Add fields= with a comma-separated list, e.g. /v1/extract?url=...&fields=price,title,availability,image. You get { url, fields: { ... } } with exactly those keys. Common commerce and article fields have built-in synonyms; unknown names fall back to a case-insensitive search of the page's structured data.
Where does the data come from?
schema.org JSON-LD first (Product offers, Article, Recipe), then OpenGraph and Twitter meta, then standard meta tags. The page loads in a real headless browser first, so JavaScript-rendered product pages populate before extraction. If a field genuinely isn't on the page, it returns null rather than a guess.
Is this cheaper than LLM-based extraction?
Yes. Field mapping is deterministic — it reads the structured data a page already publishes, with no language model, so there's no per-call model cost and no hallucinated values. For free-form questions over prose, pair it with your own model on /v1/read output.
Do I have to request fields, or can I get everything?
Both. Omit fields= and /v1/extract returns the full structured payload — all JSON-LD, OpenGraph, tables, images and links. Add fields= when you want just the handful your pipeline needs, as clean flat JSON.
Start free — 100 renders Try the live demo