A daily log of product changes, improvements, and new model releases on OpenRouter

Product changes

  • Move API keys between workspaces — You can now transfer API keys from one workspace to another, making it easy to reorganize keys as your team structure evolves.
  • Presets API for creating presets from inference requests — Added POST /api/v1/presets/:slug/chat/completions for creating or versioning a preset directly from a standard chat completions request body, now also available in the TypeScript and Python SDKs.
  • Date format preference — Added a date format selector in Settings with Default, Short, ISO, and Relative options that apply across the dashboard, logs, and API key pages.
  • Long-horizon agents cookbook — New cookbook guide covering how to build long-running agent tasks with the OpenRouter Agent SDK, including stop-condition ceilings, resumable state, streaming progress, and voice input.
  • Compare page empty state redesign — The compare page now shows interactive slot cards in the empty state, letting you select models directly without a separate search step.
  • Profile page layout — Profile pages now display name, avatar, email, role, and workspace info at the top of the page for a cleaner layout.
  • Fixed: Anthropic native web_fetch passthrough — Anthropic models with native web_fetch support now correctly receive the tool in upstream requests, restoring full web content fetching capability.
  • Fixed: compare page section headers not sticking on scroll — Section headers on the compare page now correctly dock under the model cards while scrolling.
  • Fixed: playground side panel losing generation state on close — Closing and reopening the playground side panel on model detail pages now preserves in-progress generation output.

New models


Product changes

  • Fixed: rankings filter state not persisted in URL — Filters on the rankings page are now stored in the URL via query parameters, making filtered views shareable and bookmarkable.

Product changes

  • Bring-your-own-key management API — New REST endpoints for programmatically listing, retrieving, creating, updating, and deleting BYOK credentials across workspaces via management key authentication.
  • Observability destinations management API — New REST endpoints for listing, retrieving, creating, updating, and deleting observability destinations (Datadog, Langfuse, LangSmith, and more) via management key authentication.
  • Fixed: dashboard growth percentages exceeding display bounds — Very large growth percentages on the activity dashboard are now capped at >999% for readability.

Product changes

  • Cursor integration guide — Added a guide for configuring Cursor to route through OpenRouter via the Override OpenAI Base URL feature.
  • Fixed: /api/v1/models under-reporting context_length — Models whose cheapest endpoint has a lower context window than the model itself (e.g. moonshotai/kimi-k2.6 showing 32K instead of 256K) now correctly report the full model context length in the models API.
  • Fixed: web search unbounded context growth — The web search server tool now defaults max_total_results to 50 when not specified, preventing runaway token accumulation in agentic loops. Docs
  • Fixed: Mistral speech-to-text billing unit — Corrected the billing unit for Mistral speech-to-text models from per-second to per-minute to match the provider’s actual pricing. Docs

New models


Product changes

  • Playground side panel on model pages — Model detail pages now include a “Playground” button in the header that opens a slide-out panel for testing the model inline, with support for all available modalities.
  • OpenCode integration guide — Added a guide for configuring OpenCode with OpenRouter to the coding agents documentation.
  • Fixed: BYOK model filter showing incomplete resultsBring-your-own-key provider pages now show all models a provider serves, not just models whose cheapest endpoint is from that provider.
  • Fixed: 500 errors for router model variant mismatches — Requests to router models with unavailable variants (e.g. openrouter/auto:thinking) now return a descriptive 404 instead of a generic 500 error.
  • Fixed: vertical scrollbar on models page modality tabs — Removed an unwanted vertical scrollbar on the models page modality filter tabs.

New models


