クイック回答
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 | モデルが一時的に容量に達しています | はい、バックオフを伴って、または別のモデルを試してください |
{
"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ページにあるid、たとえばdeepseek-v4-proやgpt-oss-120bに置き換えてください。
コードはいつリトライすべきですか?
429、500、503、およびタイムアウトや接続リセットなどのネットワークエラーをリトライしてください。400、401、402、404は決してリトライしないでください。同じリクエストは同じように失敗します。
新しい試行の前に待機してください。レスポンスにRetry-Afterヘッダーがある場合は、その秒数だけ待機します。それ以外の場合は、待機時間を毎回2倍にし(1、2、4、8秒…)、少しランダムな時間を加えてください。そうすることで、多数のワーカーが一斉にリトライしません。数回試行したら諦めて、エラーをログに記録してください。OpenAI SDKはすでに独自にリトライします。以下の例では、ロジック全体を示すためにそれを無効にしています。
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ページに呼び出しが表示されます。クレジットに有効期限はありません。今月使わなかった分は来年も残りますので、早めに大きめのパックを購入しても追加コストはかかりません。
レート制限を超えないようにするにはどうすればよいですか?
すべてのアカウントには1分あたりのリクエスト数とトークン数の上限があり、ダッシュボードに表示されます。サポートに依頼すれば引き上げられます。
- 同時実行数を制限する。 バッチ全体を一度に送信するのではなく、固定数のリクエストを並列で実行してください。
- 出力を制限する。 トークン制限はモデルが書き込む内容もカウントするため、適切な
max_tokensを設定すると、より多くのリクエストを制限内に収められます。 - バッチを分散する。 大規模なオフラインジョブの場合は、リクエストをまとめて送信するのではなく、1分間に分散してペース配分してください。
エラー:よくある質問
失敗した呼び出しに課金されますか?
いいえ。残高からトークン単位で支払います。入力トークンと出力トークンはモデル自身のトークナイザーでカウントされ、そのモデルの100万トークンあたりの価格で請求されます。エラーで終わった呼び出しは無料です。
障害が発生しているかどうかはどこで確認できますか?
statusページで確認できます。複数のモデルで500や503エラーが連続して発生する場合は、通常、当社側でインシデントが発生しています。長引く場合は[email protected]までご連絡ください。
失敗したリクエストを確認できますか?
当社側では確認できません。プロンプトやモデルの回答は保存しません。レスポンスを送信した時点で、そのテキストは残りません。各呼び出しにつき、時刻、アカウント、モデル、トークン数を記録したログが1行残り、30日後に削除されます。アプリでエラーcodeと独自のリクエストidをログに記録してください。