OpenRouter Models Pricing Scraper
Fetch and filter the public OpenRouter model catalog, returning normalized model pricing, context windows, modalities, tokenizer families, provider limits, supported parameters, Hugging Face IDs, and OpenRouter model URLs.
Workspace
Configure
Inputs stay here while results become exportable artifacts.
Start from an example
Results
Preview, inspect, copy, or export the complete output.
Your result will become an artifact
Run the tool to inspect structured rows, raw JSON, execution details, and downloadable JSON, CSV, and Markdown files.
Overview
OpenRouter Models Pricing Scraper gives agents and product teams a structured snapshot of OpenRouter's public LLM catalog. Pull the catalog in one bounded request, filter by provider, modality, context length, free-only status, prompt price, completion price, or keyword, then return normalized rows with model IDs, canonical slugs, names, descriptions, providers, OpenRouter URLs, context windows, max completion tokens, modalities, tokenizer families, USD-per-million prompt and completion prices, cache and image pricing when published, moderation flags, Hugging Face IDs, supported parameters, reasoning labels, and details URLs. It is designed for AI gateway catalogs, cost-aware model routing, FinOps dashboards, procurement snapshots, model comparison pages, and agent-readable LLM capability inventories.
Last validated: Jul 4, 2026
Input
limitintegerdefault: 25Maximum model rows to return.
querystringOptional free-text search across model id, name, description, and Hugging Face ID.
sort_by"created" | "name" | "context_length" | "prompt_price" | "completion_price"default: "created"Sort mode after filtering.
modalitystringOptional exact modality such as text->text or text+image->text.
providerstringOptional OpenRouter model id prefix such as anthropic, openai, google, meta-llama, mistralai, or qwen.
free_onlybooleandefault: falseOnly return models with zero prompt and completion prices.
min_context_lengthintegerMinimum context length in tokens.
max_prompt_price_per_millionnumberMaximum prompt price in USD per 1M tokens.
max_completion_price_per_millionnumberMaximum completion price in USD per 1M tokens.
Output
countintegerrequiredNumber of returned model rows
querystringQuery filter applied
modelsobject[]requiredFiltered OpenRouter model catalog rows
modalitystringModality filter applied
providerstringProvider prefix filter applied
source_urlstringrequiredOpenRouter catalog URL fetched
total_availableintegerrequiredTotal model rows in the source catalog before filters
Examples
free-text-models
{
"limit": 3,
"sort_by": "context_length",
"modality": "text->text",
"free_only": true
}anthropic-claude-search
{
"limit": 2,
"query": "claude",
"sort_by": "created",
"provider": "anthropic"
}Use cases
FAQ
Does OpenRouter Models Pricing Scraper require an OpenRouter API key?
No. Version 0.1 reads OpenRouter's public model catalog endpoint. You only need an OpenRouter key when you want to call the models themselves.
Does it call or benchmark the models?
No. It only reads catalog metadata and pricing. It does not send prompts, measure latency, or consume OpenRouter model credits.
How is pricing normalized?
OpenRouter publishes token-level prices. The tool multiplies token prices by 1,000,000 and returns USD-per-million-token fields for easier comparison.
Use it anywhere
MCP (Claude, ChatGPT, Codex)
# After connecting https://betterfetch.co/api/mcp, ask your AI to:
1. Call search_tools for "OpenRouter Models Pricing Scraper"
2. Call run_tool with:
name: "openrouter_models_pricing_scraper"
input: {"limit":3,"sort_by":"context_length","modality":"text->text","free_only":true}REST
curl -sS -X POST "https://betterfetch.co/api/tools/openrouter_models_pricing_scraper/run" \
-H "Authorization: Bearer bf_your_key_here" \
-H "Content-Type: application/json" \
-d '{"input": {"limit":3,"sort_by":"context_length","modality":"text->text","free_only":true}}'Run locally
git clone https://github.com/better-fetch/tools/tree/main/tools/openrouter-models-pricing-scraper && cd openrouter-models-pricing-scraper && npm i
BETTER_FETCH_API_KEY=bf_your_key_here npx bf-tool run --input '{"limit":3,"sort_by":"context_length","modality":"text->text","free_only":true}'