List model providers
const url = 'https://example.com/v1/providers?limit=25';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://example.com/v1/providers?limit=25' \ --header 'Authorization: Bearer <token>'Cursor-paginated. Optional ?feature= filters to providers whose metadata.features includes the given feature (exact match).
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”1..100. Default 25.
Opaque cursor from a prior response. Absent → first page.
For /v1/capabilities: prefix match on feature. For /v1/providers: exact match against metadata.features[].
Responses
Section titled “Responses”Page of providers.
object
object
Region the connection routes to. All models on this provider share the region (the same models served from two clouds or regions are separate providers). 'unspecified' when not region-scoped.
Models this connection exposes. Non-empty. models[i].name must be unique within the list.
object
Vendor-facing model id passed to the SDK (e.g. claude-sonnet-4-6).
Context window in tokens.
Features this model supports (tool-use, thinking, structured-output, …).
USD per 1K tokens. An adapter may take more rate fields (see the adapter’s README).
object
Best-effort p95 latency estimate in milliseconds. Varies by model.
Fallback cap on output tokens. Adapters that require max_tokens on every request (e.g. Anthropic) use this when ModelCallInput.maxOutputTokens is unset.
Short per-model description surfaced in logs.
Soft attributes for preference-ranking (local, lower-cost, higher-accuracy, …). Matched by string equality against Preference.feature.
Short human description of the connection.
Kind of resource this provider fulfils. Absent = llm-inference. Adapters for other kinds (embedding, gpu-compute, sandbox-exec, …) set this explicitly.
A fallback serves a capability only when no other provider satisfies it (e.g. kindgi dev’s scripted dev-echo); an agent turn routed to one carries a fallback-provider warning. Absent = false.
Example
{ "data": [ { "models": [ { "features": [ "structured-output" ] } ] } ]}Malformed query parameter.
object
object
Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).
Optional, kind-specific.
object
Server-assigned request id; also echoed via X-Request-Id header.
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": {}, "requestId": "example" }}Missing / malformed / expired / revoked bearer token.
object
object
Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).
Optional, kind-specific.
object
Server-assigned request id; also echoed via X-Request-Id header.
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": {}, "requestId": "example" }}