A daily log of product changes, improvements, and new model releases on OpenRouter
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. Docsmin_coding_score on every API request.&, <, or > inside tool-call argument JSON now have those entities decoded server-side so downstream clients receive clean arguments..md files with human-readable filenames based on the prompt title and timestamp.openrouter/auto now pin to the same concrete model across requests sharing a session_id, improving prompt cache hit rates for multi-turn conversations.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.web_fetch passthrough — Anthropic models with native web_fetch support now correctly receive the tool in upstream requests, restoring full web content fetching capability./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.max_total_results to 50 when not specified, preventing runaway token accumulation in agentic loops. Docs