トラブルシューティングガイド
API 401 または 404 エラー: キー、ベース URL、モデル ID の間違い
ステータスコードを読み、3 つのうちどれが間違っているか(キー、ベース URL、モデル ID)を見つけ、1 つの curl リクエストで修正を確認します。

このページの内容
リクエストがステータスコードで失敗し、まず何を触ればいいかわからないことがあります。短い答え: 401 は通常キーを指し、404 は通常間違った場所をノックしている — つまりアドレス(ベース URL とパス)かモデル ID のどちらかです。この順番で確認すべき 3 つのことと、修正を証明する 1 つの curl コマンドを紹介します。
OpenAI のエラーコードページ(2026 年 10 月 26 日確認)には、2 つの 401 メッセージが記載されています: 「Invalid Authentication」と「Incorrect API key provided」です。どちらも修正方法は同じで、キーを確認するか新しいキーを生成します。このページには API 自体の 404 は記載されていないため、404 については以下のルールは OpenAI 互換エンドポイントの動作に基づくもので、そのページからではありません。
素早く見分ける方法#
テーブルを右にスクロールしてください →
| ステータス | サーバーが言っていること | 最初に見るもの |
|---|---|---|
| 401 | 通常: このキーは受け付けません | キー、およびそれがどのプロバイダーに属するか |
| すべてのモデルで 404 | 通常: このアドレスには何もありません | ベース URL と /v1 |
| 1 つのモデルだけで 404 | 通常: アドレスは問題なく、このモデル ID が不明です | モデル ID |
メッセージの文言はサーバーとツール(Cline、Aider、OpenCode、Continue はそれぞれ独自の方法でエラーをラップします)によって異なるため、番号から始めて、以下の curl チェックで確認してください。
401: キーがエンドポイントと一致しない#
よくある話: ツールを新しいプロバイダーに移し、ベース URL を変更したが、古いプロバイダーのキーを設定に残してしまった。アドレスは新しく、キーは古いままで、サーバーは 401 を返します。何も壊れていません。キーが別の家に属しているだけです。
確認すべきこと:
- キーを発行したのはどのプロバイダーか? 呼び出しているアドレスのプロバイダーでなければなりません。あるサービスのキーは別のサービスでは有効ではありません。
- 余分な文字。 キーと一緒に貼り付けられたスペースや改行、値の中に入ってしまった引用符。
- ツールがどこから読み取るか。 あるターミナルでは設定されているが、エディターが起動したターミナルでは設定されていない環境変数はよくある原因です。ツールに設定ファイルと環境変数の両方がある場合、どちらが優先されるかを確認してください。
- 失効または削除されたキー。 削除または失効したキーは機能しなくなります — 新しいキーを作成して設定に入れてください。
キーの仕組みや保管場所がわからない場合は、API キーとは何か、安全に保管する方法で平易な言葉で説明しています。
すべてのモデルで 404: アドレスが間違っている#
CheapTokens のベース URL は https:/ です。ツールと SDK はエンドポイントパスを自分で追加するため、よくあるミスは /v1 に関するものです:
/v1の欠落: ツールがhttps:/を呼び出してしまう。/ api. cheaptokens. dev/ chat/ completions /v1の重複: すでに追加されるフィールドに完全なパスを貼り付けて、https:/になる。/ api. cheaptokens. dev/ v1/ v1/ chat/ completions - 間違った種類: OpenAI スタイルのツールと OpenAI SDK は
/v1付きのアドレスを受け取ります。Anthropic SDK と Claude Code は/v1なしのアドレスを受け取ります:https:/。/ api. cheaptokens. dev
ベース URL とは正確に何か、そのどの部分をツールが追加するのか疑問に思ったことがあるなら、この解説で順を追って説明しています。Anthropic 側については、CheapTokens で Anthropic Python SDK を使うをご覧ください。
1 つのモデルで 404: モデル ID#
これは価格表や別のプロバイダーから名前をコピーした人が引っかかります。価格表には DeepSeek- と書かれているかもしれませんが、API は開発者プレフィックスとリリースを含む完全なゲートウェイ ID を要求します:
テーブルを右にスクロールしてください →
| 見た場所 | API が必要とするもの |
|---|---|
| DeepSeek-V4-Flash | deepseek- |
| GLM-5.3-Flash | zai- |
| MiniMax-M2.7 | MiniMaxAI/ |
価格ラベルの短い ID は API では受け入れられず、綴りが重要です: 大文字、スラッシュ、-0731 サフィックス。同じモデルでもプロバイダーによって名前が異なるため、記憶から入力するのではなく CheapTokens のドキュメントから ID をコピーしてください。キーで利用可能な正確な ID を確認するには、同じ Authorization ヘッダーで GET https:/ を呼び出し、リストから ID をコピーします:
curl https://api.cheaptokens.dev/v1/models \
-H "Authorization: Bearer YOUR_API_KEY"表の名前のロジックが奇妙に見える場合は、AI モデル名の読み方でエイリアスと固定バージョンの違いを説明しています。
1 つの curl コマンドで修正を証明する#
ツールを脇に置いて、API を直接呼び出します。キーのプレースホルダーを自分のものに置き換えてください:
curl https://api.cheaptokens.dev/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-ai/DeepSeek-V4-Flash-0731",
"messages": [{"role": "user", "content": "Say hi in one word."}],
"max_tokens": 20
}'この 1 つのリクエストに 3 つの容疑者すべてが含まれています: ヘッダーのキー、最初の行のベース URL、ボディのモデル ID です。choices 配列を含む JSON 応答が返れば、3 つとも正しく、ツールが何か違うことをしているのが問題です。失敗した場合は、一度に 1 つだけ変更してください:
- 401 → CheapTokens から取得したキーに差し替えて再実行。
- 404 → URL を上記と 1 文字ずつ比較し、次にモデル ID を確認。
curl が機能したら、同じ 3 つの値をツールにコピーします: キー、ベース URL(https:/、Anthropic SDK と Claude Code の場合は /v1 なし)、完全なモデル ID です。
それでもうまくいかない場合#
- ツールで同じエラー、curl は問題ない。 ツールが別の場所から古いキーや URL を読み取っています: 2 つ目の設定ファイル、保存されたプロファイル、環境変数など。変更後はツールを再起動してください。
- モデル ID が正しいかわからない。 キーで
GET /v1/modelsを呼び出し、リストから ID をコピーしてください。 - 接続拒否、タイムアウト、証明書エラー。 これは 401 や 404 ではありません。一般的な接続エラーをご覧ください。
- 最初のリクエストがどうあるべきかわからない。 最初の API リクエストで順を追って説明しており、ドキュメントに完全なリファレンスがあります。
身につける価値のある習慣: 呼び出しが失敗したら、まず番号を読むこと。401 は通常キー、404 は通常アドレスかモデル ID を意味し、curl がそれを解決します。これで、ログを 1 つも開く前に、これらのエラーのほとんどを整理できます。



