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/completionsfor 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_fetchpassthrough — Anthropic models with nativeweb_fetchsupport 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/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>.