GET /v1/infer/models
The OpenAI model list for the models this node serves, each with a `b3os` object: context length, quantization, whether it supports tools, JSON Schema output and image input, the largest accepted request, and your per-model token and request limits. Chat models are listed while the node's model runtime is configured (one that is restarting is still listed; requests get `503` with `Retry-After`); speech models while the voice service answers.

Authentication

Bearer Token (b3os_sk_ API key or b3os_pat_ token) API Key (cookie: __Host-b3os_session)

Responses

200 The models.
application/json
object string REQUIRED
Enum: list
data object[] REQUIRED
Array of:
id string REQUIRED
object string REQUIRED
Enum: model
created integer REQUIRED
owned_by string REQUIRED
b3os object REQUIRED
B3OS extension with what the model supports and your limits on it.
kind string REQUIRED
Enum: chat, embedding, speech
context_length integer | null REQUIRED
quantization string | null REQUIRED
tools boolean REQUIRED
json_schema boolean REQUIRED
image_input boolean REQUIRED
max_request_bytes integer REQUIRED
limits object REQUIRED
tpm integer | null REQUIRED
Tokens per minute for your organization.
rpm integer | null REQUIRED
401 Missing or invalid credentials (`unauthorized`).
403 The key lacks `infer:run` or `infer:read` (`forbidden`), or the egress guard refused an image URL (`egress_denied`).
429 A limit applies (`rate_limited` for requests, tokens or remote image bytes per minute, `concurrency_limited` for requests in flight for the organization, `quota_exceeded`; `credits_exhausted` arrives as 402).
500 Something failed inside B3OS (`internal`).
503 The model runtime, the voice service or the B3IQ gateway route is restarting, overloaded or not set up on this node (`infer_backend_unavailable`, `capacity_unavailable`), or the node is unavailable (`node_unavailable`).
curl -X GET 'https://beta-api.b3os.org/v1/infer/models' \  -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch('https://beta-api.b3os.org/v1/infer/models', {  method: 'GET',  headers: {      "Authorization": "Bearer YOUR_API_TOKEN"  }});const data = await response.json();console.log(data);
import requestsheaders = {    'Authorization': 'Bearer YOUR_API_TOKEN'}response = requests.get('https://beta-api.b3os.org/v1/infer/models', headers=headers)print(response.json())
200 Response
{  "object": "list",  "data": [    {      "id": "b3os/qwen3.5-9b",      "object": "model",      "created": 1772197106,      "owned_by": "b3os",      "b3os": {        "kind": "chat",        "context_length": 32768,        "quantization": "fp8",        "tools": true,        "json_schema": true,        "image_input": true,        "max_request_bytes": 10485760,        "limits": {          "tpm": 200000,          "rpm": 600        }      }    },    {      "id": "kokoro-82m",      "object": "model",      "created": 0,      "owned_by": "b3os",      "b3os": {        "kind": "speech",        "context_length": null,        "quantization": null,        "tools": false,        "json_schema": false,        "image_input": false,        "max_request_bytes": 65536,        "limits": {          "tpm": null,          "rpm": 300        }      }    }  ]}
Ask a question... ⌘I