← WebExtract · Alternatives · Benchmark · API docs
Updated 2026-10-30. Jina facts were read from jina.ai/reader on 2026-10-30 (KST). Prices and limits change, so check that page.
Which should you pick?
Pick Jina Reader if you want the simplest possible start (put https://r.jina.ai/ in front of a URL), you need pages that run JavaScript (their FAQ says the default engine renders the page in a headless browser), CSS selectors to keep or drop parts of a page, web search (s.jina.ai), PDFs, or your own JSON schema or instruction (their FAQ points to the x-json-schema and x-instruction headers with ReaderLM-v2). We offer none of those today.
Pick WebExtract if you fetch static public pages and want one call to return Markdown plus fixed-schema JSON (article metadata, product/price, tables), you want a flat per-call price you can read before paying ($0.002 Markdown, $0.005 extract), or your agent pays with USDC through x402 and no account or API key at all. WebExtract and Jina both state that failed fetches are not charged.
We did not run Jina Reader, so there is no speed or accuracy comparison here.
| WebExtract | Jina Reader | |
|---|---|---|
| How you call it | GET /v1/markdown?url=… or /v1/extract?url=… on api.webextract.dev; hosted MCP server. | Prepend https://r.jina.ai/ to the URL; their page lists GET and POST. |
| Output | Markdown with title and word count; /v1/extract adds metadata, product (with price_detail) and tables. | LLM-friendly text or Markdown; a JSON response option with URL, title, content and timestamp (their page). |
| Structured data | Fixed schema only. | Their FAQ: "Use the x-json-schema header with a JSON schema definition, or use x-instruction header with natural language instructions", using ReaderLM-v2. |
| JavaScript rendering | No (HTML only; our render endpoints are switched off for now). | Their FAQ: "the default engine renders the page in a headless browser so client-side JavaScript executes before extraction"; X-Engine: direct does a plain fetch. |
| Selectors, search, PDF | No selectors, no search, no PDF (HTTP 415). | CSS selector headers (X-Target-Selector, X-Remove-Selector, X-Wait-For-Selector); s.jina.ai web search; their page mentions PDF processing. |
| Pricing model | Per call: $0.002 Markdown, $0.005 extract. Prepaid credits ($1 = 200 credits, $5 = 1,000, $20 = 5,000, $50 = 15,000) never expire. | Tokens. Their FAQ: "Supplying an API key raises the rate limit and charges tokens based on content length." The rate-limit table says the Reader row counts "the number of tokens in the output response". The token price is not in the text of the page we read, so we show no dollar figure for Jina; read their price table. |
| Free | 20 calls a day per caller IP address, no account (REST needs X-Billing: free). Shared by REST and MCP. | Free for basic use without a key: the rate-limit row shows "20 RPM" without an API key (a rate limit; we saw no daily quota on the page). "Every new API key comes with 10M free tokens!" (their page). |
| Rate limits (their table, Reader row) | Free tier: 20 calls a day per caller IP. A single call must finish within 10 seconds. | 20 RPM without a key, 500 RPM with a free key, 500 RPM with a paid key, 5000 RPM with a premium key. |
| Payment methods | USDC through x402 on 7 networks (REST); card (Stripe) for prepaid credits. | Stripe: "credit cards, Google Pay, and PayPal" (their FAQ). We found no x402 or USDC on the page we read. |
| Failed requests | Not charged: 404, timeout, blocked, robots.txt disallowed. Measured on the sandbox route only. | "No, tokens are not deducted for failed requests." (their FAQ) |
| robots.txt | Always respected (HTTP 451 on disallow). | An optional header, X-Robots-Txt, "Check robots.txt rules before fetching" (their page). |
/v1/render/*) exists but is switched off right now and answers HTTP 503 render_disabled (never charged); we do not promise a date.unsupported_type, not charged).blocked_by_site (not charged). One call must finish within 10 seconds.Our own numbers are on the benchmark page (test date 2026-10-26, one client machine, 10 public pages that are friendly to scraping practice, 4 runs per page and endpoint, through the sandbox route that uses the same extraction code with Base Sepolia test USDC): /v1/markdown 38 of 40 succeeded (95.0%), /v1/extract 40 of 40 (100.0%); simple field checks passed 75/75 and 212/212. Ten deliberately failing calls changed the test wallet's USDC balance by 0.000000. The 2 failures were one upstream 422 and one testnet settlement failure (the response said it was not charged; that text was not balance-checked); details on the benchmark page. All scripts and raw files are linked from that page so you can rerun them.
We did not run any competitor. There is no head-to-head speed, accuracy or success-rate number on this page and none should be implied. No mainnet payment was tested in that benchmark.
Also see WebExtract vs Firecrawl and the overview of alternatives. Last updated 2026-10-30.