A daily log of product changes, improvements, and new model releases on OpenRouter
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
- Bulk move API keys between workspaces — You can now select multiple API keys and move them to a different workspace in a single action, with a summary of affected keys and creator membership changes.
- Cursor integration guide — Added a guide for configuring Cursor to route through OpenRouter via the Override OpenAI Base URL feature.
- Fixed:
/api/v1/modelsunder-reportingcontext_length— Models whose cheapest endpoint has a lower context window than the model itself (e.g.moonshotai/kimi-k2.6showing 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_resultsto 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 results — Bring-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 Chatroom — Fusion 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_controlfor 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 disabled —
preferred_min_throughputandpreferred_max_latencynow take effect whenallow_fallbacksis set tofalse. 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+xmldata 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 mode —
speed: "fast"now routes Claude Opus 4.7 to Anthropic’s new fast-mode endpoint; the fast permaslug is also directly callable asanthropic/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
webplugin now request adaptive highlights from Exa (roughly 2–4K characters per result) instead of a fixed 15K-character cap; setsearch_context_sizetolow,medium, orhighto 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 pages — Profiles 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
flexandprioritypricing 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
.ipynbfiles in the chatroom no longer balloons the prompt with embedded cell outputs. - Fixed: server-tool cost aggregation — The
cost_detailsfield 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
EnvironmentandReleasetrace fields (and the matching project filter) from theenvironment/releasevalues you send ontrace.metadataorobs.metadata— previously they always showeddefault. 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>.
Product changes
- Regex-based Prompt Injection Detection — The guardrails editor now allows adding a new Prompt Injection Detection guardrail with regex-based flag, redact, and block action modes. Docs.
- Per-provider ZDR controls — Privacy settings and the guardrail editor now expose separate Zero Data Retention toggles for non-frontier, Anthropic, OpenAI, and Google providers, with per-provider account-level lock support.
- Introducing the
pareto-coderouter — A new, experimental coding router that allows you to setmin_coding_scorein your request and route to the cheapest code-capable model that clears your bar. - Playground server tool controls — The chatroom Composer’s Server Tools panel now exposes every supported parameter for Web Search, Web Fetch, Image Generation, and Datetime, matching the API surface for full parity between the playground and direct API calls.
- Logs time picker shorthand — The logs page’s time-range picker now accepts typed shorthand like
15min,1h,3d,8w,1mo, or2y— type into the trigger and press Enter to jump straight to that relative window.