Providers
An AI provider is an upstream LLM service the gateway can call: one of Zuplo's built-in providers (OpenAI, Anthropic, Azure AI, Bedrock, …), which every bucket lists and nobody can change, or a custom OpenAI-compatible endpoint defined in the bucket. A provider is a catalog entry. It holds no key and routes nothing until a provider assignment uses it.
GET …/ai/providers/{providerId}/models lists the models a provider offers,
with their list prices: Zuplo's catalog for a built-in provider, and the
models it was defined with for a custom one.
List AI providers
Lists the AI providers the gateway can use: Zuplo's built-in providers
(Anthropic, OpenAI, Amazon Bedrock, …) first, ordered by type, then the
custom providers defined in this bucket, oldest first. A provider is a
catalog entry and holds no key: to route requests to one, create a provider
assignment (POST …/ai/provider-assignments).
path Parameters
bucketIdThe bucket ID (bckt_…). Everything in a bucket is addressed under it.
query Parameters
typeOnly return providers of this type.
The kind of upstream provider. Every built-in provider has its own type;
custom is a custom provider, any OpenAI-compatible endpoint. zuplo-demo is
Zuplo's demo provider. New values may be added.
limitThe maximum number of items to return.
offsetThe number of items to skip before the first item returned.
List AI providers › Responses
A page of AI providers.
The providers on this page.
limitThe page size that was applied.
offsetThe number of items skipped before this page.
totalThe number of items in the whole collection.
hasMoreWhether there are more items after this page.
nextThe relative URL of the next page, or null on the last page.
Create a custom AI provider
Defines a custom provider: an OpenAI-compatible endpoint that is not one of
Zuplo's built-in providers, and the models it serves. Its type is
custom. A provider holds no key and routes nothing on its own: assign it
to the gateway with POST …/ai/provider-assignments, which names the
environment variable that holds its key.
name must be unique among the bucket's custom providers. Each model needs
its kind and pricing, because a custom provider's models are not in
Zuplo's catalog. Built-in providers cannot be created.
path Parameters
bucketIdThe bucket ID (bckt_…). Everything in a bucket is addressed under it.
Create a custom AI provider › Request Body
nameThe provider's display name, unique among the bucket's custom providers.
baseUrlThe OpenAI-compatible endpoint.
The models the provider offers, each with its kind and prices.
descriptionA note for people managing the gateway.
Create a custom AI provider › Responses
The custom provider was created.
idThe provider ID: a built-in provider's name (Anthropic, BedrockRuntime,
…), or a custom provider's ID (aiprov_…).
bucketIdThe bucket that defines the custom provider. Null for a built-in provider.
typeThe kind of upstream provider. Every built-in provider has its own type;
custom is a custom provider, any OpenAI-compatible endpoint. zuplo-demo is
Zuplo's demo provider. New values may be added.
builtInWhether this is one of Zuplo's built-in providers, which are read-only. False for a custom provider.
nameThe provider's display name. It is not a routing prefix; an assignment's label is.
descriptionA note for people managing the gateway.
baseUrlThe upstream endpoint. Null for a built-in provider whose endpoint is set
per assignment (bedrock-mantle, azure-ai, vertex-ai).
createdOnWhen the custom provider was defined. Null for a built-in provider.
updatedOnWhen the custom provider was last changed. Null for a built-in provider.
Get an AI provider
Returns a built-in or custom AI provider. Its models, with their prices, are
at GET …/ai/providers/{providerId}/models.
path Parameters
bucketIdThe bucket ID (bckt_…). Everything in a bucket is addressed under it.
providerIdThe AI provider ID, a built-in provider's name (Anthropic) or a custom provider's ID (aiprov_…).
Get an AI provider › Responses
The AI provider.
idThe provider ID: a built-in provider's name (Anthropic, BedrockRuntime,
…), or a custom provider's ID (aiprov_…).
bucketIdThe bucket that defines the custom provider. Null for a built-in provider.
typeThe kind of upstream provider. Every built-in provider has its own type;
custom is a custom provider, any OpenAI-compatible endpoint. zuplo-demo is
Zuplo's demo provider. New values may be added.
builtInWhether this is one of Zuplo's built-in providers, which are read-only. False for a custom provider.
nameThe provider's display name. It is not a routing prefix; an assignment's label is.
descriptionA note for people managing the gateway.
baseUrlThe upstream endpoint. Null for a built-in provider whose endpoint is set
per assignment (bedrock-mantle, azure-ai, vertex-ai).
createdOnWhen the custom provider was defined. Null for a built-in provider.
updatedOnWhen the custom provider was last changed. Null for a built-in provider.
Update a custom AI provider
Updates a custom provider with JSON Merge Patch semantics. Omitted
properties are unchanged and null clears a property. Built-in providers
are read-only: changing one fails with 409.
models replaces all of the provider's models, so send the complete list.
Removing a model fails with 409 while a provider assignment still selects
it. When a provider assignment uses the provider, a change deploys the
gateway: it creates a zuplo deployment of the production environment. Read
the newest one until it has succeeded; that does not guarantee every edge
serves the change yet.
path Parameters
bucketIdThe bucket ID (bckt_…). Everything in a bucket is addressed under it.
providerIdThe AI provider ID, a built-in provider's name (Anthropic) or a custom provider's ID (aiprov_…).
Update a custom AI provider › Request Body
nameThe provider's display name, unique among the bucket's custom providers.
descriptionA note for people managing the gateway. Null clears it.
baseUrlThe OpenAI-compatible endpoint.
Replaces all of the models the provider offers. Send the complete list.
Update a custom AI provider › Responses
The updated custom provider.
idThe provider ID: a built-in provider's name (Anthropic, BedrockRuntime,
…), or a custom provider's ID (aiprov_…).
bucketIdThe bucket that defines the custom provider. Null for a built-in provider.
typeThe kind of upstream provider. Every built-in provider has its own type;
custom is a custom provider, any OpenAI-compatible endpoint. zuplo-demo is
Zuplo's demo provider. New values may be added.
builtInWhether this is one of Zuplo's built-in providers, which are read-only. False for a custom provider.
nameThe provider's display name. It is not a routing prefix; an assignment's label is.
descriptionA note for people managing the gateway.
baseUrlThe upstream endpoint. Null for a built-in provider whose endpoint is set
per assignment (bedrock-mantle, azure-ai, vertex-ai).
createdOnWhen the custom provider was defined. Null for a built-in provider.
updatedOnWhen the custom provider was last changed. Null for a built-in provider.
Delete a custom AI provider
Deletes a custom provider and its models. Fails with 409 while a provider
assignment uses it: delete the assignment first. Built-in providers are
read-only: deleting one fails with 409. A repeated delete returns 404,
which clients should treat as success.
path Parameters
bucketIdThe bucket ID (bckt_…). Everything in a bucket is addressed under it.
providerIdThe AI provider ID, a built-in provider's name (Anthropic) or a custom provider's ID (aiprov_…).
Delete a custom AI provider › Responses
The custom provider was deleted.
List a provider's models
Lists the models a provider offers, with their list prices, ordered by kind
and name. For a built-in provider, they are the models Zuplo's catalog knows
for it; for a custom provider, the models it was defined with. A provider
assignment selects some of them by name in its models.
path Parameters
bucketIdThe bucket ID (bckt_…). Everything in a bucket is addressed under it.
providerIdThe AI provider ID, a built-in provider's name (Anthropic) or a custom provider's ID (aiprov_…).
query Parameters
kindOnly return models of this kind.
What a model is used for. New values may be added.
limitThe maximum number of items to return.
offsetThe number of items to skip before the first item returned.
List a provider's models › Responses
A page of the provider's models.
The models on this page.
limitThe page size that was applied.
offsetThe number of items skipped before this page.
totalThe number of items in the whole collection.
hasMoreWhether there are more items after this page.
nextThe relative URL of the next page, or null on the last page.
Get a provider's model
Returns one model a provider offers, with its list prices.
path Parameters
bucketIdThe bucket ID (bckt_…). Everything in a bucket is addressed under it.
providerIdThe AI provider ID, a built-in provider's name (Anthropic) or a custom provider's ID (aiprov_…).
modelIdThe ID of a model the provider offers.
Get a provider's model › Responses
The model.
idThe model ID.
providerIdThe provider that offers the model.
nameThe model's name at the provider, unique per provider. A provider assignment selects the model by this name.
kindWhat a model is used for. New values may be added.
statusWhether a model is current or on its way out. New values may be added.
Prices in US dollars per one million tokens. They drive cost metering and cost budgets. Null means the token type is not priced.