llm-price-scraper
LLM Price Scraper
Scrape AI model pricing from provider pages using agent-browser. Supports multiple pricing types: token-based, per-image, per-second, per-request, and free.
Workflow
1) Scrape a provider URL
When user provides a URL to analyze:
agent-browser open <url>
agent-browser snapshot -i
Analyze the snapshot to find pricing data. If data is hidden behind tabs/buttons (e.g., "所有模型", "All Models"), click to reveal:
agent-browser click @<ref> # Click tab/button to show all models
agent-browser snapshot -i # Get updated view
2) Extract pricing data
Identify the pricing type for each model and extract accordingly:
Token-based models (LLM):
pricing_type: "token"input_price: Input price per 1M tokensoutput_price: Output price per 1M tokenscache_price: Cache price (optional)
Image generation models:
pricing_type: "per_image"price: Price per imageprice_unit: "image"
Video generation models:
pricing_type: "per_second"price: Price per secondprice_unit: "second"
Other pricing:
pricing_type: "per_request" / "per_minute" / "per_chars" / "free"price: Unit priceprice_unit: "request" / "minute" / "100chars" etc.
Price normalization for tokens: Convert to per-1M-token:
/Mtor/M= already per 1M tokens/Ktor/K= multiply by 1000
3) Save to JSON
Save extracted data to prices/<provider>.json:
{
"provider": "qiniu",
"url": "https://www.qiniu.com/ai/models",
"currency": "CNY",
"retrieved_at": "2026-01-21T10:30:00Z",
"models": [
{
"model": "DeepSeek-V3.2",
"pricing_type": "token",
"input_price": 2,
"output_price": 3
},
{
"model": "Kling-V2-1",
"pricing_type": "per_second",
"price": 0.4,
"price_unit": "second"
},
{
"model": "Kling-V1",
"pricing_type": "per_image",
"price": 0.025,
"price_unit": "image"
},
{
"model": "Mimo-V2-Flash",
"pricing_type": "free"
}
]
}
4) Merge results
When user says "merge" or "合并", run the merge script:
node scripts/merge_prices.js --in-dir prices --out prices.json --csv prices.csv
This combines all prices/*.json into a single prices.json and prices.csv.
Output Schema
Each model object supports these fields:
| Field | Type | Description |
|---|---|---|
model |
string | Model name |
pricing_type |
string | token / per_image / per_second / per_request / per_minute / free |
input_price |
number | Token input price per 1M (token type only) |
output_price |
number | Token output price per 1M (token type only) |
cache_price |
number | Token cache price per 1M (optional) |
price |
number | Unit price (non-token types) |
price_unit |
string | second / image / request / minute / 100chars |
context_length |
number | Max context window (optional) |
Resources
scripts/merge_prices.js: Merge per-provider JSON files into consolidated output
More from gusibi/skills
akshare-data
Query Chinese and global financial data using the AKShare Python library. Use when asked to (1) fetch stock quotes, historical prices, or financial statements for A-shares/HK/US stocks, (2) query macroeconomic data like GDP/CPI/PMI, (3) get futures/options/bond/forex/fund data, (4) look up index data, or (5) retrieve alternative data like news sentiment. Covers 500+ data interfaces for stocks, futures, options, bonds, forex, funds, macro, indexes and alternative data.
66article-image
为文章生成精美的封面图及文中插图。自动分析文章结构,在合适的段落插入相关的手绘风格插图,提升阅读体验。触发词:"生成封面及插图"、"为文章配图"、"美化文章"。
2agent-reach
>
2markitdown
Convert various document formats (PDF, PowerPoint, Word, Excel, Images, Audio, HTML, CSV, JSON, XML, ZIP) into text Markdown format. Use when asked to read, parse, or extract text from rich documents, slides, spreadsheets, or images, making them accessible to LLMs.
2