> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mithunai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List the models an assistant can use

> List the models this deployment can actually reach, which is what an assistant may use. A deployment with no provider configured can neither answer nor ingest.

The list contains the catalogued models of every provider this deployment can reach. A provider the deployment has no credential for contributes no models, so a deployment with no provider configured returns an empty `data` array rather than an error.

Each model's `id` is exactly the string you put in an assistant's `model` field. See [Configure an assistant](/assistants/configure). Embedding models are listed too; an assistant answers with a model that has the `chat` capability.

The response is not paginated. It requires a role that can read assistants, which every role except `dataset_operator` has.

## Response

<ResponseField name="data" type="object[]" required>
  The models, in catalogue order.

  <Expandable title="properties">
    <ResponseField name="id" type="string">
      The qualified selector, `provider/name`. Use this as an assistant's `model`.
    </ResponseField>

    <ResponseField name="provider" type="string">
      The provider: `anthropic`, `openai` or `google`.
    </ResponseField>

    <ResponseField name="name" type="string">
      The model name within its provider.
    </ResponseField>

    <ResponseField name="capabilities" type="string[]">
      What the model supports, sorted alphabetically. Values: `chat`, `embedding`, `rerank`,
      `streaming`.
    </ResponseField>

    <ResponseField name="context_window" type="integer | null">
      Input tokens the model accepts, when known.
    </ResponseField>

    <ResponseField name="max_output_tokens" type="integer | null">
      Output tokens the model can produce, when known.
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={"theme":{"light":"github-light","dark":"github-dark"}}
  curl --request GET "$MITHUNAI_URL/arukz/api/v1/models" \
    --header "Authorization: Bearer $MITHUNAI_API_KEY"
  ```

  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import os, requests

  response = requests.get(
      f"{os.environ['MITHUNAI_URL']}/arukz/api/v1/models",
      headers={"Authorization": f"Bearer {os.environ['MITHUNAI_API_KEY']}"},
      timeout=60,
  )
  response.raise_for_status()
  print(response.json())
  ```

  ```javascript JavaScript theme={"theme":{"light":"github-light","dark":"github-dark"}}
  const response = await fetch(`${process.env.MITHUNAI_URL}/arukz/api/v1/models`, {
    headers: { Authorization: `Bearer ${process.env.MITHUNAI_API_KEY}` },
  })
  console.log(await response.json())
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={"theme":{"light":"github-light","dark":"github-dark"}}
  {
    "data": [
      {
        "id": "anthropic/claude-sonnet-5",
        "provider": "anthropic",
        "name": "claude-sonnet-5",
        "capabilities": ["chat", "streaming"],
        "context_window": 1000000,
        "max_output_tokens": 128000
      },
      {
        "id": "openai/text-embedding-3-small",
        "provider": "openai",
        "name": "text-embedding-3-small",
        "capabilities": ["embedding"],
        "context_window": null,
        "max_output_tokens": null
      }
    ]
  }
  ```

  ```json 403 theme={"theme":{"light":"github-light","dark":"github-dark"}}
  { "code": "authorization_error", "message": "You do not have permission to perform this action." }
  ```
</ResponseExample>
