You aren’t limited to Opper’s hosted models. Register your own provider deployment, for example a private Azure OpenAI deployment, with its API key. It then appears in the catalog alongside built-in models and gets the same routing, governance, and tracing.
Register a custom model
The quickest way is in the dashboard. Open Settings → Models → Custom in platform.opper.ai and add a model:
Field What to enter Name A label, e.g. “My Custom Model”. Identifier How you’ll call it, e.g. example/my-gpt4. Type The provider type (Azure, OpenAI-compatible, and so on). Credentials The provider’s API key, token, or service-account JSON. API URL Your endpoint, e.g. https://my-deployment.openai.azure.com/.
Save it, then call the model by its identifier like any other.
Custom models are scoped to your project. The identifier prefix (e.g., example/) is the namespace.
Register from the API or CLI
If you’d rather automate it:
curl -X POST https://api.opper.ai/v2/custom-models \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${ OPPER_API_KEY }" \
-d '{
"name": "example/my-gpt4",
"provider": "azure",
"model_id": "gpt4-production",
"api_key": "my-api-key-here",
"params": {
"api_base": "https://my-gpt4-deployment.openai.azure.com/",
"api_version": "2024-06-01"
}
}'
opper models create example/my-gpt4 azure/gpt4-production my-api-key-here \
'{"api_base": "https://my-gpt4-deployment.openai.azure.com/", "api_version": "2024-06-01"}'
Model aliases
Create aliases to abstract model names so you can swap models without downtime:
curl -X POST https://api.opper.ai/v2/model-aliases \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${ OPPER_API_KEY }" \
-d '{
"name": "production/main",
"model_id": "anthropic/claude-sonnet-4-6"
}'
Use production/main in your code, then update the alias target to switch models without changing any integration code.
What’s next
Models The full catalog of built-in models.
AI Gateway How routing, model selection, and BYOK fit together.