API エラーの直し方:401・403・404・429・5xx
ステータスコードを見れば、問題がどちら側にあるか分かります。666 AI での意味と対処をまとめました。
YOUR-ENDPOINT は登録後に「API Key」ページに表示される接続先に、YOUR-KEY はご自身のキーに置き換えてください。1 つのキーで 666 AI のすべてのモデル(Claude・GPT・Gemini・DeepSeek・Qwen ほか 200 以上)を呼び出せます。エラー一覧
| ステータス | 意味 | 対処 |
|---|---|---|
| 401 Invalid token | API キーが違う・欠けている・削除または無効化されている。 | 「API Key」ページからキーをコピーし直す(前後の空白に注意)。ヘッダーが Authorization: Bearer YOUR-KEY(/v1/messages なら x-api-key)になっているか確認。 |
| 403 残高不足 | このリクエストに必要な残高が足りない。 | チャージする、または max_tokens を下げる(呼び出し前に最大コストを仮押さえします)。 |
| 404 モデルが見つからない / Invalid URL | モデル ID の誤り、またはパスに /v1 がない。 | モデルページの ID をそのままコピー。OpenAI SDK は base_url に …/v1 が必要、Anthropic SDK は /v1 なし。 |
| 429 | 短時間にリクエストが多すぎる。 | 指数バックオフ(1 秒・2 秒・4 秒…)で再試行。 |
| 500 / 502 / 503 | 上流プロバイダーの一時的な障害。 | 再試行してください。別の供給ルートがあれば自動で切り替えます。続く場合は別のモデルを。 |
| 200 なのに本文が空 | 推論モデルが max_tokens を思考だけで使い切った。 | 推論モデルでは max_tokens を大きく(2,000 以上など)。 |
安全に再試行する
import time
from openai import OpenAI, APIStatusError
client = OpenAI(base_url="https://YOUR-ENDPOINT/v1", api_key="YOUR-KEY")
def ask(prompt, tries=4):
for i in range(tries):
try:
return client.chat.completions.create(
model="anthropic/claude-haiku-5.5",
messages=[{"role": "user", "content": prompt}],
max_tokens=500,
).choices[0].message.content
except APIStatusError as e:
if e.status_code in (429, 500, 502, 503) and i < tries - 1:
time.sleep(2 ** i)
continue
raiseよくある質問
失敗したリクエストに料金はかかる?
かかりません。失敗したリクエストは課金されません。
残高があるのに 403 になるのは?
呼び出し前にそのリクエストの最大コストを仮押さえします。高価なモデルで max_tokens が大きいと残高を超えることがあるので、max_tokens を下げるかチャージしてください。