workspace_id, and API keys use workspace-specific secret ids. Clients do not need to contact each model provider directly to build a model picker.
CLI-backed agent runtimes are not provider adapters. Use CLI Runtime API for runtime listing, runtime model catalogs, approvals, and cliAgentRuntime turn execution.
Use these methods when a client needs to show available providers for a workspace, fetch model catalogs, or update the API key used by that workspace.
Methods
Listing providers
provider/list requires the workspace id because provider configuration belongs to a workspace on the gateway.
name is the stable provider identifier used in model_provider, provider/models/list, and provider configuration methods. proxy_url, when present, is the gateway-side network route for that provider; clients should display it as configuration state, not as a secret-bearing URL.
Listing models
Useprovider/models/list after the user selects a provider. The gateway returns normalized metadata that a client can use for filtering, badges, warnings, or default selection.
null for limits, pricing, lifecycle state, and individual capabilities.
Embedding and transcription catalogs use the same normalized model shape, but are separate methods because these models serve gateway services rather than ordinary chat selection. Use the embedding catalog for thread-context/vector-search configuration and the transcription catalog for voice input settings.
Model metadata
ProviderModelInfo is the normalized model object.
Clients should select by
id, display name when present, and tolerate metadata fields that are null.
Reasoning metadata
ProviderModelCapabilities.reasoning describes model-level reasoning controls when the provider or runtime can report them.
Shared client helpers normalize effort labels and order known values for model selectors. Clients should only show a reasoning effort picker when
supported is true and effort_options is non-empty. If the user changes provider or model, clear the selected effort unless a resolved thread selection explicitly carries one.
Setting an API key
API keys are stored in the gateway keystore under the workspace id and provider name. If the desktop app connects to a remote gateway, the key is stored on that remote gateway, not in the desktop process.provider/models/list for that provider because a newly valid credential can change what the gateway can discover.
Configuring a provider proxy
provider/configure can update a workspace provider proxy without changing its API key. Pioneer validates HTTP and SOCKS proxy URLs before storing them in the gateway keystore. The proxy is applied by the gateway when it creates the provider HTTP client, so it affects model discovery and provider requests from that gateway.
Send clear_proxy: true to remove the proxy. Do not send proxy_url and clear_proxy together. The response reports whether the proxy changed or was deleted and returns the current URL when one is configured.
Deleting an API key
Client behavior
Provider setup is workspace-local inside a gateway. A client connected to three gateways should show provider status for the selected workspace on the selected gateway, because each workspace may have different keys and each gateway may have different local runtime availability and network access. For ordinary API-provider thread creation and turn execution, pass the selected provider id throughmodel_provider and the selected model id through model. For CLI-backed turns, pass the selected runtime through execution_backend instead. See Threads API, Turns API, and CLI Runtime API.
When a client has a selected reasoning effort, include it in the thread or turn model selection path that supports reasoning effort. Do not invent effort values: use the canonical values returned in model metadata or normalized by shared client helpers.