Skip to main content

Product

The changelog with the Product filter on and the date list beside it
  • 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/embeddings returns 400 validation_error when a structured input field is a nested object or array; before, it returned 502 (#3296).
  • When every provider rejects a request with the same 400, 413 or 422, the gateway returns that status and the provider’s message instead of 502 (#3296).
  • API key spend limit 429 errors show dollar amounts, such as $0.0117 of $0.01, and monthly limits keep their Retry-After header (#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.version or model: "@slug@label", and an unknown one returns 404 preset_version_not_found; see Prompt Templates (#3281).
  • GET /v1/presets/{id}/labels lists preset labels, and PUT and DELETE /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/userinfo returns picture, name and given_name for tokens with the profile scope, 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-substitution header; see Model Deprecation and Retirement (#2896).
  • The Terraform provider adds phaseo_rate_limit_policy, phaseo_rate_limit_assignment and phaseo_department_budget resources, 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, returning 429 with reason policy_concurrent_requests and Retry-After: 1 when 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/messages accepts mid-conversation role: "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-budgets sets 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-timestamp and x-phaseo-signature (HMAC-SHA256); see Workspace Notifications (#3089).
  • Broadcast exports a request’s metadata as phaseo.metadata.<key> span attributes (#3127).
  • trace_name, span_name, generation_name and trace_id in a request’s metadata name 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 only prompt.id and 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).
  • /models and /models/table add 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 error as an object with code, message, type, param and metadata; code that read error as a string should read the new top-level code; see Errors and Debugging (#3055).
  • Chat Completions, Responses, Messages and embeddings responses include usage.cost in USD and a usage.cost_details breakdown (#3050).
  • POST /v1/keys returns the new secret at the top level as key; see Create API key (#3050).
  • Text endpoints accept explicit null for optional parameters, service_tier: "auto" and "scale", and prediction, which used to return 400 (#3049).
  • The web and web-fetch plugins 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_minute and return x-ratelimit-limit-tokens, x-ratelimit-remaining-tokens and x-ratelimit-reset-tokens headers; 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_details with the 30-minute and 12-hour cache write split (#3078).

API & SDKs

  • Optional parameters the provider doesn’t support, such as top_k or min_p, are dropped and listed in the X-Phaseo-Dropped-Params response 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 429 returns 429 with the provider’s Retry-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/mcp and 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 agent cache 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.txt include instructions for AI agents on authentication, model IDs and endpoints (#2947).
  • Phaseo’s public skills are published under /.well-known/agent-skills/ and install with npx skills add https://phaseo.app/docs (#2947).

API & SDKs

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-limits creates and assigns rate limit policies, and the gateway enforces their requests_per_minute for keys, members, guardrails and end users; see Rate Limits (#2888, #2893).
  • Requests over a policy’s requests_per_minute return 429 rate_limit_exceeded with x-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/models lists Gemini batch offers (#2936).

Product

  • Settings -> Billing & Credits shows how long your balance will last at the current pace (#2898).
  • API key limits show where each window is heading before it resets (#2895).
  • Weekly and monthly API key usage shows real amounts; before, it read as zero (#2895).

API & SDKs

  • GET /v1/models returns an ETag and answers 304 Not Modified to a matching If-None-Match; see List models (#2916).
  • Each provider offer in GET /v1/models lists 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

  • The models page adds OCR, Document parsing and Translation groups (#2867).
  • On the models page, Audio opens a row of Speech, Transcription, Translation, Realtime and Music filters (#2873, #2876).

API & SDKs

  • The top-level models fallback list works on every inference endpoint, including /v1/messages and the media endpoints; see Routing and Fallbacks (#2858).
  • 429 responses for API key request and spend limits include Retry-After with the seconds until the limit resets (#2864).

Product

  • Model cards show the cheapest provider’s standard input and output prices, with units (#2831, #2832).
  • The model card pricing hover card names the provider behind the price and lists each priced variant of image and video models (#2845, #2839).

API & SDKs

  • GET /v1/models?format=openai returns 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 429 with Retry-After (#2690, #2787).
  • The EU and US regional gateways return 403 model_region_unavailable when no provider serves the model in that region; see Route text requests by region (#2811, #2813).

API & SDKs

  • /v1/decisions accepts 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 G generation ID shared by response headers, payloads and logs, and a caller’s x-request-id no 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).
Last modified on October 30, 2026