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

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>.

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 controlsPrivacy 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-code routerA new, experimental coding router that allows you to set min_coding_score in 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, or 2y — type into the trigger and press Enter to jump straight to that relative window.

New models


Product changes

  • Provider-specific image generation quickstarts — Model pages for Recraft V3, Recraft V4 / V4 Pro, and Sourceful now show tailored code examples with each model’s supported image_config parameters (e.g., text_layout for V3, rgb_colors for V4, font_inputs for Sourceful). See the image generation docs.
  • Activity page API key labels — Activity analytics now correctly display API key names instead of numeric IDs for accounts with more than 500 API keys. Previously, the slim-keys endpoint capped at 500 results, leaving excess keys unlabeled in charts.

New models


Product changes

  • Human-in-the-loop SDK ToolSDK documentation for the new human-in-the-loop tool type, enabling tools that pause execution and wait for human input before returning results.
  • Copy guardrails across workspacesGuardrail definitions can now be copied between workspaces via the “Copy to…” menu. Workspaces without a default guardrail can also import settings from another workspace.
  • Video generation cookbook — New Cookbook section with six video generation recipes covering model selection, text-to-video, image-to-video, reference-to-video, provider-specific options, and webhooks.
  • Audio APIs blog postBlog post announcing the text-to-speech and speech-to-text API endpoints with usage examples and model comparisons.
  • Responses API MCP tool routing — The namespace field on function_call output items is now preserved through the Responses API pipeline. Previously, the field was silently stripped during parsing, which broke MCP tool routing for clients like Codex CLI that rely on namespace to dispatch calls to the correct MCP server.

New models


Product changes

  • Guardrails enforcement drill-down — Rows in the Guardrails enforcement chart now link directly to the matching generations on the Logs page.
  • Entity hover cards — Models, providers, and apps across the dashboard now show hover cards with a preview and a link to the entity’s page.
  • Responses API tool call handling — Conversation history containing tool calls with missing optional fields (e.g. no arguments or id) no longer causes 400 errors from providers. The router now defaults missing arguments to "{}" and generates a stable id when absent.
  • File upload OCR handling — Files processed with OCR no longer fail when routed to text-only models. Previously, OCR-extracted images could be sent to models that don’t support vision input, causing errors.

New models