Anthropic Pricing Scraper
Pricing
from $2.98 / 1,000 results
Anthropic Pricing Scraper
Scrape public Claude documentation and pricing pages for structured API model and subscription plan records. Results include model names, API IDs, lifecycle states, token pricing fields, and plan details. Models with prompt-length pricing are returned as separate rows for each tier.
Pricing
from $2.98 / 1,000 results
Rating
0.0
(0)
Developer
Axiom Works
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Returns: one row per Claude API model price row or Claude plan with name, inputPerMTok, outputPerMTok, cacheReadPerMTok, batchInputPerMTok, apiModelId, deprecationState, monthlyPriceUsd.
Input: {"startUrls": [{"url": "https://platform.claude.com/docs/en/about-claude/pricing"}], "recordTypes": ["api_model"], "maxItems": 50}
Best for: tracking Anthropic API price changes, comparing Claude model costs in a spreadsheet, feeding current Claude plan prices into dashboards or AI agents.
{"recordType": "api_model","name": "Claude Opus 4.5","family": "Opus","version": "4.5","inputPerMTok": 5,"outputPerMTok": 25,"apiModelId": "claude-opus-4-5-20251101","deprecationState": "Active"}
What does Anthropic Pricing Scraper do?
Anthropic Pricing Scraper is an Anthropic pricing scraper and Claude pricing API in one Actor. It reads the public Claude pricing pages and returns structured rows: one row per model price row from the Claude API documentation, and one row per subscription plan or seat from the Claude pricing page. It needs no login and no API key from Anthropic.
For API models you get the input price, output price, 5 minute and 1 hour cache write prices, cache read price, batch processing prices, fast mode prices and the tool use system prompt token counts, all as plain numbers per million tokens. Each model is also matched with its API model ID and lifecycle state (Active, Deprecated or Retired) from the Anthropic model deprecations page, so you can see at a glance which models are still sold. Models that are priced by prompt length, such as Claude Haiku 5.5, produce one row per prompt length tier.
For plans you get Free, Pro, Max, the Team standard and premium seats and Enterprise, with the displayed price text, the monthly price, the annual price per month, the annual total, the feature list and the sign-up link.
The Actor reads the documentation page as markdown, which is one small file, so a normal run takes two requests and finishes in a few seconds. It looks up table columns by their header text instead of by position, so new Claude models and renamed columns are picked up without a code change.
What data can you get from Anthropic?
Every record has all fields below. Fields that a page does not have are returned as null: plan fields are null on model rows, and batch, fast mode, tool use and API ID fields are null on rows read from the claude.com page. Docs rows come from the Claude API documentation; claude.com rows come from the public pricing page.
| Field | Description | Example |
|---|---|---|
id | Stable record id: model: | model:Claude Opus 4.5:platform_docs |
sourceUrl | The document the record was read from: the docs .md URL or the claude.com/pricing URL. | https://platform.claude.com/docs/en/about-claude/pricing.md |
recordType | api_model for a model price row, plan for a Claude subscription plan or seat. | api_model |
source | Which page the record came from: platform_docs or claude_com. | platform_docs |
name | Model name as shown on the page (docs rows start with Claude), or the plan or seat name. | Claude Opus 4.5 |
description | Tagline from the page: the model card subtitle or the plan subtitle. Empty for docs rows. | Daily driver for agentic coding and enterprise work |
family | Model family word taken from the name: Fable, Mythos, Opus, Sonnet or Haiku. | Opus |
version | Version token taken from the name, e.g. 5.5, 4.1 or preview. | 4.5 |
apiModelId | API model id from the model deprecations page, matched by family and version. Docs rows only. | claude-opus-4-5-20251101 |
availability | active, limited or retired, taken from the parenthetical in the docs model name. active for claude.com rows and plans. | active |
availabilityNote | Parenthetical text next to the docs model name, e.g. limited availability. | limited availability |
promptLengthCondition | Prompt-length tier for models priced by prompt length, e.g. Haiku 5.5. Empty otherwise. | for prompts up to 100,000 tokens |
inputPriceText | Input price exactly as shown, footnote markers removed. | USD 5 / MTok |
outputPriceText | Output price exactly as shown, footnote markers removed. | USD 25 / MTok |
inputPerMTok | Base input price in USD per million tokens. | 5 |
cacheWrite5mPerMTok | Price of a 5-minute prompt cache write in USD per million tokens. | 6.25 |
cacheWrite1hPerMTok | Price of a 1-hour prompt cache write in USD per million tokens. Docs rows only. | 10 |
cacheReadPerMTok | Price of a prompt cache hit or refresh in USD per million tokens. | 0.5 |
outputPerMTok | Output price in USD per million tokens. | 25 |
batchInputPerMTok | Batch processing input price in USD per million tokens. Docs rows only. | 2.5 |
batchOutputPerMTok | Batch processing output price in USD per million tokens. Docs rows only. | 12.5 |
fastModeInputPerMTok | Fast mode input price in USD per million tokens, for models that offer fast mode. | 10 |
fastModeOutputPerMTok | Fast mode output price in USD per million tokens, for models that offer fast mode. | 50 |
toolUseSystemPromptTokensAuto | Tokens added by the tool use system prompt when tool_choice is auto or none. | 286 |
toolUseSystemPromptTokensAny | Tokens added by the tool use system prompt when tool_choice is any or tool. | 406 |
deprecationState | Current state from the model deprecations page: Active, Deprecated or Retired. | Active |
deprecatedOn | Date the model was deprecated, when it was. | June 5, 2026 |
tentativeRetirementDate | Tentative or actual retirement date from the model deprecations page. | Not sooner than July 24, 2027 |
planName | Name of the subscription plan card the record belongs to (Free, Pro, Max, Team, Enterprise). | Team |
planKey | Stable plan key: free, pro, max, team, team_premium or enterprise. | pro |
priceText | Price as shown on the plan card or seat. | USD 17 |
priceNote | Small print under the price, e.g. billing terms. | Per month with annual subscription discount (USD 200 billed up front). USD 20 if billed monthly. |
monthlyPriceUsd | Price in USD per month (per seat for seats) when billed monthly, or the card price when no monthly variant exists. | 20 |
annualPricePerMonthUsd | Per-month price in USD when billed annually. | 17 |
annualTotalUsd | Total billed up front for an annual subscription in USD. | 200 |
features | Feature bullet points listed on the plan card. | ["Claude Code", "Projects"] |
ctaUrl | Link of the plan card button, e.g. the sign-up page. | https://claude.ai/login?plan=pro |
currency | Currency of all prices. | USD |
priceUnit | What the prices are per: USD per million tokens, USD per month, USD per seat per month. | USD per million tokens |
pageTitle | Title of the page the record came from. | Pricing |
scrapedAt | ISO 8601 time of the run. | 2026-10-17T00:07:16.128Z |
How to use Anthropic Pricing Scraper
- Open the Actor in Apify Console and leave the default pricing page URL, or add claude.com/pricing to also get plans.
- Choose the record types. api_model returns model prices, plan returns subscription plans. The default returns both where the page has them.
- Optionally type model name words such as opus or sonnet into the model filter to keep only matching rows.
- Set maxItems and click Start. The run normally ends within seconds.
- Open the Output tab and export the dataset as JSON, CSV, Excel or XML, or read it through the API.
Tips: the limit maxItems is shared across all URLs of a run, rows are returned in page order, and a plan record is never removed by the model filter. To monitor prices, schedule the Actor daily and compare the number fields with the previous run.
Input
| Field | Type | Required | Description |
|---|---|---|---|
startUrls | array of URLs | Yes | Pricing pages to read. Supported: the platform.claude.com docs pricing page (also docs.anthropic.com and docs.claude.com addresses) and claude.com/pricing (www.anthropic.com/pricing redirects there). Other URLs are skipped with a warning. |
recordTypes | array of strings | No | api_model and/or plan. Default both. |
modelFilter | array of strings | No | Case-insensitive words that must appear in the model name, for example opus or haiku 5.5. Default: all models. |
maxItems | integer | No | Maximum number of records for the whole run, 1-10000, default 200. |
proxyConfiguration | object | No | Proxy settings. Default: no proxy, because the pages answer plain requests. |
{"startUrls": [{ "url": "https://platform.claude.com/docs/en/about-claude/pricing" },{ "url": "https://claude.com/pricing" }],"recordTypes": ["api_model", "plan"],"modelFilter": ["opus", "sonnet"],"maxItems": 100,"proxyConfiguration": { "useApifyProxy": false }}
Addresses with a fragment such as pricing#model-pricing are accepted, and so are old docs addresses that redirect to the current documentation host. The legacy input key urls and plain string URLs are also accepted.
Output
Each run writes one dataset. Here are real records from a run on the Claude API documentation page, with null fields left out:
[{"recordType": "api_model","source": "platform_docs","name": "Claude Haiku 5.5","family": "Haiku","version": "5.5","apiModelId": "claude-haiku-5-5","availability": "active","promptLengthCondition": "for prompts up to 100,000 tokens","inputPerMTok": 0.1,"outputPerMTok": 0.5,"cacheReadPerMTok": 0.01,"batchInputPerMTok": 0.05,"batchOutputPerMTok": 0.25,"toolUseSystemPromptTokensAuto": 286,"deprecationState": "Active","sourceUrl": "https://platform.claude.com/docs/en/about-claude/pricing.md","id": "model:Claude Haiku 5.5:for prompts up to 100,000 tokens:platform_docs"},{"recordType": "plan","source": "claude_com","name": "Pro","planKey": "pro","monthlyPriceUsd": 20,"annualPricePerMonthUsd": 17,"annualTotalUsd": 200,"sourceUrl": "https://claude.com/pricing","id": "plan:pro"}]
Export formats: JSON, CSV, Excel, XML, RSS and HTML table.
How much does it cost to scrape Anthropic pricing?
Anthropic Pricing Scraper is charged per result. You pay only for the records returned, and maxItems caps how many that can be. See the Pricing tab of this Actor for the current price. A default run returns about two dozen records. You can also set a maximum cost per run in the run options; the Actor then stops and says so in its status message.
Use with AI agents (MCP)
Connect Anthropic Pricing Scraper to Claude, Cursor or any MCP client through the Apify MCP server:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com/?tools=axiomworks/anthropic-pricing-scraper"}}}
Example prompts:
- "Get the current Claude Opus and Sonnet API prices per million tokens and tell me which is cheaper for input."
- "List every Claude model that is retired or deprecated, with its API model ID and retirement date."
- "What does the Claude Team standard seat cost per month when billed annually versus monthly?"
Integrations and API
Run Anthropic Pricing Scraper from your own code with the Apify API. Set APIFY_TOKEN to your Apify API token (send it in the Authorization header, never in the URL).
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("axiomworks/anthropic-pricing-scraper").call(run_input={"startUrls": [{"url": "https://platform.claude.com/docs/en/about-claude/pricing"}],"recordTypes": ["api_model"],"maxItems": 50,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["name"], item["inputPerMTok"], item["outputPerMTok"])
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });const run = await client.actor('axiomworks/anthropic-pricing-scraper').call({startUrls: [{ url: 'https://claude.com/pricing' }],recordTypes: ['plan'],maxItems: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();
cURL
curl -X POST "https://api.apify.com/v2/acts/axiomworks~anthropic-pricing-scraper/run-sync-get-dataset-items" \-H "Authorization: Bearer $APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"startUrls": [{"url": "https://platform.claude.com/docs/en/about-claude/pricing"}], "maxItems": 50}'
The Integrations tab connects the Actor to Make, Zapier, n8n, Google Sheets and webhooks, so a price change can update a sheet or trigger an alert.
FAQ
Which pages does it read? The Claude API pricing page of the documentation, the model deprecations page of the documentation (for API model IDs and states), and the public claude.com pricing page. Nothing else is contacted.
Why do claude.com rows have fewer fields than docs rows? The claude.com page shows only input, output and prompt caching prices. Batch, fast mode, tool use and lifecycle details exist only in the documentation, so those fields are null on claude.com rows.
Why does one model appear twice?
Some models are priced by prompt length. Each tier is its own row, and promptLengthCondition says which one it is. Row ids include the condition, so both rows are kept.
Why did my run return 0 results? The URL was not a supported pricing page, the page was unreachable, or the filters removed everything. The status message of the run names the cause. Such runs still end as succeeded with no items.
Are retired models included?
Yes, while the documentation lists them. Use availability and deprecationState to tell them apart from active models.
How fresh is the data? Every run reads the live pages, so the data is as current as the pages at the time of the run. Schedule the Actor to track changes over time.
Do I need a proxy? Normally not. If a request is blocked, the Actor retries on a new connection; you can also enable Apify Proxy in the input.
Can I get a price in another currency? No. Prices are returned in USD as the pages state them.
Is it legal to scrape Anthropic?
Anthropic Pricing Scraper reads only publicly available pricing pages that load without logging in, and it collects no personal data. You are responsible for how you use the data and for following the terms of the sites you scrape and any rules that apply to you. This is not legal advice.
Anthropic Pricing Scraper is an independent tool. It is not affiliated with, endorsed by or sponsored by Anthropic.
Feedback
Found a bug or need a field that isn't here? Open an issue on the Issues tab and we'll look at it.