Skip to main content
Provider-qualified model IDs let you select an exact provider and canonical model in the model field. Use them when provider choice is part of the request contract rather than a routing preference.

Syntax

For example:
The first colon separates the provider from the canonical model ID. Colons after the model namespace remain model suffixes, so this is unambiguous:
In that example:
  • baseten is the requested provider
  • google/gemma-4-26b-a4b:free is the canonical Phaseo model ID

Send a request

Use the qualified identifier anywhere the endpoint accepts a model ID.

Exact routing behaviour

A provider qualifier is an exact constraint. Phaseo narrows the eligible provider set to the requested provider and will not fall back to another provider for that request. The qualifier does not bypass other controls. The provider must still:
  • expose the canonical model on the requested endpoint
  • be enabled for the endpoint capability
  • satisfy workspace and API key policies
  • satisfy preset and privacy restrictions
  • support the requested service tier and parameters
  • have valid pricing configured
If any of these checks fail, Phaseo rejects the request rather than silently selecting another provider.

Interaction with routing fields

The qualified provider and explicit routing fields must agree.
A matching provider.only or routing.only value is accepted. A conflicting allowlist, or an ignore list containing the qualified provider, returns a validation error. For example, this request is contradictory and is rejected:
If provider choice is only a preference and cross-provider fallback is desirable, continue using an unqualified canonical model ID with the normal routing and fallback controls.

Provider-qualified free models

A qualified :free request is accepted only when that exact provider has an eligible free route for the canonical model and endpoint.
Phaseo fails closed unless the selected route has a non-empty pricing card where every current pricing rule:
  • is explicitly labelled free
  • has a price of exactly zero
Missing pricing, paid pricing, mixed pricing, negative pricing, or a zero-priced rule that is not explicitly labelled free causes the request to be rejected before provider execution.
The existence of a canonical :free model does not imply that every provider serving the underlying model offers a free route.

Provider slugs and aliases

Use a provider slug exposed by Phaseo’s provider catalogue. Slugs are normalised to lowercase, and supported legacy or brand aliases are mapped to their canonical provider ID. For example, NovitaAI and novita-ai currently normalise to novita. Malformed and unknown slugs are rejected before provider selection. Phaseo does not send them upstream as part of the model name.

Validation errors

Provider-qualified identifier failures use HTTP 400 with the top-level error code validation_error. Inspect reason or details[].keyword for the precise cause. Example error:

Choosing between the two forms

Last modified on July 31, 2026