Skip to content

API Keys & Provisioning

plm_ API キーを発行・管理し、自動化向けに管理キーで子キーをプロビジョニングします。

このページのエンドポイントはダッシュボード管理用で、ログインセッションの JWT アクセストークンAuthorization: Bearer <JWT access token>) で認証します。plm_ キーや SDK 互換トークンでは呼び出せません。ここで発行した plm_ キーが、そのまま OpenAI · Anthropic SDK 呼び出しに使うキーです。

個人キー#

GET/v1/keys
GET/v1/keys/usage
POST/v1/keys
PATCH/v1/keys/{id}
DELETE/v1/keys/{id}

POST /v1/keys で新しいキーを発行します。ボディのフィールドはすべて任意で、 省略するとデフォルト値が適用されます。

パラメータ必須説明
namestring | null任意キー名。省略すると "Default"
allowed_modelsstring[] | null任意このキーで呼び出せるモデル ID のホワイトリスト。空または null なら全モデル許可。
monthly_budget_krwinteger | null任意月間支出上限(ウォン)。null は無制限。
monthly_token_limitinteger | null任意入力+出力合計トークン数の月間上限。null は無制限。超過時は 402。
expires_atdatetime | null任意キーの有効期限(ISO 8601)。null は期限なし。
pii_masking_enabledboolean任意アウトバウンド PII マスキングを適用するか。デフォルト値 true
response_cache_modestring任意off | exact | semantic。デフォルト値 off。下記「キースコープ」参照。
scopesstring[] | null任意権限スコープ。"chat""usage:read" の任意の組み合わせ。その他の値は 422。下記「キースコープ」参照。
ip_allowliststring[] | null任意許可する IP/CIDR のリスト(例: 203.0.113.0/24)。null は制限なし。不正な形式は 422。
create key
curl https://apirouter.pleum.ai/v1/keys \
  -H "Authorization: Bearer <JWT access token>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "production",
    "allowed_models": ["gpt-4o", "claude-sonnet-4-6"],
    "monthly_budget_krw": 50000,
    "expires_at": "2026-12-31T23:59:59Z",
    "pii_masking_enabled": true,
    "response_cache_mode": "off",
    "scopes": ["chat"],
    "ip_allowlist": ["203.0.113.0/24"]
  }'

レスポンスにはキーのメタデータに加えて key(完全な秘密キー)が含まれます。完全なキーは作成時に一度だけ表示され、以降は key_prefix(例: plm_a1b2)のみ取得できます。すぐに安全な場所に保管してください。

201 Created
{
  "id": "k_a1b2c3d4",
  "name": "production",
  "key_prefix": "plm_a1b2",
  "key": "plm_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
  "allowed_models": ["gpt-4o", "claude-sonnet-4-6"],
  "monthly_budget_krw": 50000,
  "is_active": true,
  "pii_masking_enabled": true,
  "response_cache_mode": "off",
  "scopes": ["chat"],
  "ip_allowlist": ["203.0.113.0/24"],
  "created_at": "2026-06-27T09:00:00Z",
  "expires_at": "2026-12-31T23:59:59Z"
}
金融・医療・行政などの規制業界アカウントは、 pii_masking_enabled=false のキーを作成したり、マスキングを無効化したりできません — 試みると 403 が返されます。

キースコープ#

scopes は、キーがどの API を呼び出せるかを 制限します。"chat" はモデル呼び出し(課金される呼び出し) を、"usage:read" は read-only 使用量レポート (GET /v1/usage/report)を許可します。 null(デフォルト)はレガシー動作で、モデル呼び出しのみ可能です。 scopes を指定して "chat" を 含めない場合、課金呼び出しは 403 で拒否されます — 支出権限のない モニタリング専用キーを作れます。

パラメータ必須説明
scopesstring[] | null任意["chat"] · ["usage:read"] · 両方。null = レガシー(モデル呼び出しのみ)。
ip_allowliststring[] | null任意キーの使用をこれらの IP/CIDR 範囲に限定。すべてのキー認証ポイントで強制され、null は制限なし。
response_cache_modestring任意off(デフォルト)| exact(同一リクエストの完全一致)| semantic(完全一致 + 埋め込み類似度)。キャッシュヒット時はプロバイダーを呼ばずに応答し、課金は 0、レスポンスに "cached": true が付きます。

管理キーとプロビジョニング#

GET/v1/management-keys
POST/v1/management-keys
DELETE/v1/management-keys/{id}

POST /v1/management-keys(ボディ {name})で plmk_ 管理キーを発行できます。管理キーは子キーのプロビジョニングに使い、 完全なキーは作成時に一度だけ表示されます。GET · POST(201)· DELETE をサポートします。

GET/v1/provisioning/keys
POST/v1/provisioning/keys
DELETE/v1/provisioning/keys/{id}

プロビジョニングエンドポイント(/v1/provisioning/keys)は JWT ではなく plmk_ 管理キーで認証します (Authorization: Bearer plmk_...)。ダッシュボードセッションなしでキーを 発行する必要がある CI · 自動化に適しています。GET(所有者のキー一覧)· POST(201、子キー作成)· DELETE をサポートします。

provision child key
curl https://apirouter.pleum.ai/v1/provisioning/keys \
  -H "Authorization: Bearer plmk_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "ci-runner",
    "monthly_budget_krw": 20000
  }'

子キーのボディ(ProvisionKeyCreate)では name monthly_budget_krw のみ指定できます — allowed_models · pii_masking_enabled · expires_at は設定できません。