Build with live web data

Best Structured Data Extraction Tools for AI Agents in 2026

Divya Lath
Best Structured Data Extraction Tools for AI Agents in 2026

The best structured data extraction tool depends on what you're extracting from.

  • Web pages: TinyFish and Firecrawl take your own JSON Schema. Zyte and Bright Data return their own fixed shapes.
  • PDFs and scans: Reducto and Landing AI cite the page. Mistral OCR is the cheapest. Docling is free to run yourself.
  • Lists across many websites: a dataset builder like TinySet collects and shapes the rows in one step.

Whatever you pick, a schema guarantees the shape of the answer, never that the values are right.

Want typed JSON from live websites? Try TinyFish free: TinySearch and TinyFetch cost nothing, and TinyAgent returns results in your own schema.

We're TinyFish, so we're on this list. Every price below comes from the vendor's own pricing page or docs as of October 2026. Where a vendor doesn't publish a number, we say so.

Looking for clean page content rather than typed fields? See our best web data extraction APIs and AI web scraping tools instead.

Structured data extraction tools at a glance

Structured data extraction tools compared: TinyFish, Firecrawl, Zyte, Bright Data, Apify, Reducto, LlamaParse, Mistral OCR, Landing AI and Docling, with job, schema support and list price
ToolBest jobYour own schema?List price (Oct 2026)
TinyFishWeb pages that need clicks, and datasets across many sitesYes, `output_schema` on TinyAgentTinyFetch free; TinyAgent $0.016 per step
FirecrawlWeb pages and files through one APIYes: JSON Schema, Pydantic, Zod5 credits per page with JSON, about $4.95 per 1,000 pages on Standard
Zyte APIProduct, article and job pagesNo, a fixed set of data types$0.27–$1.07 per 1,000 per data type, plus the request
Bright DataHigh-volume sites with ready-made scrapersNo, per-site scrapers$1.50 per 1,000 records
ApifyReusing a marketplace scraperDepends on the Actor$0.20 per compute unit
ReductoPDFs and scans that need citationsYes$20 per 1,000 pages for Extract
LlamaParsePDFs, priced by accuracy tierYes1,000 credits = $1.25
Mistral OCRCheap, fast page readingThrough Annotations$4 per 1,000 pages
Landing AI ADEDocuments with visual groundingYes$1 buys 100 credits
Google Document AI / AWS TextractTeams committed to one cloudTrained processors / QueriesOCR $1.50 per 1,000 pages; structuring costs much more
DoclingDocuments that can't leave your serversBring your own modelFree, MIT licence

What is structured data extraction?

Structured data extraction turns a web page, a PDF or a scanned form into typed fields an application can use.

Instead of a wall of text, you get an object like `{"plan": "Pro", "price": 49, "billing": "monthly"}`. The next step reads `price` directly.

That promise has two parts, and only one is guaranteed:

  • Shape. The output parses and matches your schema. Most modern tools guarantee this.
  • Truth. The values match the source. No tool guarantees this.
A schema checks the shape, not the truth: the page says $49, the JSON is valid but says 94

That's why tools that show where a value came from (a citation, a bounding box, a source URL) matter for agents. An agent can't glance at a result and notice something is off. A citation gives it a way to check.

How we judged these tools

We grouped tools by what you're extracting from: a live web page, a document, or a list across many sites. Each tool gets the same five questions:

  1. Can you bring your own schema? Or only the shapes the vendor trained?
  2. What does it guarantee? Schema-valid output, a retry on failure, or best effort.
  3. Can you check the answer? Citations, bounding boxes or source links.
  4. Can it reach the source? Logins, filters and "load more" buttons stop plain fetchers.
  5. What does it cost? Published list prices, per 1,000 pages or records.

Web pages: turning a URL into typed JSON

1. TinyFish: schemas for pages you have to click through

The TinyFish homepage: the web stack for AI agents

What it is. TinyFish is one API that gives AI agents access to the live web. Two parts matter for extraction:

  • TinyFetch turns any URL into clean content.
  • TinyAgent completes a goal on a real website and returns the result in your schema.

What you get.

  • `output_schema` on TinyAgent. Send a URL, a goal and a JSON Schema. TinyAgent handles search boxes, filters, pagination and logins, then returns a `result` shaped to your schema.
  • "The schema wins." That's how the structured output docs put it. Ask for ten results with a one-object schema and you get one object, so put lists in an array field.
  • Validation before you pay. An invalid schema is rejected with a `400` before the run starts.
  • TinyFetch for pages without clicks. It's free, returns markdown, HTML or a JSON tree, and takes CSS selectors to scope the output. It also reads PDFs and CSVs by URL.
  • TinySet for datasets. For rows spread across many sites, TinySet plans typed columns and shows where each value was seen. See how to build a dataset with TinySet.
TinyFetch in the TinyFish playground, turning a documentation page into clean markdown with CSS selectors

