# エラー、レート制限、リトライ

> LLM APIのすべてのエラー：HTTPステータス、コードと原因、リトライすべきもの、レート制限、そして402 insufficient balance時にどうするか。エラーは無料です。

- URL: https://llmwithcrypto.com/ja/docs/errors/
- 最終更新: 2026-10-23
- 発行者: LLMwithCrypto (https://llmwithcrypto.com)

エラーはOpenAI形式で返るため、SDKは通常の例外として送出します。このページではすべてのステータスとコードを一覧にし、どれがリトライに値するかを示し、レート制限を守るリトライループを紹介します。

**クイック回答 — LLMwithCrypto APIはどのようなエラーを返しますか？また課金されますか？**

APIはエラーをHTTPステータスとOpenAI形式の本文で返します：`{"error": {"message", "type", "param", "code"}}`。**LLMwithCrypto**では、不正なリクエストに400、誤ったキーに401、クレジットで支払えない場合に402、不明なモデルに404、レート制限に429、当社側の問題に500または503を使用します。エラーで終わった呼び出しにはクレジットがかかりません（2026年10月23日時点のドキュメントによる）。

## どのようなエラーがありますか？

どのエラーもクレジットを消費しません。コードで判定する際は`code`が安定した値です。`message`は人間向けで、変更される可能性があります。

| HTTP | `code` | 原因 | リトライ？ |
| --- | --- | --- | --- |
| 400 | `invalid_parameter` | 必須フィールドが欠けている、または値が範囲外か型が正しくない | いいえ：リクエストを修正してください |
| 400 | `context_length_exceeded` | messagesと`max_tokens`がモデルのコンテキストウィンドウに収まらない | いいえ：入力を短くするか`max_tokens`を下げてください |
| 400 | `unsupported_parameter` | このモデルがサポートしていないフィールド（JSONモードのないモデルでの`response_format`など） | いいえ：削除するかモデルを変更してください |
| 401 | `invalid_api_key` | キーが欠けている、入力ミスがある、または失効している | いいえ：キーを確認してください |
| 402 | `insufficient_balance` | この呼び出しを支払うだけのクレジット残高がありません | いいえ：クレジットパックを購入してください |
| 404 | `model_not_found` | `model`のidは当社のリストにありません | いいえ：`GET /api/v1/models`にあるidを使用してください |
| 429 | `rate_limit_exceeded` | アカウントで許可されている1分あたりのリクエスト数またはトークン数を超えています | はい、一時停止後に |
| 500 | `server_error` | 当社側で問題が発生しました | はい、バックオフを伴って |
| 503 | `model_overloaded` | モデルが一時的に容量に達しています | はい、バックオフを伴って、または別のモデルを試してください |

*エラーボディ：不明なモデル*

```json
{
  "error": {
    "message": "The model `gpt-4o` does not exist or is not available to your key.",
    "type": "invalid_request_error",
    "param": "model",
    "code": "model_not_found"
  }
}

```

## gpt-4oやclaudeで404が返るのはなぜですか？

これらのモデルはここでは販売されていないためです。GPT、Claude、Gemini、Grokへのアクセスは販売していません。これらの提供元は自社の承認なしにAPIアクセスの再販を禁じており、当社はその承認を得ていません。OpenAI API向けに書かれたコードは、しばしば複数の箇所でモデル名を指定しています。プロジェクト内で古い名前を検索し、[modelsページ](https://llmwithcrypto.com/ja/models/)にあるid、たとえば`deepseek-v4-pro`や`gpt-oss-120b`に置き換えてください。

## コードはいつリトライすべきですか？

`429`、`500`、`503`、およびタイムアウトや接続リセットなどのネットワークエラーをリトライしてください。`400`、`401`、`402`、`404`は決してリトライしないでください。同じリクエストは同じように失敗します。

新しい試行の前に待機してください。レスポンスに`Retry-After`ヘッダーがある場合は、その秒数だけ待機します。それ以外の場合は、待機時間を毎回2倍にし（1、2、4、8秒…）、少しランダムな時間を加えてください。そうすることで、多数のワーカーが一斉にリトライしません。数回試行したら諦めて、エラーをログに記録してください。OpenAI SDKはすでに独自にリトライします。以下の例では、ロジック全体を示すためにそれを無効にしています。

*Python：指数バックオフで429、500、503をリトライする*

```python
import os
import random
import time

from openai import APIConnectionError, APIStatusError, OpenAI

client = OpenAI(
    base_url="https://llmwithcrypto.com/api/v1",
    api_key=os.environ["LLMWITHCRYPTO_API_KEY"],
    max_retries=0,
)
RETRY = {429, 500, 503}


def chat(messages, model="deepseek-v4-pro", attempts=5):
    for attempt in range(attempts):
        try:
            return client.chat.completions.create(model=model, messages=messages, max_tokens=500)
        except APIStatusError as err:
            if err.status_code not in RETRY or attempt == attempts - 1:
                raise
            wait = err.response.headers.get("retry-after")
            delay = float(wait) if wait else min(30, 2**attempt) + random.random()
        except APIConnectionError:
            if attempt == attempts - 1:
                raise
            delay = min(30, 2**attempt) + random.random()
        time.sleep(delay)

```

## 402 insufficient_balanceの場合はどうすればよいですか？

チャージしてください。この呼び出しは課金されておらず、アカウントの他の部分も変わりません。クレジット残高が戻れば、APIキーはすぐに再び機能します。暗号資産でのチャージが確認され、クレジットパックを購入すると、APIキーがダッシュボードに用意されます。

本番環境での予期せぬ事態を避けるため、時々`GET https://llmwithcrypto.com/api/v1/credits`を読み取り、任意の下限を下回ったらアラートを出すようにしてください。[models and creditsページ](https://llmwithcrypto.com/ja/docs/models/)に呼び出しが表示されます。クレジットに有効期限はありません。今月使わなかった分は来年も残りますので、早めに大きめのパックを購入しても追加コストはかかりません。

## レート制限を超えないようにするにはどうすればよいですか？

すべてのアカウントには1分あたりのリクエスト数とトークン数の上限があり、ダッシュボードに表示されます。サポートに依頼すれば引き上げられます。

- **同時実行数を制限する。** バッチ全体を一度に送信するのではなく、固定数のリクエストを並列で実行してください。
- **出力を制限する。** トークン制限はモデルが書き込む内容もカウントするため、適切な`max_tokens`を設定すると、より多くのリクエストを制限内に収められます。
- **バッチを分散する。** 大規模なオフラインジョブの場合は、リクエストをまとめて送信するのではなく、1分間に分散してペース配分してください。

## エラー：よくある質問

### 失敗した呼び出しに課金されますか？

いいえ。残高からトークン単位で支払います。入力トークンと出力トークンはモデル自身のトークナイザーでカウントされ、そのモデルの100万トークンあたりの価格で請求されます。エラーで終わった呼び出しは無料です。

### 障害が発生しているかどうかはどこで確認できますか？

[statusページ](https://llmwithcrypto.com/ja/status/)で確認できます。複数のモデルで`500`や`503`エラーが連続して発生する場合は、通常、当社側でインシデントが発生しています。長引く場合はsupport@llmwithcrypto.comまでご連絡ください。

### 失敗したリクエストを確認できますか？

当社側では確認できません。プロンプトやモデルの回答は保存しません。レスポンスを送信した時点で、そのテキストは残りません。各呼び出しにつき、時刻、アカウント、モデル、トークン数を記録したログが1行残り、30日後に削除されます。アプリでエラー`code`と独自のリクエストidをログに記録してください。

---

LLMwithCrypto: LLMwithCryptoは、オープンウェイトモデル向けのOpenAI互換LLM APIです — DeepSeek V4 Pro、DeepSeek V4.1 Flash、DeepSeek R1、Qwen3.5 397B A17B、Qwen3 235B A22B Instruct、gpt-oss-120b、gpt-oss-20b、GLM-4.7、Llama 3.3 70B Instruct、Gemma 4 31B、Mistral Large 3、Mistral Small 4 — 前払いの暗号資産残高からトークン単位で支払い、公開ホストの中央値価格より5%安くご利用いただけます。KYC不要:本人確認書類、自撮り写真、証明書類は一切不要です。プロンプトと出力は保存されません。
