{"id":"src_LOXhPxD49ObF36ogJnjdq","slug":"openrouter-changelog","name":"Changelog","type":"feed","url":"https://openrouter.ai/docs/changelog","orgId":"org_g7s7U3o8r-RWqdPwJnqla","productId":null,"productSlug":null,"org":{"id":"org_g7s7U3o8r-RWqdPwJnqla","slug":"openrouter","name":"OpenRouter"},"isPrimary":true,"isHidden":false,"discovery":"curated","metadata":"{\"feedUrl\":\"https://openrouter.ai/docs/changelog.rss\",\"feedType\":\"unknown\",\"feedDiscoveredAt\":\"2026-06-04T12:30:40.809Z\",\"noFeedFound\":false}","notice":null,"kind":null,"stars":null,"starsFetchedAt":null,"releaseCount":62,"releasesLast30Days":28,"avgReleasesPerWeek":6.7,"latestVersion":null,"latestDate":"2026-06-02T00:00:00.000Z","changelogUrl":null,"hasChangelogFile":false,"lastFetchedAt":"2026-06-04T13:04:58.048Z","lastPolledAt":"2026-06-04T13:04:44.805Z","trackingSince":"2026-04-01T00:00:00.000Z","releases":[{"id":"rel_W7ekCXHjZOlxZUT43gCLi","version":null,"type":"feature","title":"June 2, 2026","summary":"### Product changes\n\n- **Rankings percentage toggle** -- Bar charts on the [rankings page](https://openrouter.ai/rankings) now have a menu button that...","titleGenerated":null,"titleShort":null,"content":"### Product changes\n\n- **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.\n- **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)\n- **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.\n- **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.\n\n### New models\n\n- [**Microsoft: MAI-Voice-2**](https://openrouter.ai/microsoft/mai-voice-2)\n- [**Microsoft: MAI-Transcribe 1.5**](https://openrouter.ai/microsoft/mai-transcribe-1.5)\n- [**Microsoft: MAI-Image-2.5**](https://openrouter.ai/microsoft/mai-image-2.5)","publishedAt":"2026-06-02T00:00:00.000Z","fetchedAt":"2026-06-04T12:30:51.350Z","url":"https://openrouter.ai/docs/changelog/2026/6/2","media":[],"coverageCount":0},{"id":"rel_Kub7cc7w5LIeMX-ASUv2U","version":null,"type":"feature","title":"June 1, 2026","summary":"### Product changes\n\n- **May Release Spotlight blog post** -- Published the [May Release Spotlight](https://openrouter.ai/announcements/may-release-sp...","titleGenerated":null,"titleShort":null,"content":"### Product changes\n\n- **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.\n- **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)\n- **`/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/).\n- **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.","publishedAt":"2026-06-01T00:00:00.000Z","fetchedAt":"2026-06-04T12:30:51.350Z","url":"https://openrouter.ai/docs/changelog/2026/6/1","media":[],"coverageCount":0},{"id":"rel_ISieYFWt93nAb_8uKgkkF","version":null,"type":"feature","title":"May 31, 2026","summary":"### Product changes\n\n- **Fusion Router documentation and model page** -- Added a dedicated [Fusion Router documentation page](/docs/guides/routing/rou...","titleGenerated":null,"titleShort":null,"content":"### Product changes\n\n- **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.\n- **MiniMax M3 reasoning support** -- MiniMax M3 now supports the `thinking` parameter, enabling extended reasoning for complex tasks.\n- **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.\n\n### New models\n\n- [**MiniMax: MiniMax M3**](https://openrouter.ai/minimax/minimax-m3)","publishedAt":"2026-05-31T00:00:00.000Z","fetchedAt":"2026-06-04T12:30:51.350Z","url":"https://openrouter.ai/docs/changelog/2026/5/31","media":[],"coverageCount":0},{"id":"rel_pjP1tKUgsa9WfFz7KSthH","version":null,"type":"feature","title":"May 30, 2026","summary":"### Product changes\n\n- **Fallback errors in error metadata** -- When all provider fallbacks fail, the error response `metadata` now includes a `previo...","titleGenerated":null,"titleShort":null,"content":"### Product changes\n\n- **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.\n- **Fixed: 404 page layout** -- The 404 page no longer displays visual artifacts (stray borders, duplicate footer, off-center content).\n- **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`.\n- **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.","publishedAt":"2026-05-30T00:00:00.000Z","fetchedAt":"2026-06-04T12:30:51.350Z","url":"https://openrouter.ai/docs/changelog/2026/5/30","media":[],"coverageCount":0},{"id":"rel_YI06NECZv9laibwnTqhzU","version":null,"type":"feature","title":"May 29, 2026","summary":"### Product changes\n\n- **Preset ID in generation responses** -- The `GET /api/v1/generation` endpoint now returns `preset_id` when a preset was used, ...","titleGenerated":null,"titleShort":null,"content":"### Product changes\n\n- **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)\n- **Fixed: activity overview date range** -- The [activity](https://openrouter.ai/activity) overview widget no longer breaks when selecting a date range exceeding 365 days.","publishedAt":"2026-05-29T00:00:00.000Z","fetchedAt":"2026-06-04T12:30:51.350Z","url":"https://openrouter.ai/docs/changelog/2026/5/29","media":[],"coverageCount":0},{"id":"rel_IdbGHjDLfcgYvXDaGHY6k","version":null,"type":"feature","title":"May 28, 2026","summary":"### Product changes\n\n- **IP address filtering for enterprise plans** -- Enterprise organizations can now restrict all API key usage to approved IP add...","titleGenerated":null,"titleShort":null,"content":"### Product changes\n\n- **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.\n- **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)\n- **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)\n- **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)\n- **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.\n- **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.\n\n### New models\n\n- [**Anthropic: Claude Opus 4.8**](https://openrouter.ai/anthropic/claude-opus-4.8)\n- [**Anthropic: Claude Opus 4.8 (Fast)**](https://openrouter.ai/anthropic/claude-opus-4.8-fast)\n- [**StepFun: Step 3.7 Flash**](https://openrouter.ai/stepfun/step-3.7-flash)","publishedAt":"2026-05-28T00:00:00.000Z","fetchedAt":"2026-06-04T12:30:51.687Z","url":"https://openrouter.ai/docs/changelog/2026/5/28","media":[],"coverageCount":0},{"id":"rel_Gwc9JgDJzBhKmp8QXlt1y","version":null,"type":"feature","title":"May 27, 2026","summary":"### Product changes\n\n- **Series B announcement** -- Published the [$113M Series B announcement](https://openrouter.ai/announcements/series-b).\n- **API...","titleGenerated":null,"titleShort":null,"content":"### Product changes\n\n- **Series B announcement** -- Published the [$113M Series B announcement](https://openrouter.ai/announcements/series-b).\n- **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)\n- **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)\n- **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.\n- **Guardrails API documentation** -- Added a guide for updating your workspace default guardrail programmatically via the API. [Docs](/docs/guides/features/guardrails)\n- **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.","publishedAt":"2026-05-27T00:00:00.000Z","fetchedAt":"2026-06-04T12:30:51.472Z","url":"https://openrouter.ai/docs/changelog/2026/5/27","media":[],"coverageCount":0},{"id":"rel_nhfKtZQm-g85eanB5JZ9w","version":null,"type":"feature","title":"May 26, 2026","summary":"### Product changes\n\n- **Model comparison page** -- Compare up to five models side by side on pricing, context length, and benchmark scores with the n...","titleGenerated":null,"titleShort":null,"content":"### Product changes\n\n- **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.\n- **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.\n- **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)\n- **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)\n- **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)\n- **Fixed: dashboard not refreshing on account switch** -- Switching between accounts in the dashboard now correctly remounts the page so data reflects the selected account.\n- **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.","publishedAt":"2026-05-26T00:00:00.000Z","fetchedAt":"2026-06-04T12:30:51.687Z","url":"https://openrouter.ai/docs/changelog/2026/5/26","media":[],"coverageCount":0},{"id":"rel_URVlbnWF5xh0aNGXrNIsy","version":null,"type":"feature","title":"May 25, 2026","summary":"### Product changes\n\n- **Activity and Logs in workspace sidebar** -- Organizations with multiple [workspaces](/docs/guides/features/workspaces) now se...","titleGenerated":null,"titleShort":null,"content":"### Product changes\n\n- **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.\n- **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.\n- **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.","publishedAt":"2026-05-25T00:00:00.000Z","fetchedAt":"2026-06-04T12:30:51.472Z","url":"https://openrouter.ai/docs/changelog/2026/5/25","media":[],"coverageCount":0},{"id":"rel_z3g54WP-vdFWCcpKVIAE3","version":null,"type":"feature","title":"May 24, 2026","summary":"### Product changes\n\n- **Fixed: activity chart color consistency** -- Spend, Requests, and Tokens charts on the [activity page](https://openrouter.ai/...","titleGenerated":null,"titleShort":null,"content":"### Product changes\n\n- **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.","publishedAt":"2026-05-24T00:00:00.000Z","fetchedAt":"2026-06-04T12:30:51.472Z","url":"https://openrouter.ai/docs/changelog/2026/5/24","media":[],"coverageCount":0},{"id":"rel_N4c0RBihDzWOteXcirrOg","version":null,"type":"feature","title":"May 23, 2026","summary":"### Product changes\n\n- **Compare page benchmark visualization** -- The [compare page](https://openrouter.ai/compare) now displays provider-coded lands...","titleGenerated":null,"titleShort":null,"content":"### Product changes\n\n- **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.\n- **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.","publishedAt":"2026-05-23T00:00:00.000Z","fetchedAt":"2026-06-04T12:30:51.472Z","url":"https://openrouter.ai/docs/changelog/2026/5/23","media":[],"coverageCount":0},{"id":"rel_pqEOW6xNL9IG6iPoCXRui","version":null,"type":"feature","title":"May 22, 2026","summary":"### Product changes\n\n- **Profile link in navigation** -- Added a Profile link to the user dropdown menu for quicker access to [profile settings](https...","titleGenerated":null,"titleShort":null,"content":"### Product changes\n\n- **Profile link in navigation** -- Added a Profile link to the user dropdown menu for quicker access to [profile settings](https://openrouter.ai/settings/profile).\n- **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).\n- **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)\n- **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.","publishedAt":"2026-05-22T00:00:00.000Z","fetchedAt":"2026-06-04T12:30:51.472Z","url":"https://openrouter.ai/docs/changelog/2026/5/22","media":[],"coverageCount":0},{"id":"rel_FlElAKuKoU6OGQyrbDnrr","version":null,"type":"feature","title":"May 21, 2026","summary":"### Product changes\n\n- **Export all chats from playground** -- Added an \"Export All Chats\" option to the [chatroom](https://openrouter.ai/chat) sideba...","titleGenerated":null,"titleShort":null,"content":"### Product changes\n\n- **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.\n- **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.\n- **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.\n- **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.\n- **Fixed: chat export missing rooms** -- Exporting chats now includes all rooms, including those not recently visited.\n\n### New models\n\n- [**Qwen: Qwen3.7 Max**](https://openrouter.ai/qwen/qwen3.7-max)","publishedAt":"2026-05-21T00:00:00.000Z","fetchedAt":"2026-06-04T12:30:51.505Z","url":"https://openrouter.ai/docs/changelog/2026/5/21","media":[],"coverageCount":0},{"id":"rel_lyFyXIOil9tZN17vqpwPY","version":null,"type":"feature","title":"May 20, 2026","summary":"### Product changes\n\n- **Web fetch: Parallel engine** -- The [web fetch](/docs/guides/features/server-tools/web-fetch) server tool now supports Parall...","titleGenerated":null,"titleShort":null,"content":"### Product changes\n\n- **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.\n- **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.\n- **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.\n- **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.\n- **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.\n\n### New models\n\n- [**xAI: Grok Build 0.1**](https://openrouter.ai/x-ai/grok-build-0.1)","publishedAt":"2026-05-20T00:00:00.000Z","fetchedAt":"2026-06-04T12:30:51.505Z","url":"https://openrouter.ai/docs/changelog/2026/5/20","media":[],"coverageCount":0},{"id":"rel_CV7YgZkPtnMxJsakvwKc6","version":null,"type":"feature","title":"May 19, 2026","summary":"### Product changes\n\n- **Download fusion responses as markdown** -- Fusion responses in the [chatroom](https://openrouter.ai/chat) can now be download...","titleGenerated":null,"titleShort":null,"content":"### Product changes\n\n- **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.\n- **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.\n- **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.\n- **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.\n- **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.\n- **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.\n- **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.\n\n### New models\n\n- [**Google: Gemini 3.5 Flash**](https://openrouter.ai/google/gemini-3.5-flash)","publishedAt":"2026-05-19T00:00:00.000Z","fetchedAt":"2026-06-04T12:30:51.712Z","url":"https://openrouter.ai/docs/changelog/2026/5/19","media":[],"coverageCount":0},{"id":"rel_JOE7PxF-5Bli1Axl-6dxQ","version":null,"type":"feature","title":"May 18, 2026","summary":"### Product changes\n\n- **Move API keys between workspaces** -- You can now transfer API keys from one [workspace](/docs/guides/features/workspaces) to...","titleGenerated":null,"titleShort":null,"content":"### Product changes\n\n- **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.\n- **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.\n- **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.\n- **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.\n- **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.\n- **Profile page layout** -- Profile pages now display name, avatar, email, role, and workspace info at the top of the page for a cleaner layout.\n- **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.\n- **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.\n- **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.\n\n### New models\n\n- [**xAI: Grok Imagine Video**](https://openrouter.ai/x-ai/grok-imagine-video)\n- [**xAI: Grok Imagine Image Quality**](https://openrouter.ai/x-ai/grok-imagine-image-quality)","publishedAt":"2026-05-18T00:00:00.000Z","fetchedAt":"2026-06-04T12:30:51.712Z","url":"https://openrouter.ai/docs/changelog/2026/5/18","media":[],"coverageCount":0},{"id":"rel_Wg2a-UZq63JgdIPs2yusE","version":null,"type":"feature","title":"May 17, 2026","summary":"### Product changes\n\n- **Fixed: rankings filter state not persisted in URL** -- Filters on the [rankings page](https://openrouter.ai/rankings) are now...","titleGenerated":null,"titleShort":null,"content":"### Product changes\n\n- **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.","publishedAt":"2026-05-17T00:00:00.000Z","fetchedAt":"2026-06-04T12:30:51.505Z","url":"https://openrouter.ai/docs/changelog/2026/5/17","media":[],"coverageCount":0},{"id":"rel_4-Py3eUoCnjv9HMokCBaS","version":null,"type":"feature","title":"May 16, 2026","summary":"### Product changes\n\n- **Bring-your-own-key management API** -- New REST endpoints for programmatically listing, retrieving, creating, updating, and d...","titleGenerated":null,"titleShort":null,"content":"### Product changes\n\n- **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.\n- **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.\n- **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.","publishedAt":"2026-05-16T00:00:00.000Z","fetchedAt":"2026-06-04T12:30:51.505Z","url":"https://openrouter.ai/docs/changelog/2026/5/16","media":[],"coverageCount":0},{"id":"rel_dkj2aQzTtxu70wupgxMuW","version":null,"type":"feature","title":"May 15, 2026","summary":"### Product changes\n\n- **Cursor integration guide** -- Added a [guide for configuring Cursor](/docs/cookbook/coding-agents/cursor-integration) to rout...","titleGenerated":null,"titleShort":null,"content":"### Product changes\n\n- **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.\n- **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).\n- **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)\n- **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)\n\n### New models\n\n- [**Mistral: Voxtral Mini Transcribe**](https://openrouter.ai/mistralai/voxtral-mini-transcribe)","publishedAt":"2026-05-15T00:00:00.000Z","fetchedAt":"2026-06-04T12:30:51.505Z","url":"https://openrouter.ai/docs/changelog/2026/5/15","media":[],"coverageCount":0},{"id":"rel_-Womcw6XhyTHMMKaurBMg","version":null,"type":"feature","title":"May 14, 2026","summary":"### Product changes\n\n- **Playground side panel on model pages** -- Model detail pages now include a \"Playground\" button in the header that opens a sli...","titleGenerated":null,"titleShort":null,"content":"### Product changes\n\n- **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.\n- **OpenCode integration guide** -- Added a [guide for configuring OpenCode](/docs/cookbook/coding-agents/opencode-integration) with OpenRouter to the coding agents documentation.\n- **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.\n- **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.\n- **Fixed: vertical scrollbar on models page modality tabs** -- Removed an unwanted vertical scrollbar on the [models page](https://openrouter.ai/models) modality filter tabs.\n\n### New models\n\n- [**xAI: Grok Voice TTS 1.0**](https://openrouter.ai/x-ai/grok-voice-tts-1.0)","publishedAt":"2026-05-14T00:00:00.000Z","fetchedAt":"2026-06-04T12:30:51.536Z","url":"https://openrouter.ai/docs/changelog/2026/5/14","media":[],"coverageCount":0}],"pagination":{"nextCursor":"2026-05-14T00:00:00.000Z|2026-06-04T12:30:51.536Z|rel_-Womcw6XhyTHMMKaurBMg","limit":20},"summaries":{"rolling":null,"monthly":[]}}