All pages

List models

GET /v1/models returns every chat model in the standard OpenAI list shape ({"object":"list","data":[...]}) plus Hormouz extras such as pricing, context length, and capabilities. OpenAI-compatible tools (IDE assistants included) discover the catalogue through this endpoint. Image, video, and audio models are called through predictions, and the public models pages list all of them.

GET/v1/modelsBearer auth

List available models

Returns the model catalogue in the OpenAI-standard list shape ({"object":"list","data":[…]}), so OpenAI-compatible clients and IDE tools (Cursor, VSCode Copilot, Zed) can discover models.

The response is unpaginated: clients fetch the list once.

Every model callable through an OpenAI-standard endpoint is listed, and each entry carries an api_shape telling you which endpoint that is:

api_shapeEndpoint
chat_completionsPOST /v1/chat/completions
embeddingsPOST /v1/embeddings
speechPOST /v1/audio/speech
transcriptionsPOST /v1/audio/transcriptions

Chat models are listed first, so a model picker that renders this list in order opens on them.

Image and video models are not listed: they are served by POST /v1/predictions, which is not an OpenAI-standard endpoint, so no OpenAI-compatible client can call them. Browse those on the models page of your Hormouz dashboard.

Parameters

FieldinTypeDescription
api_shapequerystring

Return only models of one shape. Omit to get everything.

Useful when a client validates a configured model against this list. For example, an embeddings integration can request ?api_shape=embeddings.

An unrecognised value is a 400, never an empty list, so a typo cannot look like "this account has no such models".

Example

Responses

200

OpenAI-standard list of models.

400

The api_shape value is not one of the four listed shapes.

401

Authentication failed. Either the Authorization header is missing, the key format is invalid, or the key doesn't match any active account.

{
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Authentication required",
    "status": 401
  }
}
429

Too many requests. Back off and retry after a short delay. Check the Retry-After header for guidance.

Updated 2026-10-13