OpenRouter Models Scraper
Pricing
Pay per event
OpenRouter Models Scraper
Scrapes all AI models from the OpenRouter platform including pricing, context length, capabilities, and supported parameters.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
What does OpenRouter Models Scraper do?
OpenRouter Models Scraper extracts the complete catalog of AI models available on OpenRouter — no API key, no login, and no coding required. Run the actor and get structured data for every model including pricing, context length, supported parameters, modalities, and provider details.
The actor calls OpenRouter's public REST API directly, returning all models in a single request. No browser automation, no pagination headaches, no Playwright overhead. Every model is returned as a clean JSON record ready to export to CSV, Google Sheets, or any downstream system.
All platform costs — compute and storage — are included in the pay-per-model price. No proxy costs since the API is fully public.
Who is it for?
🤖 AI developers and prompt engineers
- Compare pricing across all available LLMs before choosing a model for your application
- Track which models support tool use, reasoning, or specific output modalities
- Monitor new model releases and deprecations automatically with scheduled runs
📊 Data analysts and researchers
- Build datasets tracking LLM pricing trends over time
- Analyze the competitive landscape of AI model providers
- Study context window sizes, tokenizer distributions, and modality support across the industry
💰 Cost optimization teams
- Find the cheapest model that meets your context length and capability requirements
- Monitor price changes across providers to optimize API spend
- Compare prompt vs completion costs to identify cost-effective alternatives
🏢 AI product managers and strategists
- Track which providers are launching new models and how quickly
- Monitor the competitive landscape for multimodal, reasoning, and specialized models
- Build internal dashboards showing model availability and pricing across OpenRouter
Why use OpenRouter Models Scraper?
- No API key required — OpenRouter's model catalog is fully public
- Single HTTP request — fetches all models in one call, no pagination or scrolling
- Zero proxy cost — no browser automation or residential proxies needed
- Pay-per-event pricing — pay only for models actually extracted, not idle compute
- Filter by provider — extract only models from specific providers like OpenAI, Anthropic, or Google
- Filter by modality — narrow results to text-only, multimodal, or image generation models
- Runs in the cloud — no local setup, no dependencies, no maintenance
- Schedule and automate — set recurring runs to track model catalog changes over time
- Export anywhere — JSON, CSV, Excel, Google Sheets, or push via API and webhook
What data can you extract?
| Model info | Field | Description |
|---|---|---|
| Model ID | modelId | OpenRouter's unique model identifier (e.g., openai/gpt-4o) |
| Canonical slug | canonicalSlug | Versioned slug for the model |
| Name | name | Human-readable model name |
| Description | description | Model description from the provider |
| Provider | provider | The model provider (e.g., openai, anthropic, google) |
| Created date | createdAt | ISO 8601 timestamp when the model was added |
| Hugging Face ID | huggingFaceId | Linked Hugging Face model ID (if available) |
| Capabilities | Field | Description |
|---|---|---|
| Context length | contextLength | Maximum context window in tokens |
| Modality | modality | Input/output type (e.g., text->text, text+image->text) |
| Input modalities | inputModalities | Accepted input types (text, image, etc.) |
| Output modalities | outputModalities | Supported output types |
| Tokenizer | tokenizer | Tokenizer used by the model |
| Supported parameters | supportedParameters | List of API parameters the model accepts |
| Max completion tokens | maxCompletionTokens | Maximum output tokens per request |
| Pricing | Field | Description |
|---|---|---|
| Prompt price per token | promptPricePerToken | Cost per input token in USD |
| Completion price per token | completionPricePerToken | Cost per output token in USD |
| Cache read price per token | cacheReadPricePerToken | Cost per cached input token (if supported) |
| Metadata | Field | Description |
|---|---|---|
| Is moderated | isModerated | Whether the model applies content moderation |
| Knowledge cutoff | knowledgeCutoff | Training data cutoff date (if provided) |
| Expiration date | expirationDate | Model deprecation date (if scheduled) |
| Model URL | modelUrl | Direct link to the model's OpenRouter page |
| Scraped at | scrapedAt | ISO 8601 timestamp when the data was collected |
22 fields total per model record.
How much does it cost to scrape OpenRouter models?
This actor uses pay-per-event pricing — you pay only for models actually extracted. No monthly subscription. All platform costs are included.
| Free ($5 credit) | Starter ($29/mo) | Scale ($199/mo) | Business ($999/mo) | |
|---|---|---|---|---|
| Run start fee | $0.005 | $0.00475 | $0.00425 | $0.00375 |
| Per model | $0.0000738 | $0.0000642 | $0.0000501 | $0.0000385 |
| All ~350 models | ~$0.031 | ~$0.027 | ~$0.022 | ~$0.017 |
Real-world cost examples (Free plan):
| Task | Models | Estimated cost |
|---|---|---|
| Full catalog dump (all ~350 models) | 350 | ~$0.031 |
| Single provider (e.g., Anthropic, ~15 models) | 15 | ~$0.006 |
| Daily monitoring (scheduled, 30 days) | 10,500 | ~$0.92 |
The free $5 credit included with every new Apify account covers roughly 160 full catalog scrapes before you need to add payment.
How to scrape OpenRouter models
- Open OpenRouter Models Scraper on Apify Store
- Click Try for free — sign in or create a free Apify account
- Optionally set a provider filter (e.g.,
anthropic) or leave empty for all models - Optionally set a modality filter to narrow results
- Click Save & Start
- Wait for the run to finish (typically 5–10 seconds)
- Click Export to download your data as JSON, CSV, or Excel
Example inputs for different scenarios:
Full catalog (all models):
{"maxResults": 0}
Only Anthropic models:
{"filterProvider": "anthropic"}
Only multimodal models, limited to 20:
{"filterModality": "text+image->text","maxResults": 20}
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
filterProvider | string | — | Only return models from a specific provider (e.g., openai, anthropic, google, deepseek). Leave empty for all. |
filterModality | string | — | Only return models matching a modality (e.g., text->text, text+image->text). Leave empty for all. |
maxResults | integer | 0 | Maximum number of models to return. Set to 0 or leave empty for all models. |
Output examples
Each model is saved as one record in the dataset:
{"modelId": "anthropic/claude-sonnet-4","canonicalSlug": "anthropic/claude-sonnet-4-20250514","huggingFaceId": null,"name": "Anthropic: Claude Sonnet 4","createdAt": "2025-05-14T00:00:00.000Z","description": "Claude Sonnet 4 is Anthropic's latest mid-tier model...","contextLength": 200000,"modality": "text+image->text","inputModalities": ["text", "image"],"outputModalities": ["text"],"tokenizer": "Claude","instructType": null,"promptPricePerToken": 0.000003,"completionPricePerToken": 0.000015,"cacheReadPricePerToken": 0.0000003,"topProviderContextLength": 200000,"maxCompletionTokens": 64000,"isModerated": false,"supportedParameters": ["temperature", "top_p", "tools", "tool_choice", "max_tokens", "stop", "reasoning"],"knowledgeCutoff": null,"expirationDate": null,"provider": "anthropic","modelUrl": "https://openrouter.ai/anthropic/claude-sonnet-4","scrapedAt": "2026-04-24T14:00:00.000Z"}
Tips for best results
- Schedule daily runs to track pricing changes, new model launches, and deprecations over time. OpenRouter updates its catalog frequently.
- Use provider filters to reduce output size and cost when you only need data for specific providers.
- Compare with previous runs by joining on
modelIdto detect price changes, new models, or removed models between snapshots. - Export to Google Sheets for easy sharing with your team — Apify's native integration appends new rows automatically.
- Runs complete in seconds — this actor makes a single HTTP request, so there's no need to increase timeouts or memory.
Integrations
OpenRouter Models Scraper connects with 5,000+ apps through Apify's built-in integration layer.
📊 OpenRouter Models → Google Sheets Automatically export every run's model catalog into a shared spreadsheet. Track pricing trends and new model launches in a living dashboard without touching a spreadsheet manually.
💬 OpenRouter Models → Slack alerts Connect via Make or Zapier: when a run finishes, post a summary (total models, new models since last run, price changes) to your Slack channel for instant visibility.
⚡ OpenRouter Models → Make / Zapier workflows Feed model data into cost optimization dashboards, internal tooling databases, or comparison engines. Trigger the workflow on a schedule or via webhook after each run completes.
🔁 Scheduled monitoring Set Apify to run daily and build a time-series dataset of model availability and pricing. Detect trends, track provider growth, and alert on deprecations automatically.
🔔 Webhooks for real-time processing Configure a run-finish webhook to POST the dataset URL to your own API endpoint. Your backend receives fresh model data the moment the scraper completes.
API usage
Run OpenRouter Models Scraper programmatically from any language or CI/CD pipeline.
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('automation-lab/openrouter-models-scraper').call({filterProvider: 'anthropic',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Found ${items.length} models`);console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient(token='YOUR_API_TOKEN')run = client.actor('automation-lab/openrouter-models-scraper').call(run_input={'filterProvider': 'anthropic',})items = list(client.dataset(run['defaultDatasetId']).iterate_items())print(f"Found {len(items)} models")print(items[0])
cURL
curl -X POST "https://api.apify.com/v2/acts/automation-lab~openrouter-models-scraper/runs?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"filterProvider": "anthropic"}'
Fetch results after the run completes:
$curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_API_TOKEN&format=json"
Find your API token at apify.com/account/integrations. See the full Apify API documentation for webhooks, scheduling, and pagination.
Use with AI agents via MCP
OpenRouter Models Scraper is available as a tool for AI assistants that support the Model Context Protocol (MCP).
Add the Apify MCP server to your AI client — this gives you access to all Apify actors, including this one:
Setup for Claude Code
$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/openrouter-models-scraper"
Setup for Claude Desktop, Cursor, or VS Code
Add this to your MCP config file:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/openrouter-models-scraper"}}}
Your AI assistant will use OAuth to authenticate with your Apify account on first use.
Example prompts
Once connected, try asking your AI assistant:
- "Use automation-lab/openrouter-models-scraper to get all available models and find the cheapest one with at least 128k context"
- "Scrape all OpenRouter models and compare pricing between OpenAI and Anthropic models"
- "Get the full OpenRouter model catalog and list all models that support tool use"
Learn more in the Apify MCP documentation.
Is it legal to scrape OpenRouter models?
OpenRouter's model catalog is public data accessed via their public REST API — no authentication, no login, no terms-of-service bypass required. The API endpoint (/api/v1/models) is documented and intended for public consumption.
Automation Lab's actors are built for ethical, responsible data collection:
- Only public, non-authenticated API endpoints are accessed
- No rate limits are abused — the actor makes a single HTTP request per run
- No private data, credentials, or non-public content is ever extracted
You are responsible for how you use the data. Before using scraped model data for commercial purposes, review:
- OpenRouter's Terms of Service
- Your jurisdiction's laws on automated data collection
For research, comparison, and monitoring purposes, accessing OpenRouter's public API is standard practice. See Apify's blog post on web scraping legality for a broader overview.
FAQ
How many models does OpenRouter have? As of April 2026, OpenRouter lists approximately 350 models. The catalog grows regularly as new providers and models are added.
How much does it cost to scrape all OpenRouter models? Approximately $0.18 total: $0.005 for the run start fee plus ~$0.175 for ~350 models at $0.0005 each. The free Apify plan includes $5 in credits — enough for roughly 27 full catalog scrapes.
How fast is the scraper? Very fast — typically 5–10 seconds per run. The actor makes a single HTTP request to OpenRouter's API, which returns all models in one response. No pagination, no browser rendering, no waiting.
Can I filter models by provider?
Yes. Set filterProvider to any provider slug (e.g., openai, anthropic, google, deepseek, meta-llama) to get only their models.
How do I track pricing changes over time?
Schedule the actor to run daily and export results to Google Sheets or a database. Compare runs by joining on modelId to detect price changes between snapshots.
What if the API changes?
The actor calls OpenRouter's stable public API (/api/v1/models). If the response format changes, the actor will be updated. Report issues on the actor's Apify page.
Related scrapers
Looking for more AI and data tools? Explore other actors from Automation Lab:
- Google Maps Reviews Scraper — extract reviews from Google Maps business listings
- LinkedIn Profile Scraper — scrape public LinkedIn profile data
- TikTok Comments Scraper — extract comments from TikTok videos
- YouTube Scraper — scrape YouTube channels, videos, and comments
- Reddit Scraper — scrape Reddit posts and comments by subreddit or keyword