Models and providers
Different providers behind one OpenAI-compatible interface, including OpenAI and Anthropic: model selection, listing accessible models, retries, and failover.
The Gateway offers a single OpenAI-compatible interface. Which provider runs
behind it is not the client’s concern: your application sends the same request
shape, and the only field that changes is model.
Model selection
The model name is given in the request. Switching between the models defined for your organization takes one line; the SDK, the parameters, and the response format stay the same.
resp = client.responses.create(
model="gpt-4o-mini",
input="Ahmet Yılmaz, TCKN 10000000382, adres değişikliği istiyor.",
)
You get the models you can access from the /v1/models endpoint. The list
returns the models defined for your organization; the name gurubase-siper,
reserved for masking only, is also there. For the full reference of the
endpoint, see List accessible models.
Providers
Two kinds of providers can run behind the same interface: general providers such as OpenAI, Anthropic, and Gemini, or models you host on your own servers. Which providers are open, and which models each virtual key can reach, are defined for the organization.
The provider’s real API key stays inside the Gateway. Your applications and panel users see only the virtual key; the provider key never reaches the client. For key generation, rotation, and revocation steps, see Panel.
Masking is independent of this choice: whichever provider is selected, the request passes through the same protection layers before it goes to the external model. For the layers, see Guardrails.
Retries and switching to an alternative
Providers return a rate limit from time to time, or slow down. In that case the retry decision is made in the Gateway, not in your application code: the request is retried with increasing wait intervals.
If more than one provider is defined for your organization, routing the request to an alternative provider when one cannot respond is configured in the same place. No extra code is needed on the application side.
The limits on your side (requests per minute, token budget, and 429 behavior) are a separate topic; the details are on the Limits and quotas page.