Download icon
Get icon
Script icon
Switch icon
Log icon
ChatCompletion icon
GoogleGemini icon
SlackIncomingWebhook icon
Set icon
Schedule icon
Webhook icon

Watch LLM Model Prices and Releases with an AI Briefing in Slack

Detect LLM price changes, new and retired models from the OpenRouter catalog and post an AI briefing to Slack that flags your production models.

Categories
AIBusiness

LLM providers change prices, ship new models and retire old ones every week. If one of the models you run in production gets more expensive or disappears, you usually find out from the invoice or from an outage. This blueprint watches the public OpenRouter model catalog, which lists hundreds of models from every major provider with their prices, and tells you what changed and whether it matters to you.

How it works

  1. download_catalog downloads the public catalog (no API key).
  2. load_snapshot reads yesterday's snapshot from the Kestra KV store.
  3. diff_catalog filters the catalog to the providers you watch and computes new models, removed models, input and output price changes above a threshold, and context-window changes. Prices are converted to USD per 1M tokens.
  4. route_by_status (Switch) picks one of three paths:
    • BASELINE: first run, nothing to compare yet, so it only logs.
    • CHANGED: write_briefing asks Gemini for a short briefing that starts with the models you use in production, then notify_slack posts the briefing followed by the exact list of changes. The numbers in the message come from the diff step, so the LLM cannot misreport a price.
    • anything else: logs that nothing changed.
  5. save_snapshot stores today's catalog for the next run. It only runs after Slack was notified, so a failed notification does not silently swallow a change.
  6. The errors branch posts to Slack if any task fails.

Prerequisites

  • A Google AI Studio API key for Gemini. The free tier is enough for one call a day.
  • A Slack Incoming Webhook.

Secrets

  • GEMINI_API_KEY: Gemini API key used by write_briefing.
  • SLACK_WEBHOOK_URL: Slack Incoming Webhook URL used for the briefing and failure alerts.

In the open-source edition, secrets are environment variables on the Kestra container, prefixed with SECRET_ and base64-encoded, for example SECRET_GEMINI_API_KEY=$(echo -n "your-key" | base64). See how to manage secrets.

Inputs

  • providers (ARRAY of STRING): provider prefixes to watch. Default: openai, anthropic, google, mistralai, deepseek, meta-llama, qwen, x-ai.
  • models_in_use (ARRAY of STRING): exact model ids you run in production. Changes to them are flagged as needing action.
  • price_change_threshold_pct (FLOAT, default 5.0): ignore smaller price moves.
  • include_variants (BOOL, default false): also track :free/:batch variants and ~ aliases.
  • model_name (STRING, default gemini-2.5-flash): Gemini model used for the briefing.

Quick start

  1. Add the two secrets.
  2. Set models_in_use to the OpenRouter ids of the models you actually use. The baseline log tells you if one of them is not in the catalog.
  3. Execute the flow once. The first run is a baseline and sends nothing.
  4. To see a briefing without waiting for a real price change, run the first execution with providers set to openai only, then run again with openai and mistralai: every Mistral model is reported as new. Delete the KV key afterwards to reset the baseline.
  5. Enable the daily trigger. Change the webhook key before using on_demand.

Outputs

  • {{ outputs.diff_catalog.vars.changes }}: structured lists of added, removed, price and context-window changes.
  • {{ outputs.write_briefing.textOutput }}: the AI briefing.
  • Flow outputs status, change_count and in_use_alerts.
  • KV key llm_model_price_watch_snapshot: the latest snapshot (delete it to reset the baseline).

How to extend

  • Open a GitHub issue when a production model is removed or gets more expensive.
  • Store every snapshot in a database to chart price history.
  • Swap the Gemini provider for any other provider supported by the AI plugin.

Links

See How

New to Kestra?

Use blueprints to kickstart your first workflows.