Product

- The changelog now lists product and API changes alongside model releases, with Product, API & SDKs and Models filters that keep the date list (#3261).
- The preset editor adds Publish next to Save Draft, and Versions and labels gives each label a version picker, so choosing an earlier version rolls back; see Prompt Templates (#3301).
- Opening a published preset version shows its models and template messages, the lines that differ from the default version, and a Run button to try it (#3301).
API & SDKs
/v1/embeddingsreturns400 validation_errorwhen a structured input field is a nested object or array; before, it returned502(#3296).- When every provider rejects a request with the same
400,413or422, the gateway returns that status and the provider’s message instead of502(#3296). - API key spend limit
429errors show dollar amounts, such as$0.0117 of $0.01, and monthly limits keep theirRetry-Afterheader (#3296).
Product
- The preset editor’s Versions and labels section points named labels at published versions, so moving a label rolls requests back in one click; see Prompt Templates (#3283).
- The preset model picker offers only models the gateway still serves; before, it also listed retired models that requests could not reach (#3260).
- Running a preset in a workspace with no credits says so and links to Add credits; before, it showed a generic error (#3276).
- Pages that load the full model catalogue, such as the preset editor, get it from cache; before, each load took about 3 seconds and some failed (#3278).
API & SDKs
- Preset requests can pin a version or label with
prompt.versionormodel: "@slug@label", and an unknown one returns404 preset_version_not_found; see Prompt Templates (#3281). GET /v1/presets/{id}/labelslists preset labels, andPUTandDELETE /v1/presets/{id}/labels/{label}move and remove one; see Set preset label (#3283).- Streamed Chat Completions, Responses and Messages events now carry the Phaseo model ID in
model; before, some carried the provider’s own ID (#3273). GET /oauth/userinforeturnspicture,nameandgiven_namefor tokens with theprofilescope, taken from the Phaseo profile (#3189).
Product
- The Weekly tokens column on the models page shows real totals again; before, it showed 0 for every model (#3241).
Product
- Every workspace can use retired model routing: owners and admins turn it on in Settings -> Routing -> Retired model routing, and requests go to the approved replacement; see Model Deprecation and Retirement (#2899, #2896).
- Retired model routing uses an approved replacement only when it costs no more than the retired model, unless owners and admins allow a higher price; a replacement they choose themselves is used whatever it costs (#2899, #3211).
- The presets list and editor open even when the full model catalogue fails to load; before, the page showed an error (#3221).
API & SDKs
- Responses served by a retired model’s replacement carry the
x-phaseo-model-substitutionheader; see Model Deprecation and Retirement (#2896). - The Terraform provider adds
phaseo_rate_limit_policy,phaseo_rate_limit_assignmentandphaseo_department_budgetresources, all importable by ID; see Rate Limits (#3216).
Product
- Owners and admins can create rate limit policies in Settings -> Rate limits with requests per minute, tokens per minute, concurrent requests and Strict mode; see Rate Limits (#3150, #3213).
- Settings -> Rate limits assigns a policy to an API key, member, department, guardrail or the end-user default, and shows its throttled requests over 24 hours (#3150).
- Owners and admins can add daily, weekly or monthly department budgets in Settings -> Budgets; they send alerts at 80% and 100% and never block requests (#3208).
- Key Security moves to Settings -> API Keys -> Key Security, and the keys table adds a Status column and sortable columns (#3184).
- Broadcast can send traces to Amazon S3 and S3-compatible storage, Cloudflare R2, Google Cloud Storage, ClickHouse, BigQuery and Snowflake; see Broadcast (#3181, #3182, #3185).
- New guide: Broadcast lists the settings for every destination type (#3190).
- The compare page adds a 30-day Activity chart of each model’s tokens and requests through Phaseo (#3147).
- The compare page shows where each model ranks on the capability indexes (#3148).
- Two-model comparisons have their own pages with a summary and FAQ, such as
/compare/anthropic_claude-opus-5.5-vs-openai_gpt-6-astra(#3162).
API & SDKs
- Rate limit policies enforce
concurrent_requests, returning429with reasonpolicy_concurrent_requestsandRetry-After: 1when every slot is taken; see Rate Limits (#3212). - Strict rate limit policies (
fail_closed) check their per-minute limits before the request is sent to a provider (#3212). - Requests sent through the EU and US regional gateways now reach Broadcast destinations (#3187).
- Requests to most models succeed again; on October 23, after a provider data policy update, they returned
500 gateway_context_failed(#3206).
Product
- The new Key Security page flags API keys with no spend limit, expiry, recent use, IP allowlist or recorded storage location, and suggests a fix (#3159).
- Each API key can record where it is stored, such as Vercel, GitHub Actions or 1Password (#3158).
- Settings -> Budgets shows each workspace budget’s spend, remaining amount and reset time (#3095).
- Broadcast adds 16 destinations, including Langfuse, Datadog LLM Observability, LangSmith, PostHog and Sentry, each with a test button; see Broadcast (#2962, #3080, #3083).
- Broadcast settings show whether each destination is delivering (#3102).
- Settings -> Notifications can send an alert when a Broadcast destination keeps failing (#3105).
- Broadcast webhook destinations accept an optional signing secret (#3129).
- Request details say when zero data retention skipped storing a request’s content (#3178).
- The compare page lets you pick the route and service tier under each model, and its prices, cost calculator and verdicts follow that choice (#3133).
API & SDKs
/v1/messagesaccepts mid-conversationrole: "system"messages in the positions Claude allows; see Create a message (#3165).- The key endpoints and every SDK accept and return
storage_locations, up to eight places where a key is kept, such as["railway", "github"]; see Create API key (#3164). - Beta:
/v1/department-budgetssets daily, weekly or monthly USD budgets per department, which alert owners and admins at about 80% and 100% without blocking requests (#3125). - Zero data retention keeps a request’s prompt and response content out of the response cache, data samples and Phaseo’s telemetry, whether set by the workspace, a key guardrail or the request (#3161, #3175).
- Custom webhook notification deliveries are signed with
x-phaseo-timestampandx-phaseo-signature(HMAC-SHA256); see Workspace Notifications (#3089). - Broadcast exports a request’s
metadataasphaseo.metadata.<key>span attributes (#3127). trace_name,span_name,generation_nameandtrace_idin a request’smetadataname and group its exported Broadcast traces (#3127).
Product
- Logged Chat Completions, Responses and Messages requests open in Chat to continue, from request details, the logs table’s right-click menu or a session turn; see Open Requests in Chat (#3084, #3092).
- Owners and admins can limit stored prompts and responses to owners and admins in Settings -> Privacy -> Who can view contents (#3103).
- With Require zero data retention on, request and response payloads are never stored in request logs (#3081).
- Presets can hold a prompt template with
{{variable}}placeholders, so requests send onlyprompt.idand the variables; see Prompt Templates (#3085). - The preset editor previews a prompt template as you edit it and has a Run button to test it (#3086, #3122).
- The Trace tab in request details, showing routing, provider attempts, tool calls and the final response, is available to every workspace (#3082).
- The compare page uses one grouped table that highlights the best value in each row, with a switch to show only the rows that differ (#3116).
/modelsand/models/tableadd a License filter, grouped into Permissive, Restricted and Proprietary, and a Weights filter for open or closed weights (#3062, #3075, #3079).
API & SDKs
- Breaking: Error responses return
erroras an object withcode,message,type,paramandmetadata; code that readerroras a string should read the new top-levelcode; see Errors and Debugging (#3055). - Chat Completions, Responses, Messages and embeddings responses include
usage.costin USD and ausage.cost_detailsbreakdown (#3050). POST /v1/keysreturns the new secret at the top level askey; see Create API key (#3050).- Text endpoints accept explicit
nullfor optional parameters,service_tier: "auto"and"scale", andprediction, which used to return400(#3049). - The
webandweb-fetchplugins work on any model, running as Phaseo’s web search and web fetch server tools; see Web Search Server Tool (#3051). - Rate limit policies enforce
tokens_per_minuteand returnx-ratelimit-limit-tokens,x-ratelimit-remaining-tokensandx-ratelimit-reset-tokensheaders; see Rate Limits (#2961). - Rate limit policies assigned to a department now apply to that department’s requests (#3088).
- Prompt cache writes bill at the documented rates: 2x input for 1-hour Claude writes and 2.5x input for 12-hour OpenAI writes; see Prompt Caching (#3078, #3076).
- Responses usage returns
input_tokens_details.cache_write_tokens_detailswith the 30-minute and 12-hour cache write split (#3078).
API & SDKs
- Optional parameters the provider doesn’t support, such as
top_kormin_p, are dropped and listed in theX-Phaseo-Dropped-Paramsresponse header; see Parameters (#2999). - A provider failure mid-stream ends the stream with the endpoint’s error event instead of a normal finish (#2990).
- A request that every provider rejected with
429returns429with the provider’sRetry-After(#2990). - A request rejected as invalid no longer falls back to the other models in
models(#2990).
Product
- English docs pages shared on social media or in chat show a preview image with the page’s title and description (#3003).
API & SDKs
- The Phaseo plugin for Claude Code bundles the Phaseo MCP server, the Docs MCP server at
https://phaseo.app/docs/mcpand Phaseo’s skills; see CLI and MCP (#2949). - Prompt caching is billed at each provider’s documented rates; see Prompt Caching (#2964).
- Agent turns stay on the provider that holds their prompt cache (#2969).
- Claude requests accept an
agentcache scope that places cache breakpoints for multi-turn agents; see Prompt Caching (#2957).
Product
- Settings -> Notifications adds Rate Limit Alerts, sent at most hourly by email, Slack, Discord, Teams or webhook; see Workspace Notifications (#2946).
Product
- The docs use phaseo.app’s design, with a new theme, simpler navigation and a footer with Models, Status and Support links (#2930).
- Every docs page’s Markdown and
llms.txtinclude instructions for AI agents on authentication, model IDs and endpoints (#2947). - Phaseo’s public skills are published under
/.well-known/agent-skills/and install withnpx skills add https://phaseo.app/docs(#2947).
API & SDKs
- The SDK docs add the Java SDK, installed from source; see Java SDK — Installation (#2904).
Product
- Signed-in users see a notice under the site header when a model their workspace used in the last 90 days is being deprecated; see Model Deprecation and Retirement (#2871).
- Model deprecation emails go to the workspace owner, and admins can be added (#2868).
- Usage overview forecasts follow the selected date range (#2921).
- Every figure on the usage overview comes from exact totals; before, it used a sample of recent requests (#2927).
API & SDKs
- Beta:
/v1/rate-limitscreates and assigns rate limit policies, and the gateway enforces theirrequests_per_minutefor keys, members, guardrails and end users; see Rate Limits (#2888, #2893). - Requests over a policy’s
requests_per_minutereturn429 rate_limit_exceededwithx-ratelimit-*headers (#2893). - Retired models keep serving while any provider route is enabled; once none is left, requests return
410 model_retired; see Model Deprecation and Retirement (#2884). - The Batch API runs Gemini models on Vertex AI with Phaseo-managed keys; see Video and batch jobs (#2932, #2935).
/v1/batches/modelslists Gemini batch offers (#2936).
Product
API & SDKs
GET /v1/modelsreturns anETagand answers304 Not Modifiedto a matchingIf-None-Match; see List models (#2916).- Each provider offer in
GET /v1/modelslists the service tiers it accepts (#2916).
Product
- Each usage overview card shows a month-end forecast for spend, requests and tokens, or the month so far for rates such as cache hit rate (#2900).
Product
API & SDKs
- The top-level
modelsfallback list works on every inference endpoint, including/v1/messagesand the media endpoints; see Routing and Fallbacks (#2858). 429responses for API key request and spend limits includeRetry-Afterwith the seconds until the limit resets (#2864).
Product
API & SDKs
GET /v1/models?format=openaireturns the model list in the OpenAI list format, with canonical model IDs; see List models (#2838).
Product
- Chat adds an opt-in Interactive answers experiment, turned on beside temporary chat, that can answer with comparison cards, tables, bar charts and follow-up forms (#2778).
API & SDKs
- Each workspace member has a requests-per-minute allowance shared across their API keys, rising from 10 to 120 as the workspace becomes established; see Rate Limits (#2690, #2800).
- Each user can make 1,500 free-model requests per UTC day, and requests over either limit return
429withRetry-After(#2690, #2787). - The EU and US regional gateways return
403 model_region_unavailablewhen no provider serves the model in that region; see Route text requests by region (#2811, #2813).
API & SDKs
/v1/decisionsaccepts OpenAI-compatible input with ordered questions and answers, and existing request shapes keep working; see Make a decision (#2744).
Product
- Model pages show saved specifications such as total and active parameter counts, licence and training tokens (#2728).
API & SDKs
- Every request gets a server-generated
Ggeneration ID shared by response headers, payloads and logs, and a caller’sx-request-idno longer replaces it; see Get a generation (#2710).
Product
- Owners and admins can open a workspace member’s profile from their user chip, with 30 days of requests and spend, top models, keys and recent logs (#2700).
Product
- Each API key has its own page with usage charts, limits and settings (#2686).
- API keys can be restricted to labelled IPv4 or IPv6 addresses and CIDR ranges (#2686).
- The web app and docs are translated into Spanish, French, German, Brazilian Portuguese, Japanese, Simplified Chinese, Hindi and Arabic, including text that used to fall back to English (#2681).
- The public Monitor page is removed, and saved Monitor landing preferences open Home (#2683).
API & SDKs
- The Phaseo MCP app adds a model explorer with search, filters, comparisons of up to three models, cost estimates and code examples; see CLI and MCP (#2680).
- The Phaseo MCP app can run a text comparison after you review and approve its estimated cost (#2680).










