Home / AI extraction / Output formats
Markdown, JSON or HTML: what each API returns, and what it costs
45 of the 75 APIs whose pages we read return markdown, 67 return structured JSON pulled out of the page and 39 take screenshots. Markdown usually costs the same as HTML; structured JSON is where the bill moves, with an extra charge published by 20 of them, such as Firecrawl's +4 credits per page.
Read on each vendor's own pages on Oct 11, 2026. "Not listed" means the pages we read do not mention the format.
The same page, three ways
One product page, as an API hands it back. HTML is the page as the browser received it; markdown keeps the words and the structure and drops the code, which is what an LLM reads best; structured JSON is only the fields you asked for, extracted by the API, which is the step most vendors charge extra for.
<div class="product">
<h1 class="title">Trail shoe 2</h1>
<span class="price" data-cur="USD">
$89.00</span>
<div class="stock in">In stock</div>
<script>window.dataLayer=…</script>
</div># Trail shoe 2
$89.00
In stock{
"name": "Trail shoe 2",
"price": 89.00,
"currency": "USD",
"in_stock": true
}An illustration, not any vendor's real output; each vendor's documentation shows its own.
Web scraping APIs
| API | Markdown | Structured JSON | HTML | Plain text | Screenshot | Links |
|---|---|---|---|---|---|---|
| Apify | Yes | Yes | Not listed | Not listed | Not listed | Not listed |
| Bright Data Web Unlocker and Web Scraper API | Yes | Yes | Yes | Not listed | Yes | Not listed |
| Browsable | Not listed | Yes | Not listed | Not listed | Not listed | Not listed |
| Crawlbase | Yes | Yes | Yes | Not listed | Yes | Not listed |
| Decodo Web Scraping API | Yes | Yes | Yes | Not listed | Yes | Not listed |
| Firecrawl | Yes | Yes | Yes | Not listed | Yes | Yes |
| HasData | Yes | Yes | Yes | Yes | Yes | Yes |
| Nimble | Yes | Yes | Yes | Not listed | Yes | Yes |
| Olostep | Yes | Yes | Yes | Yes | Yes | Yes |
| Oxylabs Web Scraper API | Yes | Yes | Yes | Not listed | Yes | Not listed |
| Scrape.do | Yes | Yes | Not listed | Not listed | Yes | Not listed |
| ScrapeGraphAI | Yes | Yes | Yes | Not listed | Yes | Yes |
| ScrapeLens | Not listed | Yes | Yes | Not listed | Not listed | Not listed |
| ScrapeNinja | Not listed | Yes | Yes | Not listed | Yes | Not listed |
| ScrapeOps | Yes | Yes | Yes | Not listed | Yes | Not listed |
| ScrapeOwl | Not listed | Yes | Yes | Not listed | Yes | Not listed |
| ScraperAPI | Yes | Yes | Yes | Yes | Yes | Not listed |
| Scrapfly | Yes | Yes | Yes | Yes | Yes | Not listed |
| Scraping Robot | Not listed | Yes | Yes | Not listed | No | Not listed |
| ScrapingAnt | Yes | Yes | Yes | Yes | Not listed | Not listed |
| ScrapingBee | Yes | Yes | Yes | Yes | Yes | Not listed |
| ScrapingBot | Not listed | Yes | Yes | Not listed | Yes | Not listed |
| ScrapingDog | Yes | Yes | Yes | Not listed | Yes | Yes |
| ScrapingFish | Not listed | Yes | Yes | Not listed | Yes | Not listed |
| Scrappa | Yes | Yes | Yes | Yes | Not listed | Yes |
| SOAX Web Data API | Yes | Not listed | Yes | Not listed | Yes | Not listed |
| Spider.cloud | Yes | Yes | Yes | Yes | Yes | Yes |
| WebScraping.AI | Yes | Yes | Yes | Yes | Not listed | Yes |
| WebScrapingAPI | Not listed | Yes | Yes | Not listed | Not listed | Not listed |
| ZenRows | Yes | Yes | Yes | Yes | Yes | Yes |
| Zyte API | Not listed | Yes | Yes | Not listed | Yes | Not listed |
What a format adds to the bill
- Browsable: json from prebuilt APIs: 1 credit for a basic request, more for more data collected; json from an AI-generated custom scraper: 80 credits to create, 10 credits per call.
- Crawlbase: screenshot: 2 credits per full-page capture (standard request is 1 credit); json: Built-in scrapers (structured JSON) cost the same as a raw HTML request.
- Firecrawl: json: +4 credits per page (on top of 1 credit per scrape); pdf parsing: +1 credit per PDF page; markdown: included in the 1 credit per page base scrape.
- Nimble: extract (html, markdown, screenshot, links): $1.00 / 1K URLs; only successful requests are charged; json via Extract Templates: $3.00 / 1K runs; search with full page content: +$1.00 / 1K URLs on top of the depth price (lite $1.10 / 1K inputs, standard $5.00 / 1K inputs); media download: $2.00 / GB.
- Olostep: base scrape (markdown, html, text): 1 credit per scrape; json via ready-made parsers: 1-5 credits per scrape depending on the parser; json via LLM extract: 10 credits per scrape; AI answers (/answers): 20 credits per request.
- ScrapeGraphAI: markdown / html / links / images / summary: 1 credit each; json (AI extraction): 5 credits (Scrape json format); Extract endpoint is 5 credits; screenshot: 2 credits; branding: 25 credits; stealth proxy modifier: +4 credits (Stealth), +5 (JS + Stealth), +9 (Auto, worst case).
- ScrapeOps: json: LLM extraction adds +25 credits on top of the base proxy cost.
- ScraperAPI: screenshot: +10 API credits per request; markdown/text/json: no extra credits for output_format or autoparse.
- ScrapingAnt: markdown: Same as a normal request: 10 credits with browser (default, datacenter proxy), 1 credit with browser=false; json: AI extractor: 1 credit per 30 characters of page Markdown plus output, added to the normal request cost.
- ScrapingBee: json: +5 API credits when an AI query (ai_query / ai_extract_rules) is added to a request.
- ScrapingBot: json: AI extraction adds +5 credits to the scrape; screenshot: 5 credits (same as JavaScript rendering; plain HTTP is 1 credit).
- ScrapingDog: screenshot: 5 credits per successful request (Screenshot API); json: +10 credits per Web Scraping request with AI Parser.
- ScrapingFish: all (screenshot, JSON extraction, JS scenario): No extra charge: every successful request costs the same $0.002 whatever features are used.
- Scrappa: all (JSON, HTML, Markdown): 1 credit per successful request on every endpoint, no format surcharge.
- Spider.cloud: json (AI extraction): AI Studio add-on from $6/mo (Starter, 1 req/s); it runs on top of pay-as-you-go credits that still meter the underlying usage; any (markdown, text, html): no per-format charge; bandwidth $1 per GB plus $0.0001 per CPU minute.
- WebScraping.AI: json: AI extraction endpoints (/ai/question, /ai/fields) add +5 credits on top of the proxy/JS cost; json: Ready-made structured data for supported social sites: 15 credits per page (50 for Reddit).
- ZenRows: json: no extra credits: Extract (extract=auto) is billed as the underlying Fetch call; screenshot: needs js_render=true, which is 5 credits per request.
- Zyte: screenshot: $1.34 per 1,000; json: $0.27-$1.07 per 1,000 per data type for automatic extraction.
Prices for these APIs: web scraping APIs compared.
AI extraction APIs
| API | Markdown | Structured JSON | HTML | Plain text | Screenshot | Links |
|---|---|---|---|---|---|---|
| AgentQL | Not listed | Yes | Not listed | Not listed | Yes | Not listed |
| Browse AI | Not listed | Yes | Not listed | Not listed | Yes | Not listed |
| Diffbot | Not listed | Yes | Yes | Yes | Not listed | Yes |
| Jina AI Reader and Search Foundation APIs | Yes | Yes | Yes | Yes | Yes | Yes |
| Kadoa | Yes | Yes | Yes | Not listed | Not listed | Not listed |
What a format adds to the bill
- Browse AI: standard sites: 1 credit minimum per task; 10 rows of data = 1 credit; 1 screenshot = 1 credit; 10 single captured text = 1 credit; premium sites: 2 to 10 credits per task, per 10 rows, per screenshot and per 10 captured texts.
- Diffbot: json (Extract, 1 page): 1 credit per page; json (Extract via datacenter proxy): 2 credits per page; Natural Language (text to entities): 1 credit per document up to 10,000 characters; Crawl (spidering for links): 0 credits; credits are used when a page is successfully extracted.
- Jina AI: markdown (default Reader output): tokens counted on the output response; markdown via jina-ocr-v1 (X-Respond-With): 40x more tokens; search (s.jina.ai): fixed number of tokens per request, starting from 10,000.
- Kadoa: all (workflow extraction): usage-based: you pay for active workflows, measured in slots (Standard 1x, Simple 0.1x, Complex 2x or more); no per-format charge published.
Prices for these APIs: AI extraction APIs compared.
Cloud browsers
| API | Markdown | Structured JSON | HTML | Plain text | Screenshot | Links |
|---|---|---|---|---|---|---|
| Anchor Browser | Yes | Yes | Yes | Not listed | Yes | Not listed |
| Browserbase | Yes | Yes | Yes | Not listed | Not listed | Not listed |
| BrowserCloud | Not listed | Not listed | Yes | Not listed | Yes | Not listed |
| Browserless | Yes | Yes | Yes | Not listed | Yes | Yes |
| Cloudflare Browser Rendering | Yes | Yes | Yes | Not listed | Yes | Yes |
| Hyperbrowser | Yes | Yes | Yes | Not listed | Yes | Yes |
| Kernel | Not listed | Not listed | Not listed | Not listed | Yes | Not listed |
| Lightpanda Cloud | Yes | Not listed | Yes | Not listed | Not listed | Not listed |
| Scrapeless | Yes | Yes | Yes | Not listed | Yes | Yes |
| Steel.dev | Yes | Not listed | Yes | Not listed | Yes | Yes |
What a format adds to the bill
- Anchor Browser: json: AI tasks are billed per AI step, $0.01 to $0.10 per step depending on model tier.
- Browserbase: html: Fetch: $1/1k calls beyond the included calls on Developer ($4/1k with proxies); $0.5/1k on Startup; markdown: Fetch Extract: $4/1k calls, $7/1k calls with proxies; json: Fetch Extract: $4/1k calls, $7/1k calls with proxies.
- BrowserCloud: html: Page Scrape: 1 credit per call; screenshot: Screenshot: 5 credits per call.
- Cloudflare Browser Rendering: json: The JSON format uses Workers AI by default, which is billed as Workers AI usage on top of browser time.
- Hyperbrowser: json: Fetch with JSON output: +5 credits per page (1 credit = $0.001); json: Scrape AI Extract: 0.03 credits per output token ($30 per million output tokens).
Prices for these APIs: cloud browsers compared.
Web search APIs
| API | Markdown | Structured JSON | HTML | Plain text | Screenshot | Links |
|---|---|---|---|---|---|---|
| Brave Search API | Yes | Yes | Not listed | Yes | Not listed | Not listed |
| Desearch | Not listed | Yes | Yes | Yes | Not listed | Not listed |
| Exa | Not listed | Yes | Not listed | Yes | Not listed | Yes |
| Google Custom Search JSON API | Not listed | Yes | Not listed | Not listed | Not listed | Not listed |
| Kagi Search API | Yes | Yes | Not listed | Not listed | Not listed | Not listed |
| Linkup | Yes | Yes | Yes | Not listed | Not listed | Not listed |
| Parallel Web Systems Search API | Yes | Yes | Not listed | Not listed | Not listed | Not listed |
| Perplexity Search API | Not listed | Yes | Not listed | Not listed | Not listed | Not listed |
| Scavio | Yes | Yes | Yes | Yes | Yes | Not listed |
| Search1API | Yes | Yes | Not listed | Not listed | Yes | Not listed |
| Tavily | Yes | Yes | Not listed | Yes | Not listed | Not listed |
| TinyFish | Yes | Yes | Yes | Not listed | Yes | Yes |
| Valyu | Yes | Yes | Not listed | Not listed | Yes | Not listed |
| You.com API | Yes | Yes | Yes | Not listed | Not listed | Not listed |
What a format adds to the bill
- Exa: contents (text, highlights or summary): $1 / 1k pages per content type on /contents; each content type is billed separately; AI page summaries: $1 / 1k pages on any endpoint that returns one.
- Linkup: json (Fetch with schema): +$0.001 per call on top of any Fetch mode; sourcedAnswer / structured (Search): $0.006 vs $0.005 for searchResults (standard depth).
- Perplexity Search: Fast Search (search_type fast): $1.00 per 1,000 requests instead of $5.00 for standard web search.
- Scavio: screenshot: 1 credit (normal or advanced mode), 5 credits (ultra mode); html/markdown/text (Extract): 1 credit (normal or advanced mode), 2 credits (ultra mode); the same price for each format.
- Search1API: screenshot: 2 credits per successful screenshot (1 credit for a search, news or crawl request); json (Extract beta): 10 credits per request; full page content with search: 1 credit for the search + 1 credit for each page crawled successfully.
- Valyu: json / summary (Contents with summarisation or structured extraction): $0.001 per URL, plus $0.001 per URL with summarisation or structured extraction; failed URLs are free.
- You.com: full page content with search (extraction_mode full_page): $5.00 per 1000 searches + $1.00 per 1000 pages crawled; Contents API (markdown, html or metadata): $1.00 per 1000 pages.
Prices for these APIs: web search APIs compared.
SERP APIs
| API | Markdown | Structured JSON | HTML | Plain text | Screenshot | Links |
|---|---|---|---|---|---|---|
| Bright Data SERP API | Yes | Yes | Yes | Not listed | Not listed | Not listed |
| DataForSEO SERP API | Not listed | Yes | Yes | Not listed | Yes | Not listed |
| Oxylabs SERP Scraper API | Not listed | Yes | Yes | Not listed | Not listed | Not listed |
| Scale SERP | Not listed | Yes | Yes | Not listed | Not listed | Not listed |
| SearchApi.io | Not listed | Yes | Yes | Not listed | Not listed | Not listed |
| SerpApi | Yes | Yes | Yes | Not listed | Not listed | Not listed |
| Serper.dev | Not listed | Yes | Not listed | Not listed | Not listed | Not listed |
| SERPHouse | Not listed | Yes | Yes | Not listed | Not listed | Not listed |
| serpstack | Not listed | Yes | Not listed | Not listed | Not listed | Not listed |
| SerpWow | Not listed | Yes | Yes | Not listed | Not listed | Not listed |
| ValueSERP | Not listed | Yes | Yes | Not listed | Not listed | Not listed |
| Zenserp | Yes | Yes | Not listed | Not listed | Not listed | Not listed |
What a format adds to the bill
- Bright Data SERP: json/markdown/html: included in the unit price.
Prices for these APIs: SERP APIs compared.
Which format to ask for
- Feeding an LLM or a search index: markdown. It is the cheapest format that keeps headings, lists and links, and on most APIs it costs the same as the raw page.
- Filling a spreadsheet or a database: structured JSON, if the API's extraction is cheaper than writing and keeping your own parser; compare its extra credits with the time a parser takes you. Ready-made parsers for one site (Amazon, Google) are often cheaper than AI extraction on any page.
- Keeping a record of what a page showed: a screenshot, which most APIs charge as a rendered page or more.
- Writing your own parser: HTML, the base price everywhere.
To see what the extra credits come to at your volume, turn credits into pages, or price the whole job on the AI extraction comparison.