Where it falls short.

  • `output_schema` supports a subset of JSON Schema: use `anyOf` not `oneOf`, and `nullable: true` not type arrays. Max 64 KB and 10 levels deep.
  • It reads PDFs by URL, but doesn't return bounding boxes on scans.
  • Agent results don't carry per-field citations. Keep a source URL in your schema.

Pricing.

  • TinySearch and TinyFetch: free (Fetch: 150 URLs a minute, 1,000 a day).
  • TinyAgent: $0.016 per step, 2 concurrent runs by default.
  • New accounts start with $8 in the wallet. See tinyfish.ai/pricing.

Verdict. Best when the data sits behind clicks, filters or logins, or lives across many sites.

A TinyAgent run in the TinyFish playground: the agent opens an Amazon product page and extracts product details

2. Firecrawl: one schema call for pages and files

The Firecrawl homepage

What it is. Firecrawl turns URLs into markdown or structured data. Its JSON mode takes a JSON Schema, a Pydantic model or a Zod schema in a scrape call.

What you get.

  • Schema extraction on any page it can scrape, plus PDF parsing.
  • A crawl endpoint for whole sites, an MCP server and SDKs.
  • Extraction docs that are candid about failure modes.

Where it falls short. Extraction runs on the converted page. Data that only appears after a click, filter or login needs their agent endpoints. JSON mode costs five times a plain scrape.

Pricing.

  • 1 credit per page, plus 4 for JSON format (5 in total). PDFs add 1 credit per page.
  • Standard: $99 a month for 100,000 credits, about $4.95 per 1,000 JSON pages.
  • Free plan: 1,000 credits a month. Source: Firecrawl pricing.

Verdict. A strong pick for public pages and files in one call. More in TinyFish vs Firecrawl.

3. Zyte API: typed extraction with fixed shapes

The Zyte API homepage

What it is. Zyte's automatic extraction returns pages as fixed data types, such as product, article and job posting.

What you get. Well-tested shapes for common page types, plus Zyte's unblocking.

Where it falls short. You get Zyte's schema, not yours. Request prices depend on how hard Zyte rates a site, so costs are hard to forecast.

Pricing.

  • Extraction: $0.27–$1.07 per 1,000 per data type (Zyte docs).
  • Requests: from $0.06 per 1,000 on a $500 monthly commitment.
  • $5 free credit for new accounts.

Verdict. Good for e-commerce and articles when Zyte's types match your fields.

4. Bright Data: coverage first, schema second

The Bright Data Web Scraper API page

What it is. Pre-built scrapers for specific sites, backed by Bright Data's proxy network.

What you get. High-volume collection from heavily defended sites.

Where it falls short. Output comes from their per-site scrapers. For other sites, you structure the content yourself.

Pricing.

  • $1.50 per 1,000 records pay-as-you-go.
  • $499 a month, then $1.30 per 1,000. Source: Bright Data pricing.

Verdict. Best when its catalogue already covers your domains.

5. Apify: a marketplace of scrapers

The Apify homepage

What it is. A platform for "Actors": ready-made or custom scrapers, many returning structured data for one site.

What you get. An existing scraper for many popular sites.

Where it falls short. Output shape is up to each Actor's author. Cost follows memory × runtime, so 1,000 pages can cost very different amounts.

Pricing.

  • $0.20 per compute unit on Free and Starter; $0.16 on Scale; $0.13 on Business.
  • Free plan: $5 of usage a month. Source: Apify pricing.

Verdict. Reach for it when someone has already built the scraper you need.

Documents: PDFs, scans and their tables

Invoices, contracts and scanned forms need a document parser. The hard part is almost always tables.

6. Reducto: extraction with citations

The Reducto homepage: turn documents into data

What it is. Reducto parses documents and extracts fields to your schema.

What you get. Schema-based extraction with citations back to the source.

Where it falls short. Documents only, and volume pricing above Standard is custom.

Pricing.

  • Extract: $20 per 1,000 pages. Deep Extract: $40. Parse only: $10.
  • $150 free usage on Standard. Source: Reducto pricing.

Verdict. Best when every value needs a trail back to the page.

7. LlamaParse: pick your accuracy tier

The LlamaParse page

What it is. LlamaIndex's platform for parsing and extracting documents.

What you get. Schema extraction and several parsing modes, from basic to vision-model parsing.

Where it falls short. Cost per page depends on the mode, so budget per document type.

Pricing.

  • 1,000 credits = $1.25. Basic parsing from 1 credit per page.
  • Free plan: 10,000 credits a month. Source: LlamaIndex pricing.

Verdict. Good for LlamaIndex teams tuning accuracy per document type.

8. Mistral OCR: the cheapest hosted reader

The Mistral OCR 4.1 docs page

What it is. Mistral's OCR model, with structured output through Annotations.

What you get. Fast, cheap reading with bounding boxes and confidence scores.

Where it falls short. It's a reader first. Wrong OCR text still fits a schema, so add a check step.

Pricing.

Verdict. Best for high-volume reading where price matters most.

9. Landing AI ADE: grounding as the product

The Landing AI Agentic Document Extraction page

What it is. Agentic Document Extraction ties every extracted block to where it sits on the page.

