- 動作確認日:2026-10-01
- n8nのバージョン:2.41.3(Docker、セルフホスト)
目次
起きたこと
n8nの公開API(/api/v1)でワークフローの一覧を取ろうとしたところ、次のエラーになりました。
GET http://localhost:5678/api/v1/workflows
→ (401) 許可されていません(Unauthorized)
n8nそのものは動いていました。同じn8nの /healthz は、200 を返していました。
原因
APIキーとして送っていた値が、APIキーではありませんでした。
APIキーは、パソコンの環境変数 N8N_API_KEY から読み込んで、X-N8N-API-KEY というヘッダーで送っていました。ところが、この環境変数の値が、APIキーではなく、別の確認用のコマンドの文章になっていました。コピーと貼り付けを取り違えたのが原因です。
対処
- n8nの画面で「Settings」→「n8n API」を開き、「Create an API key」でAPIキーを作り直しました。
- 環境変数
N8N_API_KEYの値を、新しいAPIキーに書き換えました。 - もう一度ワークフローの一覧を取ると、
200で一覧が返ってきました。
気づいたこと:形だけの確認では見抜けなかった
APIキーの値は画面に出さずに、長さと形だけを確かめていました。そのとき、「.(ピリオド)で3つに区切られているか」で、n8nのAPIキーらしいかを判断していました。
間違って入っていたコマンドの文章にも、たまたまピリオドが2つ入っていました。そのため、「形は正しい」と判断してしまい、すぐには原因がわかりませんでした。
あとで作り直したAPIキーは、eyJ で始まる、長い文字列でした。値を確かめるときは、次の点もあわせて見ると見抜きやすくなります。
| 確かめる点 | 今回の正しいAPIキー |
|---|---|
| 先頭の文字 | eyJ で始まる |
| 空白や引用符 | 前後に入っていない |
| 区切り | . で3つに分かれている |
確かめるときのポイント
- ヘッダーの名前は
X-N8N-API-KEYです。Authorizationではありません。 - URLは
http://(n8nのアドレス)/api/v1/…です。 - APIキーは、作ったn8nでしか使えません。別のn8n(たとえば本番とテスト)で作ったキーでは、401になります。
