Private Models are available for Enterprise Plan customers. Talk to your OpenRouter account representative, or visit openrouter.ai/enterprise/form to learn about upgrading to Enterprise.
How it works
Once your private model endpoint is onboarded:- Approved users and organizations call it through the standard OpenRouter API, the same endpoints they use for public models (chat completions and responses).
- The model slug behaves like any other OpenRouter model. It can be used with Model Fallbacks, Provider Selection, and other routing features.
- Approved private endpoints are prioritized for callers with access, while public fallback candidates remain available if you list them.
Adding a private endpoint
A private endpoint must meet two requirements:- It is hosted by a provider that OpenRouter supports for BYOK, since requests are authenticated with your own provider key.
- It serves a model that already exists in the OpenRouter catalog, with the same request and response shape and the same behaviors as that model. The private endpoint inherits the model’s slug and capabilities.
- Blueprint. Select the model from the catalog that your endpoint is providing, and the BYOK provider that hosts your capacity.
- Connect. Enter the HTTPS base URL of your endpoint and the upstream model or deployment ID it serves. You can also set pricing for cost reporting and declare whether the endpoint retains prompts (see ZDR).
- Test. OpenRouter sends a request to your endpoint using the provider key saved in one of your workspaces under BYOK. The checks confirm the key is accepted, the response is OpenAI-compatible, streaming works, usage fields are returned, and the served model ID matches what you entered.
- Activate. Once the checks pass, activation makes the model callable by workspaces in your organization.
Manage endpoints with the API or Terraform
You can also manage private endpoints programmatically, which helps when you run many of them or keep configuration in code. The Private Endpoints API covers the same lifecycle as the wizard: create, validate, activate, update pricing, disable, enable, and delete. Requests are authenticated with an organization Management API key. Keys created on a personal account are rejected, and the organization must have Private Endpoints enabled. The steps map to these calls:POST /api/v1/private-endpointscreates a hidden draft frommodel_permaslug,provider_slug,upstream_model_id, and, for providers that need it,base_url. You can also setpricing,declared_zdr, anddeclared_region.POST /api/v1/private-endpoints/{id}/validateruns the Test checks with the BYOK key saved in the workspace you pass asworkspace_id. The workspace must belong to your organization and have a key for the endpoint’s provider.POST /api/v1/private-endpoints/{id}/activatemakes a validated draft routable.
activate: { "workspace_id": "..." } in the create body:
PATCH /api/v1/private-endpoints/{id} (only drafts can be edited), then call /validate and /activate instead of creating it again.
Send an Idempotency-Key header to make create retry-safe. Repeating a request with the same key returns the endpoint the first request created, and reusing the key with a different body returns 422 idempotency_key_reused.
After activation, PUT /api/v1/private-endpoints/{id}/pricing updates the reported rates, and /disable and /enable stop or resume routing. DELETE /api/v1/private-endpoints/{id} removes an endpoint and stops routing to it. Pass draft_only=true to refuse the delete (409) if the endpoint has been activated.
Terraform
The OpenRouter Terraform provider includes anopenrouter_private_endpoint resource built on the same API:
terraform apply creates, validates, and activates the endpoint. Changing pricing updates it in place, while changing the model, provider, base URL, upstream model ID, declarations, or activate workspace replaces it. terraform destroy disables and deletes it, and terraform import openrouter_private_endpoint.gpt4o <endpoint-id> adopts an endpoint that already exists.
Endpoint limit
Each organization can have up to 10 private endpoints by default. Every endpoint you have created counts toward the limit, including endpoints that are still hidden because setup is not finished. If you think you will need more than 10 private endpoints, talk to your OpenRouter account representative about raising the limit for your organization.Who it’s for
Private Models is a good fit if:- You have a dedicated or fine-tuned deployment of a model in the OpenRouter catalog that you want to route through OpenRouter.
- Your endpoint is OpenAI-compatible, or close enough that we can integrate it quickly.
- You want your team or organization to access these models through OpenRouter without exposing them publicly.
- You’re on the Enterprise Plan.
In-Region Routing
A private endpoint may be eligible for in-region routing when OpenRouter is able to derive a region from its base URL, or when you declare a data region during private-endpoint setup. Endpoints with neither are routed on the globalopenrouter.ai domain. See the In-Region Routing guide for supported providers.