What you get. "Precise citations for every block (page, coordinates, and table-cell grounding)", in Landing AI's words.

Where it falls short. Credits per document vary, so budget from your own samples.

Pricing.

  • $1 buys 100 credits; 1,000 free credits to start.
  • A typical document is about 1.5 credits, so roughly $15 per 1,000. Source: Landing AI pricing.

Verdict. Best when a reviewer needs to see exactly where a value came from.

10. Google Document AI and AWS Textract

The Google Cloud Document AI page

What they are. The two big clouds' document services. Reading is cheap; structuring isn't:

ServiceRead textStructure it
Google Document AI$1.50 per 1,000 pages$30 per 1,000 pages, plus about $438 a year to host a custom processor
AWS Textract$1.50 per 1,000 pages$15 per 1,000 for tables or Queries, $50 for forms

Sources: Google, AWS. First volume tier.

Where they fall short. Google needs a trained processor. Textract offers Queries, not arbitrary schemas.

Verdict. The safe pick when compliance ties you to one cloud. Budget from the structuring price.

11. Docling: the open-source baseline

The Docling repository on GitHub

What it is. An open-source, MIT-licensed document parser with about 69,600 GitHub stars.

What you get. Parsing for PDF, DOCX, PPTX, XLSX, HTML and images, with tables, OCR and an MCP server.

Where it falls short. No hosted API. You own the compute and the schema step.

Pricing. Free; you pay for your own infrastructure. Source: Docling on GitHub.

Verdict. Best when documents can't leave your servers.

What it costs per 1,000 pages

Cost per 1,000 pages at list price, from free TinyFetch to $50 for AWS Textract forms

Making the JSON match the schema in your own code

Already have the text? Then the schema step happens in your model call:

  • Constrained output. OpenAI's Structured Outputs and Anthropic's strict tool use force the output into your schema. Shape, not correctness.
  • Validate and retry. Libraries like Instructor re-ask the model when validation fails.
  • Two passes. Answer freely first, then a small second call shapes it into the schema.

More in our guide to tool calling in AI agents.

Example: typed JSON from a live page with TinyFish

A TinyAgent request that returns pricing plans as typed fields. It follows the structured output rules: a top-level object, the list in an array, and `nullable` instead of type arrays.

Shell
curl -X POST https://agent.tinyfish.ai/v1/automation/run \
  -H "X-API-Key: $TINYFISH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/pricing",
    "goal": "Extract every pricing plan on this page",
    "output_schema": {
      "type": "object",
      "properties": {
        "plans": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": { "type": "string" },
              "monthly_price": { "type": "number", "nullable": true },
              "billing": { "type": "string", "enum": ["monthly", "annual", "custom"] },
              "source_url": { "type": "string" }
            },
            "required": ["name", "billing"]
          }
        }
      },
      "required": ["plans"]
    }
  }'

The response has `"status": "COMPLETED"` and a `result` shaped like your schema. Keeping `source_url` makes each value easy to check.

Try it on your own pages. Get a TinyFish API key: TinyFetch is free, and new accounts start with $8 for TinyAgent runs.

How to choose

Which structured extraction tool: by live web page, document, or many websites
  • Public pages, your own schema: TinyFetch plus your model, or Firecrawl's JSON mode.
  • Behind clicks, filters or logins: TinyAgent with `output_schema`.
  • A list across many websites: TinySet.
  • Common page types at volume: Zyte or Bright Data.
  • A scraper already exists: Apify.
  • PDFs that need citations: Reducto or Landing AI ADE.
  • Cheapest reading: Mistral OCR, plus a check step.
  • Documents that can't leave your network: Docling.
  • Locked into one cloud: Document AI or Textract.

Not sure which TinyFish product fits? See which TinyFish API to use.

Mistakes to avoid

  • Trusting valid JSON. Re-check prices, totals and dates against the source.
  • Asking for a list with a one-object schema. You'll get one item. Use an array field.
  • Forcing counts with `minItems`. If the page has seven items, a model may invent the rest.
  • Giant schemas. Split dozens of fields into smaller calls.
  • Budgeting from OCR prices. At the big clouds, structuring costs 10 to 33 times more than reading.
  • Dropping the source. Keep a `source_url` or citation with every record.
Building something that needs typed data from the live web? Start free with TinyFish: one API for search, fetch, agents and browsers.

Keep reading

Follow TinyFish for new guides and builds: X (@Tiny_Fish) · LinkedIn · Discord

AI disclosure

Content on this website may be created or refined with the assistance of AI tools and is subject to human editorial review.

FAQ

Questions, answered.

What are structured data extraction tools?

Which structured data extraction tool is best for AI agents?

Does a JSON Schema guarantee the extracted data is correct?

How much does structured data extraction cost per 1,000 pages?

How does structured output work in TinyFish?

Can I extract structured data from PDFs with TinyFish?

What's the difference between web scraping and structured data extraction?

Get started

Start building.

No credit card. No setup. Run your first operation in under a minute.

Get $8 in Wallet fundsRead the docs