
# Profilinizi güncelleyin

`PATCH /fapi/v1/me` · ortamın oturum açma sunucusundan çağrılır

Kimliği doğrulanmış kullanıcının profil alanlarını değiştirir. İstek gövdesinde bulunan bir alan değiştirilir, bulunmayan bir alan olduğu gibi bırakılır; boş bir dize veya `null` alanı temizler. `user_metadata` verilirse RFC 7396 birleştirme yaması olarak uygulanır. Yönetim API'sindeki alan kuralları burada da geçerlidir. Kullanıcının `__Host-idp_session` çerezi gereklidir; yakın zamanda yeniden doğrulama gerekmez. Başka bir kökendeki birinci taraf bir uygulama, bunun yerine ön yüz API erişim belirtecini gönderebilir (`Authorization: DPoP <token>` ve bir DPoP kanıtıyla; bkz. [Ön yüz API erişim belirteci](/docs/api/fapi/front-api-token)).

Alan hataları (`422 validation_failed`, `errors[]` içinde): `invalid` (biçim veya uzunluk; dil bu ortam için etkin değilse `/locale` için de geçerlidir), `too_large` ve `too_many_keys` (`user_metadata` 16 KiB'ı, derinlik 5'i veya 100 üst düzey anahtarı aşarsa), `identifier_type_disabled` (ortamda kullanıcı adları kapalıysa), `profile_field_disabled` (ortam alanı kapattıysa; yine de temizlemeye izin verilir) ve `profile_field_required` (ortam alanı zorunlu kıldıysa, temizlenemez).

## İstek

Başlıklar:

| Başlık | Zorunlu | Açıklama |
| --- | --- | --- |
| `Idp-Client` | evet | SDK tanımlayıcısı. |
| `Origin` | evet | Tam olarak `https://<sign-in host>` olmalıdır. |
| `If-Match` | hayır | İsteğe bağlı. Önceki bir yanıtın `ETag` değeri (veya `*`); değişiklik yalnızca profil hâlâ bu sürümdeyse yapılır. |

Gövde (`application/json` veya `application/merge-patch+json`):

| Alan | Tür | Açıklama |
| --- | --- | --- |
| `given_name` | string veya null | Ad. |
| `family_name` | string veya null | Soyad. |
| `name` | string veya null | Tam ad. |
| `picture` | string veya null | Resim URL'si (`https`). |
| `locale` | string veya null | Dil (BCP 47 etiketi). |
| `zoneinfo` | string veya null | Saat dilimi (IANA adı). |
| `username` | string veya null | Kullanıcı adı. |
| `user_metadata` | object | `user_metadata` üzerine uygulanan birleştirme yaması (RFC 7396). |

```json
{
  "given_name": "Ada",
  "zoneinfo": "",
  "user_metadata": {
    "theme": null
  }
}
```

## Yanıt

Güncellenmiş profille (`GET /fapi/v1/me` ile aynı alanlar) ve yeni bir `ETag` ile birlikte `200 OK`.

## Hatalar

| Durum | Kod | Ne zaman |
| --- | --- | --- |
| 400 | `malformed_request` | Gövde veya `If-Match` başlığı hatalıysa. |
| 400 | `unknown_field` | Gövdede burada değiştirilemeyen bir alan varsa (örneğin `email` veya `app_metadata`). |
| 401 | `unauthenticated` | Geçerli bir oturum çerezi yoksa. |
| 403 | `origin_not_allowed` | `Origin` eksikse veya yanlışsa. |
| 404 | `not_found` | Hesap okunamıyorsa (örneğin engellenmişse veya silinmekteyse). |
| 409 | `username_unavailable` | Kullanıcı adı ayrılmışsa veya başka bir hesap tarafından kullanılıyorsa (ikisi de aynı yanıtı verir). |
| 412 | `precondition_failed` | `If-Match` geçerli sürümle eşleşmiyorsa; hiçbir şey değişmez. |
| 413 | `payload_too_large` | Gövde 16 KiB'ı aşıyorsa. |
| 415 | `unsupported_media_type` | `Content-Type` desteklenmiyorsa. |
| 422 | `validation_failed` | Bir alan bir kuralı ihlal ediyorsa; `errors[]` alanı ve nedenini belirtir (yukarıya bakın). |
| 503 | `service_unavailable` | Kullanıcı dizini geçici olarak kullanılamıyorsa; `Retry-After` saniyesi sonra yeniden deneyin. |

## Örnek

```bash
curl -X PATCH https://example.keenauth.app/fapi/v1/me \
  -H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
  -H "Origin: https://example.keenauth.app" \
  -H 'If-Match: "7"' \
  -H "Content-Type: application/json" \
  -b cookies.txt \
  -d '{"given_name":"Ada","zoneinfo":""}'
```

## Kişisel veriler

Bu uç nokta kişisel veri içerir: son kullanıcı profili. [KeenAuth API'lerinde kişisel veriler](/docs/policies/personal-data), neyin saklandığını, ne kadar süre tutulduğunu ve nasıl silindiğini açıklar. Hiçbir alanda özel nitelikli kişisel verileri (sağlık, biyometrik veriler, din, siyasi görüşler, cinsel yönelim) göndermeyin.
