LLM API Pricing Monitor & Tracker avatar

LLM API Pricing Monitor & Tracker

Pricing

Pay per event

Go to Apify Store
LLM API Pricing Monitor & Tracker

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.

Pricing

Pay per event

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 hours ago

Last modified

Categories

Share

LLM API Pricing Comparison

LLM API Pricing Comparison — Monitor 7 Providers in One Dataset

We do the dirty work so your dataset stays clean. 😈

$5.05 / 1,000 rows — pay only for results, no credit card to try. Scrape live pricing from the seven major LLM API providers (OpenAI, Anthropic, Google, Mistral, Groq, Together AI, DeepSeek) and emit one unified per-million-token dataset ready for cost dashboards, FinOps pipelines, and spreadsheet pivots.

This Actor hits the authoritative pricing page for each provider directly — not the OpenRouter re-routing layer — parses the live HTML or RSC payload with parsel, and pushes a flat Pydantic-validated dataset to Apify. One run gives you a snapshot of every text-token model the providers sell, normalized so that $2 / 1M tokens and $0.002 / 1K tokens line up in the same column.

🎯 What this scrapes

Seven LLM API providers, one schema — authoritative source pricing pages only:

  1. OpenAIopenai.com/api/pricing/ (Cloudflare-protected; we handle the challenge via fingerprint rotation + proxy)
  2. Anthropicdocs.anthropic.com model comparison table (not the Webflow marketing page)
  3. Google (Gemini API)ai.google.dev/gemini-api/docs/pricing
  4. Mistralmistral.ai/pricing (Next.js RSC payload — JSON extracted via regex)
  5. Groqgroq.com/pricing (server-rendered HTML table)
  6. Together AIwww.together.ai/pricing (Webflow list items)
  7. DeepSeekapi-docs.deepseek.com/quick_start/pricing (Docusaurus markdown table)

Output rows are normalized to USD per 1 million tokens regardless of how the provider publishes the price — per-1k prices are auto-multiplied by 1000 in the parser.

FieldTypeDescription
providerstringProvider literal (openai, anthropic, google, ...)
provider_display_namestringHuman-readable name (e.g. OpenAI)
model_idstringProvider-canonical ID (e.g. gpt-4o-2024-08-06)
model_display_namestring | nullHuman label from the pricing page
pricing_unitstringAlways per_1m_tokens
input_usd_per_1mnumber | nullStandard input price per 1M tokens
output_usd_per_1mnumber | nullStandard output price per 1M tokens
cache_read_usd_per_1mnumber | nullCached input read price
cache_write_usd_per_1mnumber | nullCache write price
batch_input_usd_per_1mnumber | nullBatch API input price
batch_output_usd_per_1mnumber | nullBatch API output price
context_window_tokensinteger | nullMax context window
max_output_tokensinteger | nullMax output tokens per request
tierstring | nullSub-tier label (e.g. standard)
source_urlstringExact pricing page URL scraped
scraped_atstringISO 8601 UTC timestamp

🔥 Features

  • 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_1m field 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 blockscurl-cffi browser 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 / 503 with Retry-After honoured — 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-scraper as 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_1m over 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_1m directly 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.

⚙️ How to use it

  1. Open the Actor input form.
  2. (Optional) Pick Providers — leave empty to scrape all seven, or list a subset like ["groq", "deepseek"].
  3. (Optional) Toggle Include legacy models — off by default; rows flagged deprecated/legacy/retired are dropped.
  4. (Optional) Set Minimum context window (tokens) — e.g. 128000 to drop everything below 128K context.
  5. Leave Use Apify Proxy off unless OpenAI is in your list — a residential exit gives the fingerprint rotation the best chance against Cloudflare.
  6. Click Start. Results stream into the default dataset.

Quick examples

All seven providers, default settings:

{
"providers": [],
"includeLegacyModels": false
}

Groq + DeepSeek only (the QA fixture):

{
"providers": ["groq", "deepseek"],
"includeLegacyModels": false,
"useProxy": false
}

Frontier models only (>= 128K context), all providers, with proxy for OpenAI:

{
"providers": [],
"includeLegacyModels": false,
"minContextWindow": 128000,
"useProxy": true
}

📥 Input

FieldTypeRequiredDefaultDescription
providersarray of provider literalsno[] (all seven)Subset of openai, anthropic, google, mistral, groq, together, deepseek
includeLegacyModelsbooleannofalseKeep rows flagged deprecated/legacy/retired
minContextWindowinteger | nullnonullDrop rows with non-null context window below this value
useProxybooleannofalseRoute via Apify Proxy (BUYPROXIES94952)

📤 Output

One dataset row per (provider × model_id × tier). Example record — Anthropic Claude Sonnet 4.6 as of 2026-05-16:

{
"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"
}

Download the dataset as JSON, CSV, Excel, or XML from the Export button on the run page.

💰 Pricing

Pay-Per-Event (PPE) — you pay only for results that land:

EventRate (USD)Trigger
actor-start$0.05Once per Actor run at boot
result-row$0.005Per pricing row pushed

A typical run (all seven providers, 80 total rows) costs **$0.45**. Per-1,000-row extrapolation: $5.05 — covering the authoritative provider pricing pages directly, not an OpenRouter re-routing layer, on pay-per-result pricing.

No credit card required to try — Apify gives new accounts free test credits.

🚧 Limitations

  • OpenAI Cloudflare challengeopenai.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 null rather than crashing; the QA fixture (groq + deepseek) catches parser breakage on every publish.

❓ FAQ

Why these seven providers? They are the seven biggest providers of text-token LLM APIs by inference revenue as of Q1 2026. Cohere, AI21, and Perplexity are deliberately out of scope for v1; open a feature request if you need them.

Why scrape the pricing pages instead of using each provider's API? None of the seven providers publish their pricing via an authenticated API. The pricing pages are the single source of truth. We hit the authoritative URL for each provider (e.g. docs.anthropic.com, not the marketing redirect at claude.com/pricing).

Why is OpenAI sometimes missing from the output? OpenAI's pricing page sits behind Cloudflare's JavaScript challenge. We rotate browser TLS fingerprints (Chrome/Firefox impersonation via 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? Yes. 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? No — every run is a fresh snapshot. Schedule runs and export to your own storage (BigQuery, S3, a named dataset, etc.) to build a time series. Apify's default run-scoped storage is purged after 7 days on the free plan.

What is llm price per token for the most common models? Price-per-token varies widely. As of Q2 2026: GPT-4o input runs ~$2.50/1M tokens, Claude Sonnet 4.6 input is ~$3.00/1M tokens, Gemini 1.5 Pro input is ~$1.25/1M tokens, and DeepSeek V3 input is ~$0.27/1M tokens. Run this Actor for a current snapshot across all seven providers.

Companion Actor? Yes — 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.

💬 Your feedback

Found a parser that broke after a provider's pricing page restructure? Want a new provider added? Open an issue on the Actor's Apify Store page or contact us at apify.com/DevilScrapes. We monitor publish-day QA failures and ship patches the same week.