---
name: Changelog
slug: openrouter-changelog
type: feed
source_url: https://openrouter.ai/docs/changelog
organization: OpenRouter
organization_slug: openrouter
total_releases: 62
latest_date: 2026-06-02
last_updated: 2026-06-04
tracking_since: 2026-04-01
canonical: https://releases.sh/openrouter/openrouter-changelog
organization_url: https://releases.sh/openrouter
---

<Release date="June 2, 2026" published="2026-06-02T00:00:00.000Z" url="https://openrouter.ai/docs/changelog/2026/6/2">
## June 2, 2026

### Product changes

- **Rankings percentage toggle** -- Bar charts on the [rankings page](https://openrouter.ai/rankings) now have a menu button that lets you switch between percentage-normalized and raw token-volume views.
- **Activity deep links to individual messages** -- You can now deep-link to a specific message inside the Activity prompt overlay by appending `?message=<n>` to the URL, and the selected row stays in sync as you navigate with prev/next buttons. [Docs](https://openrouter.ai/activity)
- **Fixed: `media_resolution` parameter silently dropped for Gemini models** -- Sending `media_resolution` (e.g. `MEDIA_RESOLUTION_MEDIUM`) to Gemini models now correctly forwards the value to Gemini's `generationConfig`, changing image token counts as expected.
- **Fixed: image generation returning empty errors for some providers** -- Image generation requests to providers that return non-streaming binary data (e.g. base64 images) now correctly deliver the generated image instead of an empty `{}` error.

### New models

- [**Microsoft: MAI-Voice-2**](https://openrouter.ai/microsoft/mai-voice-2)
- [**Microsoft: MAI-Transcribe 1.5**](https://openrouter.ai/microsoft/mai-transcribe-1.5)
- [**Microsoft: MAI-Image-2.5**](https://openrouter.ai/microsoft/mai-image-2.5)
</Release>

<Release date="June 1, 2026" published="2026-06-01T00:00:00.000Z" url="https://openrouter.ai/docs/changelog/2026/6/1">
## June 1, 2026

### Product changes

- **May Release Spotlight blog post** -- Published the [May Release Spotlight](https://openrouter.ai/announcements/may-release-spotlight) covering speech and transcription APIs, Model Fusion, private models, enterprise workspace controls, and new model launches.
- **Fixed: model-specific default parameters not shown on API tab** -- The Parameters table on model detail pages now displays the model's actual default overrides (e.g. `top_p: 0.95`) instead of generic global defaults. [Docs](/docs/api/reference/parameters)
- **`/llms.txt` and `/llms-full.txt` now resolve at the domain root** -- `openrouter.ai/llms.txt` and `openrouter.ai/llms-full.txt` now redirect to their generated equivalents under `/docs/`, following the [llms.txt specification](https://llmstxt.org/).
- **Fixed: `verbosity` parameter default in docs** -- The `verbosity`[parameter reference](/docs/api/reference/parameters) no longer lists `medium` as the default; the effective default varies by upstream provider.
</Release>

<Release date="May 31, 2026" published="2026-05-31T00:00:00.000Z" url="https://openrouter.ai/docs/changelog/2026/5/31">
## May 31, 2026

### Product changes

- **Fusion Router documentation and model page** -- Added a dedicated [Fusion Router documentation page](/docs/guides/routing/routers/fusion-router) and a [model page](https://openrouter.ai/openrouter/fusion) describing the full panel → judge → synthesis pipeline, configuration options, and failure behavior.
- **MiniMax M3 reasoning support** -- MiniMax M3 now supports the `thinking` parameter, enabling extended reasoning for complex tasks.
- **Fixed: Azure forbidden error mapping** -- Azure provider responses with a forbidden status in server-sent events are now correctly surfaced as HTTP 403 instead of being misclassified.

### New models

- [**MiniMax: MiniMax M3**](https://openrouter.ai/minimax/minimax-m3)
</Release>

<Release date="May 30, 2026" published="2026-05-30T00:00:00.000Z" url="https://openrouter.ai/docs/changelog/2026/5/30">
## May 30, 2026

### Product changes

- **Fallback errors in error metadata** -- When all provider fallbacks fail, the error response `metadata` now includes a `previous_errors` array showing every attempted provider's error code, message, and name, making multi-provider failures easier to debug.
- **Fixed: 404 page layout** -- The 404 page no longer displays visual artifacts (stray borders, duplicate footer, off-center content).
- **Fixed: multipart/form-data error code** -- Sending `multipart/form-data` to JSON-only endpoints (e.g. speech-to-text) now returns a clear `400 Bad Request` instead of a misleading `500 Internal Server Error`.
- **Fixed: playground reasoning panel scroll** -- Opening the reasoning panel in the [playground](https://openrouter.ai/chat) now scrolls to the top instead of an arbitrary position.
</Release>

<Release date="May 29, 2026" published="2026-05-29T00:00:00.000Z" url="https://openrouter.ai/docs/changelog/2026/5/29">
## May 29, 2026

### Product changes

- **Preset ID in generation responses** -- The `GET /api/v1/generation` endpoint now returns `preset_id` when a preset was used, letting you trace which preset produced each completion. [Docs](/docs/guides/features/presets)
- **Fixed: activity overview date range** -- The [activity](https://openrouter.ai/activity) overview widget no longer breaks when selecting a date range exceeding 365 days.
</Release>

<Release date="May 28, 2026" published="2026-05-28T00:00:00.000Z" url="https://openrouter.ai/docs/changelog/2026/5/28">
## May 28, 2026

### Product changes

- **IP address filtering for enterprise plans** -- Enterprise organizations can now restrict all API key usage to approved IP address ranges from [Privacy settings](https://openrouter.ai/settings/privacy), reducing the blast radius of leaked keys.
- **Negation filters in activity and logs** -- Filters now support exclusion — click "is" on any filter chip to toggle it to "is not", letting you exclude specific models, providers, API keys, or workspaces from your view. [Docs](https://openrouter.ai/activity)
- **Presets: Responses API support** -- Creating presets from inference now supports the Responses API via `POST /api/v1/presets/:slug/responses`, and new documentation covers creating and updating presets directly from inference request bodies. [Docs](/docs/guides/features/presets)
- **Prompt caching: `session_id` sticky routing documentation** -- Added docs on using `session_id` to control sticky provider routing, which activates on any successful request rather than requiring a cache hit. [Docs](/docs/guides/best-practices/prompt-caching)
- **Anthropic thinking tokens in API responses** -- API responses for Anthropic models now include `output_tokens_details.thinking_tokens`, providing precise reasoning token counts for Claude Opus 4.8 and later.
- **Fixed: Responses API streaming crashes in OpenAI SDKs** -- Streaming keep-alive heartbeats on the Responses API no longer cause `union_tag_invalid` (Python) or `invalid_union` (TypeScript) validation errors in the OpenAI SDKs.

### New models

- [**Anthropic: Claude Opus 4.8**](https://openrouter.ai/anthropic/claude-opus-4.8)
- [**Anthropic: Claude Opus 4.8 (Fast)**](https://openrouter.ai/anthropic/claude-opus-4.8-fast)
- [**StepFun: Step 3.7 Flash**](https://openrouter.ai/stepfun/step-3.7-flash)
</Release>

<Release date="May 27, 2026" published="2026-05-27T00:00:00.000Z" url="https://openrouter.ai/docs/changelog/2026/5/27">
## May 27, 2026

### Product changes

- **Series B announcement** -- Published the [$113M Series B announcement](https://openrouter.ai/announcements/series-b).
- **API tab redesign on model pages** -- Each model's API tab now shows the `/responses` and `/messages` endpoint references alongside `/chat/completions`, making it easier to discover alternative request formats. [Docs](/docs/responses)
- **Presets: Anthropic Messages API support** -- Created presets from inference now support `POST /api/v1/presets/:slug/messages`, the Anthropic Messages counterpart to the existing chat/completions preset route. [Docs](/docs/guides/features/presets)
- **Stream inactivity timeout** -- Streaming requests that produce no chunks for 30 seconds are now aborted immediately instead of waiting up to 5 minutes, catching dead connections and empty streams faster.
- **Guardrails API documentation** -- Added a guide for updating your workspace default guardrail programmatically via the API. [Docs](/docs/guides/features/guardrails)
- **Fixed: EU routing for non-Google models on Vertex** -- Non-Google models (Claude, Llama, DeepSeek, etc.) routed through `eu.openrouter.ai` now use the correct endpoint path, fixing 400 errors caused by a hostname/path mismatch.
</Release>

<Release date="May 26, 2026" published="2026-05-26T00:00:00.000Z" url="https://openrouter.ai/docs/changelog/2026/5/26">
## May 26, 2026

### Product changes

- **Model comparison page** -- Compare up to five models side by side on pricing, context length, and benchmark scores with the new [comparison tool](https://openrouter.ai/compare), including a "Highlight best" toggle to call out the top value in each row.
- **Redesigned model detail API tab** -- The API tab on each [model page](https://openrouter.ai/models) now walks you through numbered steps (get an API key, make a request, enable streaming) with an endpoint reference and interactive parameters table.
- **Rankings daily dataset endpoint** -- A new `GET /api/v1/datasets/rankings-daily` endpoint returns the top-50 models by daily token volume, matching the data behind the public [rankings chart](https://openrouter.ai/rankings). [SDK reference](/docs/client-sdks/typescript/api-reference/datasets)
- **IP allowlist enforcement** -- API keys configured with an IP allowlist now actively block requests from non-allowlisted IPs with a `403` response, upgrading the previous observe-only mode. [Docs](/docs/guides/features/workspaces)
- **Auto router `cost_quality_tradeoff` parameter** -- The auto router now accepts a `cost_quality_tradeoff` integer (0–10) instead of the previous binary tradeoff, giving finer control over the cost-versus-quality balance when routing requests. [Docs](/docs/guides/routing/routers/auto-router)
- **Fixed: dashboard not refreshing on account switch** -- Switching between accounts in the dashboard now correctly remounts the page so data reflects the selected account.
- **Fixed: Bedrock BYOK region prefix mismatch** -- Bring-your-own-key Bedrock requests now normalize the inference profile region prefix to match the customer's configured region, fixing "invalid model identifier" errors when the endpoint and key regions differed.
</Release>

<Release date="May 25, 2026" published="2026-05-25T00:00:00.000Z" url="https://openrouter.ai/docs/changelog/2026/5/25">
## May 25, 2026

### Product changes

- **Activity and Logs in workspace sidebar** -- Organizations with multiple [workspaces](/docs/guides/features/workspaces) now see Activity and Logs links directly in each workspace's sidebar, pre-filtered to that workspace.
- **API key links in activity logs** -- The [Activity page](https://openrouter.ai/activity) and generation detail pane now display the API key name as a clickable link to its detail page, with org-scoped access control.
- **Fixed: video playback errors in Logs** -- Video generation results in [Logs](https://openrouter.ai/logs) now show specific error messages based on the failure type (expired, codec unsupported, network error) and always provide a Download button as fallback.
</Release>

<Release date="May 24, 2026" published="2026-05-24T00:00:00.000Z" url="https://openrouter.ai/docs/changelog/2026/5/24">
## May 24, 2026

### Product changes

- **Fixed: activity chart color consistency** -- Spend, Requests, and Tokens charts on the [activity page](https://openrouter.ai/activity) now use consistent colors for the same series across all three charts.
</Release>

<Release date="May 23, 2026" published="2026-05-23T00:00:00.000Z" url="https://openrouter.ai/docs/changelog/2026/5/23">
## May 23, 2026

### Product changes

- **Compare page benchmark visualization** -- The [compare page](https://openrouter.ai/compare) now displays provider-coded landscape benchmark charts for Intelligence, Coding, and Agentic metrics with author-brand color gradients, replacing the previous data grid.
- **Redesigned model selector** -- The model selector now features full-screen search, improved filtering, and integrated apps discovery, making it faster to find and switch between models across the site.
</Release>

<Release date="May 22, 2026" published="2026-05-22T00:00:00.000Z" url="https://openrouter.ai/docs/changelog/2026/5/22">
## May 22, 2026

### Product changes

- **Profile link in navigation** -- Added a Profile link to the user dropdown menu for quicker access to [profile settings](https://openrouter.ai/settings/profile).
- **Compare page toolbar layout** -- Moved the comparison controls to the left of model cards and the "Add model" button to the top-right title bar on the [compare page](https://openrouter.ai/compare).
- **Fixed: `service_tier` response normalization** -- API responses now consistently return `"default"` instead of sometimes `"standard"` for the base service tier, and explicitly return `null` when no tier is present. [Docs](/docs/guides/features/service-tiers)
- **Fixed: profile API keys scoping in organizations** -- API keys on the profile page now correctly display only the current user's keys when viewing within an organization context.
</Release>

<Release date="May 21, 2026" published="2026-05-21T00:00:00.000Z" url="https://openrouter.ai/docs/changelog/2026/5/21">
## May 21, 2026

### Product changes

- **Export all chats from playground** -- Added an "Export All Chats" option to the [chatroom](https://openrouter.ai/chat) sidebar menu to download all conversations as a single JSON file.
- **Filter menu badge counts** -- The activity filter menu now displays numeric badge counts for active selections per category and uses checkmarks instead of dots for selected items.
- **API keys on profile page** -- All API keys across workspaces are now visible on the user profile page with click-through navigation to each key's detail page.
- **Improved coding agent attribution** -- Requests from Cursor, GitHub Copilot, Cline, RooCode, Kilo Code, Zed, and OpenCode are now properly identified and labeled in activity logs.
- **Fixed: chat export missing rooms** -- Exporting chats now includes all rooms, including those not recently visited.

### New models

- [**Qwen: Qwen3.7 Max**](https://openrouter.ai/qwen/qwen3.7-max)
</Release>

<Release date="May 20, 2026" published="2026-05-20T00:00:00.000Z" url="https://openrouter.ai/docs/changelog/2026/5/20">
## May 20, 2026

### Product changes

- **Web fetch: Parallel engine** -- The [web fetch](/docs/guides/features/server-tools/web-fetch) server tool now supports Parallel as an engine option, bringing engine parity with web search.
- **Delete all chats in chatroom** -- Added a "Delete All Chats" option in the [chatroom](https://openrouter.ai/chat) sidebar with a confirmation dialog for bulk-deleting all chat rooms at once.
- **Pareto Router default settings** -- The [Pareto Router](/docs/guides/routing/routers/pareto-router) can now be configured with a default coding quality tier in [workspace plugin settings](https://openrouter.ai/workspaces/default/plugins), removing the need to pass `min_coding_score` on every API request.
- **Fixed: HTML-encoded characters in xAI tool-call arguments** -- xAI Grok models that intermittently emit `&`, `<`, or `>` inside tool-call argument JSON now have those entities decoded server-side so downstream clients receive clean arguments.
- **Fixed: compare page horizontal scroll at 4–5 models** -- The [compare page](https://openrouter.ai/compare) now properly enables horizontal scrolling when comparing four or five models.

### New models

- [**xAI: Grok Build 0.1**](https://openrouter.ai/x-ai/grok-build-0.1)
</Release>

<Release date="May 19, 2026" published="2026-05-19T00:00:00.000Z" url="https://openrouter.ai/docs/changelog/2026/5/19">
## May 19, 2026

### Product changes

- **Download fusion responses as markdown** -- Fusion responses in the [chatroom](https://openrouter.ai/chat) can now be downloaded as `.md` files with human-readable filenames based on the prompt title and timestamp.
- **Profile page improvements** -- User profiles now show per-model breakdowns for token and prompt counts, a discoverable profile picture change button, and a refreshed header layout.
- **Request ID filter in logs** -- The [logs page](https://openrouter.ai/logs) now displays request IDs in generation details and supports filtering by request ID alongside generation ID and session ID.
- **Unified date range picker on activity page** -- The [activity page](https://openrouter.ai/activity) now uses the same date range preset picker as the logs page for consistent date selection.
- **Collapsible citation icons in chatroom** -- When a [chatroom](https://openrouter.ai/chat) response has more than five citation icons, only the first three are shown with an expander button to reveal the rest.
- **Model pinning for router sessions** -- Router models like `openrouter/auto` now pin to the same concrete model across requests sharing a `session_id`, improving prompt cache hit rates for multi-turn conversations.
- **Fixed: router fallback blocked by generation start events** -- Protocol-level generation start events no longer prevent provider fallback, so the router correctly retries with another provider when the first one errors before delivering content.

### New models

- [**Google: Gemini 3.5 Flash**](https://openrouter.ai/google/gemini-3.5-flash)
</Release>

<Release date="May 18, 2026" published="2026-05-18T00:00:00.000Z" url="https://openrouter.ai/docs/changelog/2026/5/18">
## May 18, 2026

### Product changes

- **Move API keys between workspaces** -- You can now transfer API keys from one [workspace](/docs/guides/features/workspaces) 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](/docs/guides/features/presets) 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](https://openrouter.ai/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](/docs/cookbook/building-agents/long-horizon-agents) 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](https://openrouter.ai/compare) 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](https://openrouter.ai/compare) 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

- [**xAI: Grok Imagine Video**](https://openrouter.ai/x-ai/grok-imagine-video)
- [**xAI: Grok Imagine Image Quality**](https://openrouter.ai/x-ai/grok-imagine-image-quality)
</Release>

<Release date="May 17, 2026" published="2026-05-17T00:00:00.000Z" url="https://openrouter.ai/docs/changelog/2026/5/17">
## May 17, 2026

### Product changes

- **Fixed: rankings filter state not persisted in URL** -- Filters on the [rankings page](https://openrouter.ai/rankings) are now stored in the URL via query parameters, making filtered views shareable and bookmarkable.
</Release>

<Release date="May 16, 2026" published="2026-05-16T00:00:00.000Z" url="https://openrouter.ai/docs/changelog/2026/5/16">
## May 16, 2026

### Product changes

- **Bring-your-own-key management API** -- New REST endpoints for programmatically listing, retrieving, creating, updating, and deleting [BYOK credentials](/docs/api/api-reference/byok/create-byok-key) across workspaces via management key authentication.
- **Observability destinations management API** -- New REST endpoints for listing, retrieving, creating, updating, and deleting [observability destinations](/docs/api/api-reference/observability/create-observability-destination) (Datadog, Langfuse, LangSmith, and more) via management key authentication.
- **Fixed: dashboard growth percentages exceeding display bounds** -- Very large growth percentages on the [activity dashboard](https://openrouter.ai/activity) are now capped at >999% for readability.
</Release>

<Release date="May 15, 2026" published="2026-05-15T00:00:00.000Z" url="https://openrouter.ai/docs/changelog/2026/5/15">
## May 15, 2026

### Product changes

- **Cursor integration guide** -- Added a [guide for configuring Cursor](/docs/cookbook/coding-agents/cursor-integration) 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](/docs/guides/overview/models).
- **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](/docs/guides/features/server-tools/web-search)
- **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](/docs/guides/overview/multimodal/stt)

### New models

- [**Mistral: Voxtral Mini Transcribe**](https://openrouter.ai/mistralai/voxtral-mini-transcribe)
</Release>

<Release date="May 14, 2026" published="2026-05-14T00:00:00.000Z" url="https://openrouter.ai/docs/changelog/2026/5/14">
## May 14, 2026

### 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](/docs/cookbook/coding-agents/opencode-integration) with OpenRouter to the coding agents documentation.
- **Fixed: BYOK model filter showing incomplete results** -- [Bring-your-own-key](/docs/guides/overview/auth/byok) 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](/docs/guides/routing/routers) 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](https://openrouter.ai/models) modality filter tabs.

### New models

- [**xAI: Grok Voice TTS 1.0**](https://openrouter.ai/x-ai/grok-voice-tts-1.0)
</Release>

<Pagination cursor="2026-05-14T00:00:00.000Z|2026-06-04T12:30:51.536Z|rel_-Womcw6XhyTHMMKaurBMg" next="https://releases.sh/openrouter/openrouter-changelog.md?cursor=2026-05-14T00%3A00%3A00.000Z%7C2026-06-04T12%3A30%3A51.536Z%7Crel_-Womcw6XhyTHMMKaurBMg&limit=20" />
