環境のテーマを更新する
PATCH /v1/branding · 権限 branding:write
JSON merge patch(application/merge-patch+json、RFC 7396)を使用して、環境テーマの下書きを変更します。値が null のトークン(または "light": null のようなグループ全体)はクリアされ、再び継承されます。"theme": null を指定すると、すべてのトークンがクリアされます。変更されたトークンのみが書き込まれ、変更のないパッチではバージョンは維持されます。値は書き込み時に検証されます。色は #rgb/#rrggbb、font.size_base は 14-18、radius.card は 0-24、radius.control は 0-16、logo_height は 24-80 です。logo、favicon、background_image は、ブランディングアセットをアップロードする でアップロード済みの該当種別の画像を指定する必要があります。指定されていない場合、そのフィールドは asset_not_found で失敗します。コントラストは公開時に検証されます。
リクエスト
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
If-Match |
header | はい | 最後に読み取った下書きの ETag(一度も書き込まれていない場合は "0")。欠落している場合は 428、古い場合は 412。 |
theme |
object | null | いいえ | 部分的な BrandingTheme。すべてのフィールドとグループは null にできます。 |
レスポンス
200 OK と、環境の下書きおよびその ETag を返します。theme には設定されているトークンのみが含まれ、未設定のトークンはプラットフォームのデフォルトを継承します。
{
"theme": {"mode": "light", "light": {"color": {"primary": "#0a3d91"}}, "logo_height": 40},
"css": null,
"page_template": null,
"updated_at": "2026-10-05T09:30:00.123456Z"
}
エラー
| HTTP | code | 発生条件 |
|---|---|---|
| 400 | unknown_field |
リクエストボディに不明なフィールドがあるか、JSON オブジェクトではありません。 |
| 412 | precondition_failed |
If-Match が下書きの現在のバージョンと一致しません。 |
| 415 | unsupported_media_type |
コンテンツタイプが application/merge-patch+json ではありません。 |
| 422 | validation_failed |
トークンの値が無効です(invalid_value、out_of_range、unknown_token)。pointer にはトークンが示されます(例: /theme/light/color/primary)。 |
| 428 | precondition_required |
If-Match ヘッダーがありません。 |
| 401 | unauthenticated |
認証情報がない、無効である、または取り消されています。 |
| 403 | insufficient_permissions |
認証情報に必要な権限がありません。 |
| 429 | rate_limited |
レート制限を超えました。Retry-After の期間が経過してから再試行してください。 |
| 503 | service_unavailable |
依存先サービスが一時的に利用できません。Retry-After の期間が経過してから再試行してください。 |
例
curl -X PATCH https://api.eu.keenauth.com/v1/branding \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/merge-patch+json" \
-H 'If-Match: "3"' \
-d '{"theme":{"light":{"color":{"primary":"#0a3d91"}},"radius":null}}'