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

# モデル一覧の取得

> 利用可能なモデルの一覧を取得します

## はじめに

現在利用可能なモデルの一覧を取得します。このインターフェースは形式の自動検出に対応しており、手動で指定する必要はありません。

## 形式の自動検出

リクエストヘッダーに基づき、Anthropic形式、Gemini形式、またはOpenAI形式で自動的に返します。

## 認証

Bearerトークン。例: `Bearer sk-xxxxxxxxxx`

## リクエストヘッダー

レスポンス形式は、リクエストヘッダーに基づいて自動的に判別されます。

<ParamField header="x-anthropic-version" type="string">
  Anthropic形式のレスポンスを返します
</ParamField>

<ParamField header="x-goog-api-key" type="string">
  Gemini形式のレスポンスを返します
</ParamField>

<Note>
  デフォルトではOpenAI形式のレスポンスを返します
</Note>

## コード例

<Tabs>
  <Tab title="cURL">
    ```bash theme={null}
    curl https://api.mixroute.ai/v1/models \
      -H "Authorization: Bearer sk-xxxxxxxxxx"
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={null}
    from openai import OpenAI

    client = OpenAI(
        api_key="sk-xxxxxxxxxx",
        base_url="https://api.mixroute.ai/v1"
    )

    models = client.models.list()

    for model in models.data:
        print(f"Model ID: {model.id}, Provider: {model.owned_by}")
    ```
  </Tab>

  <Tab title="Node.js">
    ```javascript theme={null}
    const axios = require('axios');

    const response = await axios.get('https://api.mixroute.ai/v1/models', {
      headers: {
        'Authorization': 'Bearer sk-xxxxxxxxxx'
      }
    });

    console.log(response.data.data);
    ```
  </Tab>
</Tabs>

## レスポンスフィールド

| フィールド | 型 | 説明 |
| - | - | - |
| object | string | `list`に固定 |
| data | array | モデルリスト |
| data\[].id | string | モデルの一意の識別子 |
| data\[].object | string | `model`に固定 |
| data\[].created | integer | モデル作成時のタイムスタンプ（Unixタイムスタンプ） |
| data\[].owned\_by | string | モデルプロバイダー（例：openai、anthropic、google） |

## レスポンス例

```json theme={null}
{
  "object": "list",
  "data": [
    {
      "id": "gpt-5.5",
      "object": "model",
      "created": 1715232000,
      "owned_by": "openai"
    },
    {
      "id": "claude-opus-4-8",
      "object": "model",
      "created": 1743465600,
      "owned_by": "anthropic"
    },
    {
      "id": "gemini-3.5-flash",
      "object": "model",
      "created": 1746057600,
      "owned_by": "google"
    }
  ]
}
```

## HTTPステータスコード

| ステータスコード | 説明 |
| - | - |
| 200 | リクエスト成功 |
| 401 | APIキーが無効または期限切れ |
| 429 | リクエスト頻度が高すぎる |
| 500 | サーバー内部エラー |

## エラーレスポンスの例

```json theme={null}
{
  "error": {
    "message": "Invalid API key",
    "type": "invalid_request_error",
    "code": "invalid_api_key"
  }
}
```

## 注意事項

* 頻繁なリクエストを避けるため、モデルリストをキャッシュすることをおすすめします（推奨キャッシュ期間は1時間）。
* 返されるモデル一覧は、APIキーの権限に応じて動的に変化します
* アプリケーション起動時にこのインターフェースを呼び出して、利用可否を確認できます
* モデルごとの`created`タイムスタンプは大きく異なる場合があり、モデルのリリース時刻のみを表します
* Pythonの例には`openai`ライブラリが必要です：`pip install openai`
* Node.jsの例には`axios`ライブラリが必要です：`npm install axios`

<RequestExample>
  ```bash cURL theme={null}
  curl --request GET \
    --url https://api.mixroute.ai/v1/models \
    --header 'Authorization: Bearer sk-xxxxxxxxxx'
  ```

  ```python Python theme={null}
  from openai import OpenAI

  client = OpenAI(
      api_key="sk-xxxxxxxxxx",
      base_url="https://api.mixroute.ai/v1"
  )

  models = client.models.list()
  for model in models.data:
      print(f"Model ID: {model.id}")
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.mixroute.ai/v1/models', {
    headers: {
      'Authorization': 'Bearer sk-xxxxxxxxxx'
    }
  });
  const data = await response.json();
  console.log(data.data);
  ```

  ```php PHP theme={null}
  <?php
  $client = new GuzzleHttp\Client();
  $response = $client->get('https://api.mixroute.ai/v1/models', [
      'headers' => [
          'Authorization' => 'Bearer sk-xxxxxxxxxx'
      ]
  ]);
  echo $response->getBody();
  ```

  ```go Go theme={null}
  package main

  import (
      "net/http"
  )

  func main() {
      req, _ := http.NewRequest("GET", "https://api.mixroute.ai/v1/models", nil)
      req.Header.Set("Authorization", "Bearer sk-xxxxxxxxxx")
      http.DefaultClient.Do(req)
  }
  ```

  ```java Java theme={null}
  import java.net.http.*;
  import java.net.URI;

  HttpClient client = HttpClient.newHttpClient();
  HttpRequest request = HttpRequest.newBuilder()
      .uri(URI.create("https://api.mixroute.ai/v1/models"))
      .header("Authorization", "Bearer sk-xxxxxxxxxx")
      .GET()
      .build();
  HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
  System.out.println(response.body());
  ```

  ```ruby Ruby theme={null}
  require 'net/http'
  require 'json'

  uri = URI('https://api.mixroute.ai/v1/models')
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true

  request = Net::HTTP::Get.new(uri)
  request['Authorization'] = 'Bearer sk-xxxxxxxxxx'

  response = http.request(request)
  puts response.body
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "object": "list",
    "data": [
      {
        "id": "gpt-5.5",
        "object": "model",
        "created": 1715232000,
        "owned_by": "openai"
      },
      {
        "id": "claude-opus-4-8",
        "object": "model",
        "created": 1743465600,
        "owned_by": "anthropic"
      }
    ]
  }
  ```
</ResponseExample>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.