ページテンプレートを設定
PUT /v1/branding/page-template · 権限 branding:write
環境の下書きの Liquid ページテンプレートを書き込みます (Startup 以上のプラン、機能 branding_page_template)。テンプレートには {{ idp.widget }} スロットがちょうど 1 回含まれている必要があり、書き込み時にサンドボックスでコンパイルされます。空文字列で消去します。
リクエスト
| フィールド | タイプ | 必須 | 説明 |
|---|---|---|---|
If-Match |
ヘッダー | はい | 最後に読み取った下書きの ETag (未書き込みなら "0")。ない場合は 428、古い場合は 412。 |
page_template |
文字列 | はい | 最大 102400 バイト。"" で消去。 |
レスポンス
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 | コード | 概要 |
|---|---|---|
| 400 | unknown_field |
本文に不明なフィールドがあるか、JSON オブジェクトではありません。 |
| 403 | plan_feature_unavailable |
プランにこの機能が含まれていません (plan_feature_unavailable、拡張 feature と required_plan)。開発環境は制限されません。 |
| 412 | precondition_failed |
If-Match が下書きの現在のバージョンと一致しません。 |
| 422 | validation_failed |
page_template がない、null (required)、または長すぎます (too_long)。 |
| 422 | template_forbidden_construct |
テンプレートが禁止された構文 (例: {% include %} や <script>) を使用しているか、{{ idp.widget }} がちょうど 1 回出現しません。 |
| 428 | precondition_required |
If-Match ヘッダーがありません。 |
| 401 | unauthenticated |
認証情報がない、無効、または失効しています。 |
| 403 | insufficient_permissions |
認証情報に必要な権限がありません。 |
| 429 | rate_limited |
レート制限を超えました。Retry-After の期間後に再試行してください。 |
| 503 | service_unavailable |
依存サービスが一時的に利用できません。Retry-After の期間後に再試行してください。 |
例
curl -X PUT https://api.eu.keenauth.com/v1/branding/page-template \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/json" \
-H 'If-Match: "3"' \
-d '{"page_template":"<div class=\"shell\">{{ idp.widget }}</div>"}'