> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.beatapi.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.beatapi.io/_mcp/server.

# Text API

> 1 つの API キーで、OpenAI、Anthropic、Gemini 互換形式から BeatAPI の公開テキストモデルを呼び出します。

# Text API

BeatAPI は、公開テキストモデルを同期型のトークン課金 API として提供します。1 つの BeatAPI キーを使い、アプリケーションに合う通信形式を選んでください。

| 形式                      | エンドポイント                                | 適した用途               |
| ----------------------- | -------------------------------------- | ------------------- |
| OpenAI Responses        | `POST /v1/responses`                   | 推論、ツール、構造化出力、新規連携   |
| OpenAI Chat Completions | `POST /v1/chat/completions`            | 既存の OpenAI チャット連携   |
| Anthropic Messages      | `POST /v1/messages`                    | 既存の Messages SDK 連携 |
| Gemini 互換               | `POST /v1beta/models/{model}:{action}` | 既存の Gemini SDK 連携   |

`GET /v1/models` で、利用環境で有効なモデルを取得できます。テキスト呼び出しは JSON を直接返すか、Server-Sent Events でストリーミングします。非同期の BeatAPI Task は作成しません。

#### [GPT-6.1 Sol](/text-api/gpt-6-1-sol)

1.05M コンテキストのコーディングとエージェントワークフロー。Responses API の例を掲載しています。

#### [GPT-5.6](/text-api/gpt-5-6)

Sol、Terra、Luna を選び、互換形式のリクエストを利用します。

#### [GPT-6 Astra](/text-api/gpt-6-astra)

入力トークンが 272K を超えると単価が上がる GPT-6 Astra。

#### [Claude Sonnet 5.5](/text-api/claude-sonnet-5-5)

1M コンテキスト、最大 128K 出力。コンテキスト全体で標準のトークン単価を適用します。

#### [Claude Fable 5.1](/text-api/claude)

`claude-fable-5-1` を 4 つの互換エンドポイントで利用します。Claude Haiku 5.5 と 2 段階の料金も説明しています。

#### [Gemini](/text-api/gemini)

同じ 4 つのエンドポイントで Flash と Pro を利用します。

#### [Grok](/text-api/grok)

同じ 4 つのエンドポイントで Grok 4.5 と 4.6 を利用します。

#### [DeepSeek](/text-api/deepseek)

V4 Pro、V4.1 Flash、V4 Flash は終日同じ単価です。2 つの高キャッシュ（HC）モデルは平日のピーク時間帯に 2 倍になります。

#### [Kimi](/text-api/kimi)

K3。1M トークンのコンテキストを単一の料金で利用できます。

#### [GLM](/text-api/glm)

GLM 5.3 と低価格の 5.3 Flash。

#### [MiniMax](/text-api/minimax)

非常に長いコンテキストに対応する M3。

#### [Qwen](/text-api/qwen)

Qwen 3.8 Max と 3.8 Flash。

#### [MiMo](/text-api/mimo)

MiMo V2.6 Flash と V2.5。

#### [Hunyuan](/text-api/hunyuan)

HY3 と HY4。HY3 には毎日の独自のピーク時間帯があります。

> **Note**
>
> 長期利用する BeatAPI API キーは信頼できるサーバーに保存してください。認証ヘッダーの違いは SDK 互換性のためであり、すべて同じ BeatAPI アカウントと米ドル残高を識別します。

## エラー

テキストエンドポイントは SDK 本来のエラー形式を維持するため、OpenAI と Anthropic の SDK は通常の例外を送出します。`/v1/chat/completions`、`/v1/responses`、`GET /v1/models` は `{"error":{"message","type","code"}}` 形式です。コードは `error.code`、`error.type` は `beatapi_error` で、メッセージ末尾にリクエスト ID が付きます。`/v1/messages` は `{"type":"error","error":{"type","message"}}` 形式で、コードは `error.type` に入ります。`retryable` と `request_id` フィールドはありません。ステータス、コード、英語のメッセージは、ほかの BeatAPI エンドポイントと共通です。

| HTTP  | コード                                                                   | 対処                                                                                             |
| ----- | --------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| `400` | `bad_request`                                                         | 指摘された項目を修正。変更せず再送しない                                                                           |
| `400` | `content_policy_violation`                                            | 審査で拒否された入力を変更                                                                                  |
| `401` | `missing_api_key` / `invalid_api_key`                                 | キーを送信、または不正、期限切れ、無効、上限到達のキーを交換                                                                 |
| `402` | `insufficient_credits`                                                | 残高不足。チャージする                                                                                    |
| `403` | `forbidden` / `access_denied`                                         | `forbidden` は無料クレジットのみの場合など、キーやアカウントがモデルを利用できない。`access_denied` は IP 許可リスト対象外、またはキーのモデルグループ対象外 |
| `404` | `not_found`                                                           | 不明なモデル、または料金未設定のモデル。`GET /v1/models` で有効なモデルを取得                                                |
| `413` | `read_request_body_failed`                                            | 本文が大きすぎる。小さくする                                                                                 |
| `429` | `rate_limit_exceeded`                                                 | 上限到達、またはモデルの処理容量超過（"This model is receiving too many requests"）。`Retry-After` 秒待って再試行          |
| `500` | `internal_error`                                                      | バックオフして 1 回再試行                                                                                 |
| `503` | `processing_unavailable` / `processing_timeout` / `processing_failed` | バックオフして再試行、または別モデルを使う。課金なし                                                                     |

再試行は `429`、`500`、`503` に限定してください。BeatAPI は `502` と `504` を返しません。コード一覧と再試行方針は[エラー](/errors)に掲載しています。