A daily log of product changes, improvements, and new model releases on OpenRouter
min_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. Docsopenrouter/auto:thinking) now return a descriptive 404 instead of a generic 500 error.cache_control for Anthropic Claude models, closing a gap where cached input tokens stayed at zero on /api/v1/responses. Docspreferred_min_throughput and preferred_max_latency now take effect when allow_fallbacks is set to false. Docsimage/svg+xml data URLs instead of incorrectly labeled raster output. Docsspeed: "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.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.