Product changes

  • Fusion server tool now available via API and ChatroomFusion is now available as an API plugin, a server tool, and in the chatroom composer — it routes your prompt to multiple models in parallel and synthesizes their responses into a single, higher-quality answer.
  • Automatic prompt caching in the Responses API — The Responses API now accepts top-level cache_control for Anthropic Claude models, closing a gap where cached input tokens stayed at zero on /api/v1/responses. Docs
  • Logs page pagination toggle — The Generations tab on the logs page now lets you switch between “Load more” and traditional paged navigation, with your preference saved across sessions.
  • Replit community guide — Added a community guide for configuring your OpenRouter API key in Replit projects.
  • Fixed: Codex multi-turn reasoning context lost through OpenRouter — Codex CLI and Desktop conversations proxied through OpenRouter no longer lose reasoning context across turns, fixing issues where the model would repeat completed steps.
  • Fixed: chatroom artifacts ignoring prior prompts — Follow-up artifact generations now include the full prompt history, preventing the model from generating unrelated content when iterating.
  • Fixed: routing preferences ignored with fallbacks disabledpreferred_min_throughput and preferred_max_latency now take effect when allow_fallbacks is set to false. Docs
  • Fixed: mobile sidebar on iPad-size viewports — The sidebar drawer on tablet-sized screens no longer renders behind the backdrop overlay.
  • Fixed: Recraft vector model SVG output — Recraft vector model variants now return properly encoded image/svg+xml data URLs instead of incorrectly labeled raster output. Docs

Product changes

  • Private Models Beta — Published a new Private Models page covering the beta for routing to your own custom, fine-tuned, or dedicated model endpoints via the standard completions and responses endpoints.
  • Anthropic Claude Opus 4.7 Fast modespeed: "fast" now routes Claude Opus 4.7 to Anthropic’s new fast-mode endpoint; the fast permaslug is also directly callable as anthropic/claude-opus-4.7-fast.
  • BYOK keys grouped by priority — The BYOK provider detail page now splits keys into a Prioritized section (tried in order) and a Fallback section (tried only after OpenRouter credits), each independently reorderable via drag-and-drop. Docs
  • Adaptive Exa highlights for web search — The default web-search server tool and web plugin now request adaptive highlights from Exa (roughly 2–4K characters per result) instead of a fixed 15K-character cap; set search_context_size to low, medium, or high to opt back into a larger fixed budget.
  • Fixed: playground preserves uploaded images after video generation — Submitting a video generation in the playground no longer clears the images you previously attached to the prompt.
  • Fixed: model compare page on mobile — The model compare page now scrolls horizontally with a sticky header row on narrow screens, and the “Add model” trigger no longer surfaces Quick suggestions.

New models


Product changes

  • Personal profile pagesProfiles have a brand new design with a refreshed activity-chart layout.
  • Deep Linking to Workspaces — Workspace URLs now resolve via an immutable workspace id, so links keep working after a slug rename. Docs.
  • Redesigned model page header — The header section on every model page has been rebuilt to be faster to scan and easier to navigate between providers and tabs.
  • Tier-aware pricing pills on provider cards — Provider cards on the model page now surface flex and priority pricing as compact pills so you can see how each service tier changes cost at a glance. Docs.
  • Redesigned BYOK provider detail page — The Bring-Your-Own-Key provider detail page has been refreshed with a cleaner provider summary and clearer connection status. Docs.
  • Docs button on app pages — App pages on /apps now include a Docs button that links directly to relevant cookbook guides and integration docs for that framework.
  • Logs table renders entities as pills — The logs table now displays model, provider, app, and other entity columns as compact pills, and the Supporting Models column is consolidated into a count with a click-through popup instead of an overflowing list.
  • Guardrails search and status filter — The guardrails list now supports searching by name and filtering by status. Docs.
  • Session-id-based provider stickiness — Requests that share the same session id now route to the same provider when possible, improving cache hit rates for multi-turn agentic workflows. Docs.
  • Hermes Agent cookbook — Added a Hermes Agent cookbook page covering how to use Nous Research’s Hermes Agent with OpenRouter.
  • Human-in-the-loop tools announcement — Published a blog post announcing human-in-the-loop tool calling support across the API and SDKs.
  • Fixed: Jupyter notebook attachments in chat — Attaching .ipynb files in the chatroom no longer balloons the prompt with embedded cell outputs.
  • Fixed: server-tool cost aggregation — The cost_details field returned to clients now aggregates costs correctly when a server tool runs multiple inner turns inside one user-facing request.

Product changes

  • Fixed: Langfuse broadcast trace Environment and Release fields — The Langfuse broadcast destination now populates Langfuse’s first-class Environment and Release trace fields (and the matching project filter) from the environment / release values you send on trace.metadata or obs.metadata — previously they always showed default. Docs.

Product changes

  • Fixed: collapsible sections in chatroom responses — Assistant messages in the chatroom once again render markdown-embedded HTML such as <details> / <summary> blocks and inline tags like <b>.