Skip to main content

5. Models & Providers

Connect where models run. Publish one name your clients call forever.

Two things live on one page, in two tabs:

TabWhat it holds
ProvidersWhere the models actually run — a contract you already hold with a vendor.
ModelsThe names your clients call. Each one routes to one or more providers.

Open Models & Providers in the left navigation, just under Clusters.

The Models and Providers page with its Models and Providers tabs, Providers tab selected and a few providers listed

Who can see and change this page

Project admins and account admins can add, edit and remove providers and models. Project readers and account readers can view them. Other project members cannot open the page.

A model is not owned by one provider

A model you publish can route to several providers, so the two lists sit side by side rather than one inside the other.

Connect a provider​

On the Providers tab, choose Add provider, then pick one:

ProviderHow it gets its credential
AnthropicAn API key — from your own secret store, or stored by Onehouse.
OpenAIAn API key — from your own secret store, or stored by Onehouse.
BasetenAn API key, plus your Baseten base URL. It is prefilled with https://inference.baseten.co/v1; a dedicated deployment has its own.
AWS BedrockNo key. The gateway calls Bedrock as your data plane's own IAM role.

The Add model provider form with the four provider cards and the credential type toggle

Give it a Display name. For the three key-based providers, choose where the key lives with Credential type:

Credential typeWhat happens
Secret ManagerYou give the reference to a secret in your own store: its ARN on AWS. The gateway reads it on each request. Nothing is copied.
Direct credentialPaste the key once. Onehouse stores it and never shows it again. AWS projects only.
Secret Manager needs the onehouse tag

On AWS the gateway reads your secret as your data plane's IAM role, which may read only secrets tagged accessibleTo = onehouse. A secret without the tag fails the test as secret not readable. Store the key as JSON under apiKey — {"apiKey": "<key>"} — not as plain text. See Secrets Management.

Paste a reference, not the key itself. The form refuses a value that looks like a key (sk-, sk-ant-, AKIA…) in the reference field.

Agents never see a provider key

Whichever you choose, the credential stays with the gateway. A client calling through it uses only its own short-lived token.

Rotation policy​

Rotation policy is Rotates every 90 days (the default), Rotates every 180 days, or No rotation. It drives an overdue warning on the provider. Nothing rotates the key for you, and nothing stops working when it is overdue.

To rotate:

  • Secret Manager — rotate the secret in your own store. The gateway reads it fresh on each request, so there is nothing to do here.
  • Direct credential — open the provider, choose Edit, paste the new key, pass the test, and choose Save provider.

AWS Bedrock​

Bedrock holds no key, so the form asks only for a name and a base URL. Your data plane's IAM role needs Bedrock access, which you switch on in your customer stack.

The base URL decides which model families you reach:

Base URL ends inServes
/anthropic/v1Claude models
/openai/v1OpenAI-API model families, such as OpenAI, Mistral and DeepSeek
https://bedrock-runtime.<region>.amazonaws.com/anthropic/v1
  • Leave the base URL empty and it defaults to your project's region with /anthropic/v1.
  • It must be the Bedrock endpoint in your project's own region, or a VPC endpoint for it.
  • To reach both families, add Bedrock twice — once with each base URL.

Bedrock lists every model in the region, including ones your AWS account has not enabled. Those show Not enabled and cannot be used until an AWS admin enables them once in the Bedrock console.

Bedrock is for AWS projects

Bedrock appears only on projects that run on AWS.

Test before you save​

Choose Test connection. Add provider stays disabled until the test passes. It checks two things in turn: that the data plane can reach the provider, then that the credential is accepted and can list models.

ResultMeans
PassedReachable, authenticated, and the credential can list models.
Failed — reachable but rejectedA credential problem, not the network. Check the key is current in the provider's console. For Bedrock, the data plane's role is refused Bedrock access.
Failed — unreachableNothing answered. Usually egress: no NAT route, or a firewall or proxy blocking outbound 443. The credential was never sent.
Failed — secret not readableThe gateway could not read the credential at all. Under Secret Manager, a read grant or the accessibleTo tag is missing in your account.
Failed — no AWS identityBedrock only. The data plane host has no AWS identity to call Bedrock with. Check the host's IAM role.
Failed — no verdictThe check did not finish. Choose Retest.

After saving you land on the provider's page: its connection settings and every model it can serve.

A provider detail page showing connection settings and the models it serves

Change or delete a provider​

  • Edit reopens the form. Change any field, pass the test again, and choose Save provider.
  • Delete stops the provider serving the gateway. It is refused while any model still routes to it — repoint or remove those models first.

Models a provider no longer lists​

Where your project has it, Refresh providers on the Models tab re-tests every provider behind a published model and re-reads the models each one lists. It may not be available on your project yet. A model the provider stopped listing is flagged Not listed anymore, and calls to it are likely to fail. Bedrock also flags models it has deprecated, with the date they retire. Repoint the model to another destination on its Routing tab.

Publish a model​

Your clients should never name a provider. They name a model you publish, and you decide what serves it.

- "model": "claude-opus-4-5-20260101"   # tied to one provider, one version
+ "model": "claude-opus-5" # yours, stable, swappable

Change what sits behind that name and nothing in any client has to change.

On the Models tab, choose Add a model. It takes two steps:

  1. Pick a model from a provider you have connected.
  2. Configure it — its Alias name (the name your clients send as model), its routing, and who may call it.

An alias name uses lowercase letters, digits, dots, dashes and underscores, up to 64 characters.

Picking a model in the Add a model flow

You can also start from a provider: its page lists every model the credential reaches. Select models and choose Expose to publish an alias for each.

Publishing several at once

You can pick up to 100 models in step 1 and publish them together. Each alias defaults to the provider's model id. They all start with no access, so grant it afterwards.

Copy the name, not the model id

Each model on the Models tab has a copy button beside its name. That name is what goes in your client's model field.

Routing​

When more than one provider serves the same model, weights split its traffic, and a failing provider fails over to the next. See Routing and failover.

Only a published name works​

The gateway routes on the names you publish and nothing else. A client asking for a model you have not published is refused rather than quietly forwarded.

A new model reaches nobody

Publishing a model does not grant anyone access to it. Grant access on its Permissions tab — see Permissions.

Remove a model​

Remove alias stops the gateway serving the name and removes every grant on it. It is permanent. See Routing and failover.

See what a model is doing​

Open a model to see four tabs: Overview, Routing, Permissions and Activity. Activity lists its recent calls — who called, which provider served it, and how many tokens it used.

A model&#39;s Activity tab

Next​

→ Routing and failover, or 6. Tool servers