PopNowAPI ドキュメント
API で作る
本文

認証

キーの形式、置き場所、キーごとの制限、ローテーション、そして漏えい時の対処。

API へのリクエストには、必ず Authorization ヘッダーで API キーを 1 つ付けます。

Authorization: Bearer sk-popnow-3f9c0a…

これ以外の認証方法はありません。URL のクエリ文字列に入れたキーは受け付けず、popnow.ai のログイン状態も API では使えません。

例外が一つあります。/v1 配下の OpenAI 互換ルート は x-api-key ヘッダーからもキーを読み取るため、OpenAI 形式のクライアントをそのまま使えます。ネイティブの /api/v1 ルートが読むのは Authorization だけです。

キーの形式

キーは sk-popnow- に小文字の 16 進数 48 文字が続く形式です。作成後の API コンソールには先頭の数文字しか表示されないため、なくしたキーは復元できません。新しく作成してください。

キーを作成する

  1. popnow.ai にログインし、API コンソールを開きます。
  2. Create key を選び、production-backend のように使い道がわかる名前を付けます。
  3. すぐにコピーします。全体が表示されるのはこの一度だけです。

キーは同時に複数持てます。環境ごと・サービスごとに分けておくと、1 つだけを無効化しても他に影響しません。どのキーも同じクレジット残高から支払います。

キーの置き場所

  • 環境変数やプラットフォームのシークレット管理(POPNOW_API_KEY)に置き、ソースコードには書きません。
  • ブラウザやモバイルアプリなど、他人の端末で動くコードには絶対に入れないでください。キーを読める人は誰でもあなたのクレジットを使えます。自分のサーバーを間に置き、そこから PopNow を呼び出します。
  • ログにも残さないでください。リクエストヘッダーを記録するなら、先に Authorization を取り除きます。

キーにできることを制限する

キーごとに、API コンソールで個別の制限を設定できます。

制限内容ブロック時のエラー
許可するモデル指定したモデルだけを呼び出せる40301
IP 許可リスト指定したアドレスや範囲からのリクエストだけを受け付ける40302
利用上限このキーの日・月・累計の上限(クレジット表示)40202

初期状態のキーには制限も上限もありません。本番用のキーには、動作に必要な最小限だけを許可しましょう。

タスクは作成したキーに属する

recordInfo、retry、purge、タスク一覧、利用状況から見えるのは、同じキーで作ったタスクだけです。同じアカウントの別のキーで作ったタスクは、存在しないタスクと同じく 404 になります。Web サイトで始めた生成も、どのキーからも見えません。アカウント全体を見るには API コンソールを使ってください。

ローテーション

停止時間なしでキーを入れ替える手順:

  1. 新しいキーを作成する。
  2. 古いキーを使っていたすべての場所に配備する。
  3. コンソールで古いキーの最終使用時刻が動かなくなったことを確認する。
  4. 古いキーを無効化する。

キーが漏れたら

  1. すぐに無効化する。 API コンソールで操作すると、次のリクエストから効きます。
  2. 代わりのキーを作って配備する。
  3. 何に使われたか確認する。 コンソールのログと利用状況に、そのキーが作ったタスクがすべて残っています。
  4. 新しいキーを絞り込む。 IP 許可リストと利用上限を設定します。

身に覚えのない利用があればサポートに連絡してください。

失敗時の応答

認証の問題は 3 種類とも HTTP 401、code: 401 を返し、msg で区別します。

msg の内容何が起きたか対処
認証情報がないAuthorization ヘッダーが届いていないヘッダーが設定されているか、実行中のプロセスに環境変数が読み込まれているかを確認
キーの形式が認識できない値は届いたが PopNow のキーではないsk-popnow- で始まるか確認。別の値を貼り付けた可能性があります
認証情報が無効または期限切れキーが存在しない、無効化済み、または期限切れ新しいキーを作成。再試行しても成功しません

有効なキーでも 403 で拒否されることがあります。たとえばアカウントのメールアドレスが未確認の場合(40310)です。エラーを参照してください。

このページの内容