Skip to content
View as Markdown

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.

GET/models
URL
https://api.bricksum.com/v1/models

Authentication

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 stringstringignored

    The 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 bodynoneignored

    A 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

FieldTypeDescription
objectstringThe literal "list".
data[].idstringModel ID, for example qwen3-32b. Put this value in the model field of an inference request.
data[].objectstringThe literal "model".
data[].createdintegerUnix 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[].owned_bystringThe 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.codeCauseWhat to do
405method_not_allowedThe method is not GET.Send the request with GET. The response carries an Allow: GET header.
502Fallback 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.
503Fallback 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:

json
{
  "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.