Source: https://docs.cumuluslabs.io/reference/models.list
Content version: fea10c5a

# models.list

List the tenant's model catalog, optionally for one task

## Request {#request}

`GET /api/v1/models`

- MCP: `models_list`
- SDK: `client.models.list` (SDK path arguments use `path`; MCP uses `params`).
- Minimum API key role: **viewer**.
- Idempotency: **none**.

Use the request schema below. Read IDs from earlier operation results.

## Input schema {#input-schema}

```json
{
  "parameters": [
    {
      "name": "task",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "enum": [
          "chat",
          "embedding",
          "voice",
          "stt",
          "tts"
        ]
      }
    }
  ],
  "requestBody": null
}
```

## Responses {#responses}

```json
{
  "200": {
    "description": "List the tenant's model catalog, optionally for one task",
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ModelsListResponse200"
        }
      }
    }
  },
  "4XX": {
    "description": "Typed error (ApiError)",
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ApiError"
        }
      }
    }
  },
  "5XX": {
    "description": "Typed error (ApiError)",
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ApiError"
        }
      }
    }
  }
}
```

## Referenced schemas {#schemas}

```json
{
  "components": {
    "schemas": {
      "ModelsListResponse200": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "model_id": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "\\S"
                },
                "provider": {
                  "type": "string",
                  "minLength": 1,
                  "pattern": "\\S"
                },
                "tier": {
                  "type": "string",
                  "enum": [
                    "frontier",
                    "cumulus-served",
                    "customer-gpu"
                  ]
                },
                "route_kind": {
                  "type": "string",
                  "enum": [
                    "frontier",
                    "flam",
                    "oss"
                  ]
                },
                "context_window": {
                  "type": "integer",
                  "minimum": 0
                },
                "input_cost_per_1k": {
                  "type": "number",
                  "minimum": 0,
                  "nullable": true
                },
                "output_cost_per_1k": {
                  "type": "number",
                  "minimum": 0,
                  "nullable": true
                },
                "availability": {
                  "type": "string",
                  "enum": [
                    "ready",
                    "not-configured",
                    "unavailable"
                  ]
                },
                "capabilities": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "text",
                      "vision",
                      "tool_calling",
                      "structured_output",
                      "embedding",
                      "audio",
                      "reasoning",
                      "voice",
                      "stt",
                      "tts",
                      "transcription",
                      "speech_synthesis",
                      "streaming"
                    ]
                  }
                },
                "tool_calling": {
                  "type": "boolean"
                },
                "task": {
                  "type": "string",
                  "enum": [
                    "chat",
                    "embedding",
                    "voice",
                    "stt",
                    "tts"
                  ]
                },
                "embedding_dim": {
                  "type": "integer",
                  "exclusiveMinimum": true,
                  "minimum": 0,
                  "nullable": true
                },
                "deployment_backend": {
                  "type": "string",
                  "minLength": 1
                },
                "health_state": {
                  "type": "string",
                  "minLength": 1,
                  "nullable": true
                },
                "supports_streaming": {
                  "type": "boolean",
                  "nullable": true
                },
                "supports_parallel_tool_calls": {
                  "type": "boolean",
                  "nullable": true
                },
                "data_policy": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/ModelPolicyValue"
                  }
                },
                "regions": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "eval_scores": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "number"
                  }
                },
                "latency_ms_p50": {
                  "type": "number",
                  "minimum": 0,
                  "nullable": true
                },
                "latency_ms_p95": {
                  "type": "number",
                  "minimum": 0,
                  "nullable": true
                }
              },
              "required": [
                "model_id",
                "provider",
                "tier",
                "route_kind",
                "context_window",
                "input_cost_per_1k",
                "output_cost_per_1k",
                "availability",
                "capabilities",
                "tool_calling",
                "task",
                "embedding_dim",
                "deployment_backend",
                "health_state",
                "supports_streaming",
                "supports_parallel_tool_calls",
                "data_policy",
                "regions",
                "eval_scores",
                "latency_ms_p50",
                "latency_ms_p95"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "items"
        ],
        "additionalProperties": false
      },
      "ModelPolicyValue": {
        "nullable": true,
        "description": "A model data-policy value: any JSON value."
      },
      "ApiError": {
        "type": "object",
        "properties": {
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "enum": [
                  "unauthenticated",
                  "forbidden",
                  "not_found",
                  "conflict",
                  "invalid_request",
                  "idempotency_conflict",
                  "policy_denied",
                  "capability_unavailable",
                  "provider_unavailable",
                  "knowledge_unavailable",
                  "publication_invalid",
                  "run_not_active",
                  "rate_limited",
                  "outcome_unknown",
                  "internal"
                ]
              },
              "message": {
                "type": "string"
              },
              "retryable": {
                "type": "boolean"
              },
              "outcome": {
                "type": "string",
                "enum": [
                  "none",
                  "unknown"
                ]
              },
              "details": {
                "type": "object",
                "additionalProperties": {}
              }
            },
            "required": [
              "code",
              "message",
              "retryable",
              "outcome"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "error"
        ],
        "additionalProperties": false
      }
    }
  }
}
```

## Errors and recovery {#errors}

See [API error handling](https://docs.cumuluslabs.io/api#errors) and [Troubleshooting](https://docs.cumuluslabs.io/troubleshooting).

## Related guides {#related-guides}

- [Using the API](https://docs.cumuluslabs.io/api)
