Prix des API LLM (OpenRouter, models.dev, LiteLLM)
Pricing
from $1.00 / 1,000 enregistrements
Prix des API LLM (OpenRouter, models.dev, LiteLLM)
Collecte et normalise les tarifs des API de modèles de langage depuis OpenRouter, models.dev et LiteLLM. Détecte les changements de prix, les nouveaux modèles, les dépréciations et les modifications de contexte. Historique automatique entre les runs.
Pricing
from $1.00 / 1,000 enregistrements
Rating
0.0
(0)
Developer
Maxime Rosito
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Description
Cet acteur collecte et normalise les tarifs des API de modèles de langage depuis trois sources publiques sans clé :
- OpenRouter : API officielle
/api/v1/models(~755 Ko, sans clé) - models.dev : API JSON publique (~4,9 Mo, licence MIT)
- LiteLLM : Fichier JSON GitHub (~2,9 Mo, licence MIT hors enterprise/)
Différenciation : historique et détection des changements
Contrairement aux scrapers simples qui fournissent uniquement une photo instantanée, cet acteur :
- Conserve l'historique entre les runs dans un Key-Value Store Apify nommé
- Détecte automatiquement les changements : baisses/hausses de prix, nouveaux modèles, modèles retirés, annonces de dépréciation, modifications de contexte
- Supporte deux modes :
snapshot: renvoie tout le catalogue normaliséchanges: renvoie uniquement les différences depuis le dernier relevé
- Alerte optionnelle via webhook POST JSON avec résumé des changements
- Facturation pay-per-event : un événement par enregistrement + un événement par changement détecté
Exemples
Input (mode snapshot)
{"mode": "snapshot","sources": ["openrouter", "modelsdev", "litellm"],"maxItems": 100,"providers": ["openai", "anthropic"],"minContext": 100000,"historyStoreName": "llm-pricing-history","snapshotRetention": 30}
Output (snapshot)
{"record_type": "snapshot","source": "openrouter","observed_at": "2026-09-25T05:30:00.000Z","model_key": "openrouter:anthropic/claude-3.5-sonnet","model_id": "anthropic/claude-3.5-sonnet","canonical_model": "anthropic-claude-3-5-sonnet","provider": "Anthropic","name": "Claude 3.5 Sonnet","input_price_per_mtok_usd": 3.0,"output_price_per_mtok_usd": 15.0,"context_length": 200000,"max_output_tokens": 8192,"input_modalities": ["text"],"output_modalities": ["text"],"is_free": false,"source_url": "https://openrouter.ai/api/v1/models"}
Input (mode changes)
{"mode": "changes","sources": ["openrouter", "modelsdev"],"maxItems": 500,"historyStoreName": "llm-pricing-history","emitBaselineOnFirstRun": false,"webhookUrl": "https://example.com/webhook"}
Output (change détecté)
{"record_type": "change","source": "openrouter","observed_at": "2026-09-25T12:00:00.000Z","previous_observed_at": "2026-09-25T06:00:00.000Z","change_type": "price_decrease","diff_type": "changed","model_key": "openrouter:openai/gpt-4","model_id": "openai/gpt-4","canonical_model": "openai-gpt-4","provider": "OpenAI","name": "GPT-4","input_price_per_mtok_usd": 25.0,"output_price_per_mtok_usd": 75.0,"changes": [{"field": "input_price_per_mtok_usd","old": 30.0,"new": 25.0,"delta_abs": -5.0,"delta_pct": -16.67}]}
Sources et licences
- OpenRouter : API officielle documentée (https://openrouter.ai/docs/guides/overview/models). Ne pas scraper le site openrouter.ai (interdit par CGU), utiliser uniquement l'API
/api/v1/models. - models.dev : API JSON publique (https://models.dev/api.json), licence MIT.
- LiteLLM : Fichier GitHub (https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json), licence MIT (hors dossier enterprise/).
Toutes ces sources sont accessibles sans clé API.
Planification quotidienne
Pour surveiller les changements de prix quotidiennement :
Schedules → Add schedule- Time: 08:00 UTC- Run input: {"mode":"changes","sources":["openrouter","modelsdev","litellm"],"maxItems":1000}
Le mode changes ne renvoie que les nouveautés et changements depuis le dernier run. Coût typique : quelques événements par jour.
Tarification pay-per-event suggérée
- Événement
record: 0,0001 $ par enregistrement poussé (ex : 1000 modèles = 0,10 $) - Événement
change-detected: 0,001 $ par changement détecté (ex : 10 changements = 0,01 $)
Les runs en mode snapshot sont facturés uniquement sur le nombre d'enregistrements. Les runs en mode changes ajoutent des événements pour chaque changement (plus valorisé).
Limites
- Pas de déduplication inter-sources : un même modèle présent dans plusieurs sources apparaît avec plusieurs clés (
openrouter:xxx,modelsdev:xxx,litellm:xxx). Le champcanonical_modelfacilite les rapprochements manuels. - Pas de calcul de coût pour une charge type : l'acteur renvoie les prix normalisés par million de tokens, pas d'estimation de coût pour un workflow donné.
- Seuils de variation : par défaut, les variations de prix < 1 % sont ignorées pour éviter le bruit. Configurable via le paramètre
minPriceChangePct. - Pas de gestion des quotas/rate limits des sources (actuellement toutes sans limite stricte).
Configuration avancée
historyStoreName: nom du Key-Value Store pour l'historique (par défautllm-pricing-history). Chaque configuration de filtres (sources, providers, etc.) génère une clé d'historique unique via un hash.snapshotRetention: nombre de snapshots datés à conserver (0 = désactivé, défaut 7).emitBaselineOnFirstRun: au premier run en modechanges, émettre tous les items avecis_baseline: true(défauttrue), ou 0 item pour créer uniquement la baseline silencieuse.webhookUrl: URL optionnelle pour recevoir un POST JSON avec le résumé des changements (timeout 10 s, 2 retries, ne fait jamais échouer le run).