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/completions for 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_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 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