List models
Lists the model IDs the gateway can serve right now, in the OpenAI model-list format. The list comes from the gateway's own catalog, not from the model server. Each entry carries the ID you put in model; prices, context length and capabilities are not part of this response.
Prices, context length and capabilities per model are on the Models page.
/modelshttps://api.bricksum.com/v1/modelsAuthentication
Authentication is the same on every endpoint the gateway fronts, and is documented on the API Reference page.
Request
Support status
- supported
- The gateway handles it, or a published measurement shows it works.
- passed through
- Forwarded to the model server; not verified by Kiln.
- ignored
- Accepted with 200, but not applied. The rest of the response is normal.
- not supported
- Rejected with an error, or not working on the models named in the description.
query stringstringignoredThe endpoint takes no parameters. A query string is accepted and has no effect on the response. In the fallback described under Response body, it is not forwarded to the model server.
request bodynoneignoredA body sent with GET is not read. Send the request without one.
Only the authentication headers change the outcome, and they are the ones every endpoint takes. There is nothing else to send.
Response body
| Field | Type | Description |
|---|---|---|
| object | string | The literal "list". |
| data[]. | string | Model ID, for example qwen3-32b. Put this value in the model field of an inference request. |
| data[]. | string | The literal "model". |
| data[]. | integer | Unix seconds, stamped when the gateway builds the response. Every entry of one response carries the same value, and the value moves between calls. It does not record when the model was added. |
| data[]. | string | The literal "bricksum". |
Errors
Errors from this endpoint use the OpenAI envelope: {"error": {"message", "type", "param", "code"}}. Rows with an empty error.code cell are returned by the gateway before the request reaches the endpoint, and use the body shown under the table.
Every status code is listed on the Errors page.
| Status · error.code | Cause | What to do |
|---|---|---|
| 405method_not_allowed | The method is not GET. | Send the request with GET. The response carries an Allow: GET header. |
| 502 | Fallback only: the catalog was empty and the model server could not be reached. The body is the plain text upstream error, not JSON. | Retry after a short wait. |
| 503 | Fallback only: the catalog was empty and no model server could be picked. The body is the plain text no upstream available, not JSON. | Retry after a short wait, and check the status page. |
401, 402, 403 and 429 come from the gateway before the request reaches this endpoint. They are listed once on the API Reference page.
Authentication, credit, budget and rate-limit (requests/min, tokens/min) errors are returned by the gateway before the request reaches this endpoint. Their body carries error.type instead of error.code:
{
"error": {
"message": "invalid API key",
"type": "authorization"
}
}Limits
- Billing: not billed. The gateway publishes no usage event for this endpoint, and the response has no X-Neocloud-Generation-Id header.
- Contents: the list holds the models the gateway serves. Deprecated and coming-soon models are left out, so an ID that is missing here is rejected with 404 (model_not_found) by the inference endpoints.
- Empty catalog: when the gateway can name no servable model, it proxies the request to a model server and returns that server's own response. The IDs in that body are the model server's, so they can differ from the IDs the gateway serves.
- No single-model lookup: GET /models/{model} is not served. The gateway sends that path to a service with no handler for it, so it answers a plain-text 404 rather than an error object. Read one model's entry from the list above.
Headers and retry guidance for 429 are on the Rate limits page.