組織ロールを作成
POST /v1/organizations/{org_id}/roles · 権限 roles:write
この組織のみに存在するカスタムロールを作成します。組織ロールには org_custom_roles のプラン機能が必要で、特権ロールにすることはできず、環境で組織ロールに許可された権限の一覧が空の間は作成できません。レスポンスには ETag が含まれ、書き込みは role.created として監査されます。Idempotency-Key は任意です。
リクエスト
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
org_id |
path | はい | 組織 ID(org_…)。 |
key |
string | はい | 小文字、数字、_、- のみ。1〜64 文字。スコープ内で一意で、変更できません。 |
name |
string | はい | 表示名。最大 128 文字。 |
description |
string | いいえ | 最大 1024 文字。 |
is_privileged |
boolean | いいえ | 特権ロールとして指定します(組織ロールでは許可されません)。 |
assignable_in_self_service |
boolean | いいえ | 既定値は true。 |
レスポンス
ロールとともに 201 Created。
{
"id": "rol_01j9xr7s1t2w6x8y0z2a4b6c8e",
"organization_id": "org_01j9xk3m7q8r2s4t6v8w0y2z4a",
"key": "billing-admin",
"name": "Billing admin",
"description": "",
"is_privileged": false,
"assignable_in_self_service": true,
"permission_ids": [],
"created_at": "2026-10-12T09:31:00.123456Z",
"updated_at": "2026-10-12T09:31:00.123456Z",
"version": 1
}
エラー
| HTTP | code | 発生条件 |
|---|---|---|
| 404 | not_found |
この環境に組織が存在しません。 |
| 403 | org_custom_roles_disabled |
この環境では組織ロールが無効です。 |
| 403 | plan_feature_unavailable |
プランに組織ロールが含まれていません(Business 以上)。 |
| 409 | role_key_conflict |
同じスコープに、この key のロールが既にあります。 |
| 409 | role_limit_reached |
環境ロール 1,000 件、または組織あたり 50 件の上限に達しています。 |
| 422 | validation_failed |
フィールドが欠落しているか無効、または is_privileged が true です。 |
| 401 | unauthenticated |
資格情報がない、無効、または失効しています。 |
| 403 | insufficient_permissions |
資格情報に必要な権限がありません。 |
| 429 | rate_limited |
レート制限を超えました。Retry-After の期間を待ってから再試行してください。 |
| 503 | service_unavailable |
依存先が一時的に利用できません。Retry-After の期間を待ってから再試行してください。 |
例
curl -i -X POST "https://api.eu.keenauth.com/v1/organizations/org_01j9xk3m7q8r2s4t6v8w0y2z4a/roles" \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"key":"billing-admin","name":"Billing admin"}'