Prix des API LLM (OpenRouter, models.dev, LiteLLM) avatar

Prix des API LLM (OpenRouter, models.dev, LiteLLM)

Pricing

from $1.00 / 1,000 enregistrements

Go to Apify Store
Prix des API LLM (OpenRouter, models.dev, LiteLLM)

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

Maxime Rosito

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

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

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 champ canonical_model facilite 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éfaut llm-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 mode changes, émettre tous les items avec is_baseline: true (défaut true), 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).