Data and API for agents
Static, versioned files. No keys, no rate limits beyond the host's. Current data version 2026.10.16, schema version 1.0, updated .
Endpoints
| Path | What it returns |
|---|---|
| /api/vendors.json | All vendors: plans, free tiers, normalized prices with formulas, MCP status, gaps, sources. |
/api/vendors/{vendor_id}.json | One vendor, same shape. |
| /api/pricing.csv | One row per normalized price (CSV, UTF-8). |
| /api/cheapest.json | Top five per use case at each monthly budget (0, 50, 100, 500, unlimited). |
/api/cheapest/{use_case}.json | Same for one use case. |
| /api/calculator.json | Pricing tiers (fee, included allowance, overage, rate) per vendor and request type, as used by the cost calculator. |
| /api/index.json | Endpoint and ID discovery. |
| /api/schema.json | JSON Schema for vendors.json. |
| /llms.txt | Plain-text guide for LLM agents. |
“Cheapest tool for X”
Pick the use-case id, then the monthly budget key. Results are each vendor's lowest published price within that budget. Assumption-based rows are excluded; component rows exclude other charges and carry a confidence field.
curl -s https://fetchindex.com/api/cheapest/serp.json | jq '.by_monthly_budget_usd["100"][0]'
curl -s https://fetchindex.com/api/vendors.json | jq '.vendors[] | select(.mcp.supported==true) | .name'
curl -s https://fetchindex.com/api/pricing.csv | head -3
Use-case ids
| id | Label | Unit | Definition |
|---|---|---|---|
page_basic | Basic page fetch | per_1k_requests | One successful page/URL fetch with no JavaScript rendering and no premium anti-bot tier. |
page_js | JavaScript-rendered page | per_1k_requests | One page that needs a headless browser to render. |
page_protected | Protected / anti-bot page | per_1k_requests | One page behind aggressive bot protection using the vendor's premium unblocking path. |
serp | SERP query (structured search results) | per_1k_requests | One search-engine results page returned as structured data. |
search_ai | AI/agent search query | per_1k_requests | One web search for an LLM/agent (about 10 results). |
content_extract | URL to LLM-ready content | per_1k_requests | One URL converted to clean markdown/text for RAG or agents. |
browser_hour | Remote browser hour | per_hour | One hour of a hosted cloud browser session. |
residential_gb | Residential proxy bandwidth | per_gb | One GB of residential proxy traffic. |
Fields (normalized entry)
| Field | Meaning |
|---|---|
usd | Effective price in the entry's unit. |
monthly_usd | Plan fee needed per month for that rate (0 for pay as you go; null if not published). Used for budget filtering. |
billing | monthly, annual, payg or prepaid. Never inferred from each other. |
confidence | published, component (other charges excluded) or assumption (stated assumptions). |
calc, formula | Inputs and the recomputable formula: price_usd / quantity x per_request x (1000 for per_1k units). |
assumptions | Plain-language list; empty when none. |
nulls (vendor) | Things we could not verify, as {{field, note}}. |
affiliate_relationship (vendor, optional) | true when FetchIndex has an affiliate relationship with the vendor (currently only Firecrawl; see disclosure). Absent means false. Informational: it never affects prices, rankings or caveats, and official_url / pricing_url stay plain official links. |
fetched_at | Date the official page was read. |
Versioning
Schema changes that remove or rename fields bump the major schema_version. New fields are added without a bump. data_version is the date of the snapshot (YYYY.MM.DD). See the price-change log.
Caveats
Prices are not quotes. Always confirm on the vendor's official page. See methodology.