AI models
Use bctrl.ai.models to discover the models BCTRL can use for hosted Agent
execution. Use bctrl.ai.credentials when a model should run with a
customer-owned provider key. A model catalog entry and a saved credential are
different resources:
The model catalog is the source of truth for availability. Providers and model IDs can change as the catalog evolves, so discover them at runtime instead of hard-coding a complete list.
Choose a model
List recommended models:
To inspect the full catalog, omit the filters. You can derive the currently available providers from the response:
Use the returned model ID when creating a Conversation or sending a message:
Model filters
Providers and support status
The model catalog currently uses these provider identifiers:
The catalog status tells you how to choose among returned models:
managed: true means BCTRL-managed access is available for that model. When a
model requires your own provider account, save a credential and select it with
auth as shown below.
Model fields
Store a provider credential
Create a credential when an Agent should use your provider account:
The API key is accepted only when creating or updating the credential. It is not returned by list, get, or update responses. Use the credential ID in a Space environment or a saved model selection.
For an OpenAI-compatible provider, set provider: "custom" and provide a
baseUrl:
Credential fields
baseUrl is valid only for provider: "custom". A disabled credential may be
created without an API key, but it cannot be used until enabled with a key.
Credentials support these provider identifiers:
The credential provider set is intentionally smaller than the model catalog:
some catalog providers are reached through another provider or through an
OpenAI-compatible custom endpoint.
Saved model selections
The Space environment default uses AiStoredModelSelection. It is either a model
ID string or an object when the model needs explicit authentication or
controls. The model ID is always required in the object form.
The short form is usually enough:
Use a saved credential with the object form:
The object form has this shape:
When auth names a saved credential, the provider comes from that credential;
do not send a separate provider in the same selection.
Selection fields
The selection also accepts advanced generation, tool, routing, and provider options defined by the SDK type. Use the model capability flags before sending those options; an option supported by one provider or model may not be valid for another.
Manage credentials
Credential responses expose metadata only:

