
# メタデータを更新する

`PATCH /fapi/v1/me/metadata` · 環境のサインインホストから呼び出し

認証済みユーザーの `user_metadata` に RFC 7396 のマージパッチを適用します。`app_metadata` はここからは書き込めません。結果は最大 16 KiB、深さ 5、トップレベルのキー 100 個までです。認証済みユーザーの `__Host-idp_session` Cookie が必要です。直近の再認証は必要ありません。別オリジンのファーストパーティアプリは、代わりにフロント API アクセストークン（DPoP 証明付きの `Authorization: DPoP <token>`。[フロント API アクセストークン](/docs/api/fapi/front-api-token) を参照）を送信できます。

## リクエスト

ヘッダー:

| ヘッダー | 必須 | 説明 |
| --- | --- | --- |
| `Idp-Client` | はい | SDK の識別子です。 |
| `Origin` | はい | `https://<sign-in host>` と完全に一致している必要があります。 |
| `If-Match` | いいえ | 任意です。以前のレスポンスの `ETag`（または `*`）を指定します。変更は、プロフィールがまだそのバージョンである場合にのみ行われます。 |

ボディ（`application/merge-patch+json` または `application/json`）: マージパッチ本体となる JSON オブジェクトです。値が `null` のキーは削除されます。ネストしたオブジェクトはマージされます。

```json
{
  "theme": null,
  "preferences": {
    "newsletter": false
  }
}
```

## レスポンス

`200 OK` と、更新後のプロフィール（`GET /fapi/v1/me` と同じフィールド）、および新しい `ETag` を返します。

## エラー

| ステータス | コード | 発生条件 |
| --- | --- | --- |
| 400 | `malformed_request` | ボディが JSON オブジェクトではない、または `If-Match` ヘッダーの形式が不正です。 |
| 401 | `unauthenticated` | 有効なセッション Cookie がありません。 |
| 403 | `origin_not_allowed` | `Origin` がない、または正しくありません。 |
| 404 | `not_found` | アカウントを読み取れません（ブロックされている、削除中であるなど）。 |
| 412 | `precondition_failed` | `If-Match` が現在のバージョンと一致しません。何も変更されていません。 |
| 413 | `payload_too_large` | ボディが 16 KiB を超えています。 |
| 415 | `unsupported_media_type` | サポートされていない `Content-Type` です。 |
| 422 | `validation_failed` | パッチが空である、または結果がいずれかの上限を超えています（`too_large`、`too_many_keys`。ポインターはボディのルートです）。 |
| 503 | `service_unavailable` | ユーザーディレクトリが一時的に利用できません。`Retry-After` の秒数の後に再試行してください。 |

## 例

```bash
curl -X PATCH https://example.keenauth.app/fapi/v1/me/metadata \
  -H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
  -H "Origin: https://example.keenauth.app" \
  -H "Content-Type: application/merge-patch+json" \
  -b cookies.txt \
  -d '{"theme":null}'
```

## 個人データ

このエンドポイントは個人データ（エンドユーザーのプロフィール）を扱います。保存される内容、保持期間、削除方法については、[KeenAuth API における個人データ](/docs/policies/personal-data) を参照してください。いずれのフィールドにも、特別な種類の個人データ（健康、生体情報、宗教、政治的意見、性的指向）を送信しないでください。
