# Scrape a URL into structured JSON: provider benchmark

2 providers ranked for web.scrape.structured on 3,611 real looot calls in the last 30 days. ScrapeGraphAI has the highest success rate, 98.5%. Firecrawl costs least per success, $0.00539.

## Summary

- Providers in the catalog for this job: 5
- Ranked providers (20 or more calls): 2
- Calls in the last 30 days: 3,611
- Read on 2026-11-10.

## Scrape a URL into structured JSON: provider leaderboard

Ranked by success rate, then cost per success, then speed. A provider needs 20 calls in the last 30 days to be ranked.

| Rank | Provider | Success rate | Median time | Price | Cost per success | Calls (30 days) |
|---|---|---|---|---|---|---|
| 1 | [ScrapeGraphAI](https://looot.ai/public-catalog/providers/scrapegraphai) | 98.5% | 4.1 s | $0.01 per call | $0.01014 | 844 |
| 2 | [Firecrawl](https://looot.ai/public-catalog/providers/firecrawl) | 92.7% | 1.6 s | $0.005 per call | $0.00539 | 2,753 |
| Not enough calls to rank | [Diffbot](https://looot.ai/public-catalog/providers/diffbot) | 100% | 695 ms | $0.0012 per call | Not ranked | 14 |
| Not enough calls to rank | [Bright Data](https://looot.ai/public-catalog/providers/brightdata) | Not published | Not published | $0.0015 per result | Not ranked | Under 10 |
| Not enough calls to rank | [Olostep](https://looot.ai/public-catalog/providers/olostep) | Not published | Not published | $0.018 per call | Not ranked | Under 10 |

## Every endpoint for web.scrape.structured

Each endpoint in the public catalog that does this job, with its own numbers. Numbers appear from 10 calls in the last 30 days.

| Endpoint | Provider | Success rate | Median time | Price | Calls (30 days) |
|---|---|---|---|---|---|
| [Firecrawl / Scrape a web page](https://looot.ai/public-catalog/firecrawl-scrape) | Firecrawl | 92.7% | 1.6 s | $0.005 per call | 2,753 |
| [ScrapeGraphAI / AI extract](https://looot.ai/public-catalog/scrapegraphai-extract) | ScrapeGraphAI | 98.5% | 4.1 s | $0.01 per call | 844 |
| [Diffbot / Auto-detect and extract a page](https://looot.ai/public-catalog/diffbot-analyze) | Diffbot | 100% | 695 ms | $0.0012 per call | 14 |
| [Bright Data / Start a structured dataset scrape](https://looot.ai/public-catalog/brightdata-scrape-structured) | Bright Data | Not published | Not published | $0.0015 per result | Under 10 |
| [Diffbot / Extract an event page from a URL](https://looot.ai/public-catalog/diffbot-event) | Diffbot | Not published | Not published | $0.0012 per call | Under 10 |
| [Diffbot / Auto-detect and extract a page (with options)](https://looot.ai/public-catalog/diffbot-extract-analyze) | Diffbot | Not published | Not published | $0.0012 per call | Under 10 |
| [Diffbot / Extract image metadata from a URL](https://looot.ai/public-catalog/diffbot-image) | Diffbot | Not published | Not published | $0.0012 per call | Under 10 |
| [Diffbot / Extract list items from a URL](https://looot.ai/public-catalog/diffbot-list) | Diffbot | Not published | Not published | $0.0012 per call | Under 10 |
| [Diffbot / Extract video metadata from a URL](https://looot.ai/public-catalog/diffbot-video) | Diffbot | Not published | Not published | $0.0012 per call | Under 10 |
| [Olostep / Scrape page with LLM extraction](https://looot.ai/public-catalog/olostep-scrape-llm) | Olostep | Not published | Not published | $0.018 per call | Under 10 |
| [Olostep / Scrape page with parser](https://looot.ai/public-catalog/olostep-scrape-parser) | Olostep | Not published | Not published | $0.009 per call | Under 10 |
| [ScrapeGraphAI / Scrape to JSON](https://looot.ai/public-catalog/scrapegraphai-scrape-json) | ScrapeGraphAI | Not published | Not published | $0.01 per call | Under 10 |

## How we measure

- Window: every call made through looot in the last 30 days, read 2026-11-10 23:17 UTC.
- Success rate: the share of calls the provider answered without an error. An empty answer (for example no email found) counts as an answer. It does not check that the data is right. Calls that failed on looot's side are left out.
- Median time: half of the calls answered faster than this, as looot measured them. A 95th percentile is not published yet.
- Minimum calls: an endpoint shows numbers from 10 calls, and a provider is ranked from 20 calls. Rows below that say "Not enough calls to rank".
- One row per provider: the provider's endpoint with the most calls for the job. Every endpoint is listed in the endpoints table.
- Price: what looot charges per call or per result, in US dollars, from a prepaid balance. No subscription and no credits.
- Cost per success: the price per call divided by the success rate. A per-result price depends on how many results a call returns, so it has no cost per success.
- Source: GET https://api.looot.ai/v1/public-catalog/<endpoint>?stats=1 for each endpoint, and the public catalog for prices and jobs.

## Run web.scrape.structured from your agent

Connect the looot MCP server (https://api.looot.ai/mcp), then paste this prompt:

Use looot to run endpointId "job:web.scrape.structured" with fallback on for my input. Show me the price before the call, then the result.

## Related benchmarks

- [Scrape a web page into markdown](https://looot.ai/benchmarks/web-scrape-markdown)
- [Get a web page's HTML](https://looot.ai/benchmarks/web-scrape-html)
- [Find a work email from a name and domain](https://looot.ai/benchmarks/people-email-find)
- [Get Google search results for a query or keyword](https://looot.ai/benchmarks/google-serp-organic)
- [Verify an email address is deliverable](https://looot.ai/benchmarks/people-email-verify)
- [Get a LinkedIn person profile](https://looot.ai/benchmarks/linkedin-person-profile)

## Questions

### Which web.scrape.structured provider has the highest success rate?

ScrapeGraphAI: 98.5% of 844 calls answered without an error in the last 30 days, measured on looot.

### Which web.scrape.structured provider is fastest?

Firecrawl, with a median response time of 1.6 s over 2,753 calls in the last 30 days.

### Which web.scrape.structured provider is cheapest per success?

Firecrawl: $0.005 per call at a 92.7% success rate is $0.00539 per successful call.

### How do I run web.scrape.structured from my agent?

Connect the looot MCP server and run endpointId "job:web.scrape.structured" with fallback on. looot picks a provider that can answer now and tries the next one on a miss. You pay per call from a prepaid balance.
