AI & LLM data · Automation
LLM API Pricing Monitor & Tracker
Scrape and compare live LLM API pricing from OpenAI, Anthropic, Google, Mistral, Groq, Together AI, and DeepSeek — normalized per-million-token, export to JSON or CSV. A continuously updated LLM API pricing comparison table for cost dashboards and FinOps.
Free Apify credit covers a first run. No credit card to try.
What this Actor scrapes
Seven LLM API providers, one schema — authoritative source pricing pages only:
1. OpenAI — openai.com/api/pricing/ (Cloudflare-protected; we handle the challenge via fingerprint rotation + proxy) 2. Anthropic — docs.anthropic.com model comparison table (not the Webflow marketing page) 3. Google (Gemini API) — ai.google.dev/gemini-api/docs/pricing 4. Mistral — mistral.ai/pricing (Next.js RSC payload — JSON extracted via regex) 5. Groq — groq.com/pricing (server-rendered HTML table) 6. Together AI — www.together.ai/pricing (Webflow list items) 7. DeepSeek — api-docs.deepseek.com/quick_start/pricing (Docusaurus markdown table)
What we handle for you
- Seven providers, one schema — drop straight into a spreadsheet or BI tool with no per-provider normalization on your end.
- Per-1k auto-conversion — every
*_usd_per_1mfield is normalized regardless of how the provider lists prices on the page. - Per-provider isolation — one provider failure does not abort the run; the other providers still produce data.
- We handle the blocks —
curl-cffibrowser TLS fingerprint impersonation rotates across Chrome and Firefox profiles so the target sees real-browser traffic, not Python. - We rotate proxies on blocks — when a provider page pushes back, we cycle to a fresh residential exit IP and retry before surfacing a partial-success status.
- We retry with exponential backoff on
429/503withRetry-Afterhonoured — up to 5 attempts per provider. - Pydantic v2 validation — input and output are model-validated; invalid input fails fast with a clear error before any network call.
- Filter knobs — drop deprecated/legacy models, enforce a minimum context window, or restrict the provider list to just the ones you care about.
- Companion to
huggingface-hub-scraperas the *AI Stack Intelligence* suite — pair pricing with hub-side model adoption signals.
Use cases
- FinOps cost dashboard — schedule weekly runs, write to a named dataset, and chart
input_usd_per_1mover time per model. CloudZero reports the average AI company spends $85k/month on LLMs — a 10% saving is meaningful. - AI buyer comparison sheets — feed the JSON into a spreadsheet and rank by
(input_usd_per_1m + output_usd_per_1m * 2)weighted for the typical 2:1 output/input ratio of your workload. - Procurement bake-offs — when evaluating Anthropic vs Google vs OpenAI for a new feature, pull the current pricing snapshot rather than relying on a stale screenshot in a PDF.
- Cache-aware budgeting — DeepSeek and Anthropic publish cache-hit pricing separately; this Actor surfaces it (
cache_read_usd_per_1m) so you can model the effective rate after caching. - Batch-mode arbitrage — OpenAI and Anthropic offer ~50% discounts via their batch APIs; surface
batch_input_usd_per_1m/batch_output_usd_per_1mdirectly in your dashboard. - Investor research — track price-per-token compression at the frontier (Groq, Together, DeepSeek) versus the incumbents (OpenAI, Anthropic, Google) over quarters.
- Open-source pricing leaderboards — feed a public site that ranks the cheapest model meeting a context-window or quality threshold.
Input
Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.
| Field | Type | Required | What it does |
|---|---|---|---|
providers | array | no | List of providers to scrape. Valid values: openai, anthropic, google, mistral, groq, together, deepseek. Leave empty to scrape all seven (order: anthropic, google, mistral, groq, together, deepseek, openai). |
includeLegacyModels | boolean | no | When disabled, rows where the provider page explicitly labels a model deprecated, legacy, or retired are dropped before push. |
minContextWindow | integer | no | Drop rows whose context_window_tokens is non-null and below this value. Rows with unknown context window are retained. |
useProxy | boolean | no | Route requests through Apify Proxy (BUYPROXIES94952). Recommended when OpenAI is in the provider list — its Cloudflare challenge sometimes clears with a residential exit. |
{
"providers": [],
"includeLegacyModels": false,
"useProxy": false
} Output
One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.
providerprovider_display_namemodel_idmodel_display_namepricing_unitinput_usd_per_1moutput_usd_per_1mcache_read_usd_per_1mcache_write_usd_per_1mbatch_input_usd_per_1mbatch_output_usd_per_1mcontext_window_tokensmax_output_tokenstiersource_urlscraped_at
{
"provider": "anthropic",
"provider_display_name": "Anthropic",
"model_id": "claude-sonnet-4-6",
"model_display_name": "Claude Sonnet 4.6",
"pricing_unit": "per_1m_tokens",
"input_usd_per_1m": 3.0,
"output_usd_per_1m": 15.0,
"cache_read_usd_per_1m": null,
"cache_write_usd_per_1m": null,
"batch_input_usd_per_1m": null,
"batch_output_usd_per_1m": null,
"context_window_tokens": 1000000,
"max_output_tokens": 64000,
"tier": "standard",
"source_url": "https://docs.anthropic.com/en/docs/about-claude/models/all-models",
"scraped_at": "2026-05-16T13:40:00.000Z"
} Pricing
| Event | Price | When |
|---|---|---|
| Actor start | $0.20 | Once per run, covers warm-up and proxy session setup. |
| Pricing row | $0.0050 | Per result written to the dataset. |
You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.
Limitations
- OpenAI Cloudflare challenge —
openai.com/api/pricing/sits behind Cloudflare's JavaScript challenge. We rotate browser fingerprints and residential proxy IPs to clear it; when the challenge cannot be cleared, OpenAI rows are skipped and the run continues with the other six providers (status message indicates partial success). A Camoufox fallback path is planned if the challenge becomes consistent. - Text-token models only — image generation, speech-to-text, embeddings, and other modality prices are out of scope for v1.
- Authoritative pages only — Azure OpenAI, AWS Bedrock, Vertex AI, and OpenRouter pass-through prices are out of scope.
- No historical tracking — schedule runs and export to your own storage for time-series. Apify's default dataset retention is 7 days on the free plan.
- Provider page restructures — pricing pages change occasionally. Fields that cannot be parsed emit
nullrather than crashing; the QA fixture (groq + deepseek) catches parser breakage on every publish.
FAQ
Why these seven providers?
Why scrape the pricing pages instead of using each provider's API?
docs.anthropic.com, not the marketing redirect at claude.com/pricing).Why is OpenAI sometimes missing from the output?
curl-cffi) plus residential proxy IPs. This clears the challenge most of the time — when it does not, the Actor logs the outcome, sets a status message, and continues with the other six providers. A partial result is more useful than a hard failure.Are per-1k prices converted to per-1M?
pricing_unit is always "per_1m_tokens". Parsers detect per-1k pricing from column headers and multiply by 1000 before constructing the row.Does this Actor track price changes across runs?
What is llm price per token for the most common models?
Companion Actor?
huggingface-hub-scraper is the other half of the *AI Stack Intelligence* suite. Pair model adoption (HF downloads, GGUF availability) with live pricing for full-stack AI cost-and-coverage dashboards.Ready to run it?
Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.
Related Actors