Kullanıcı oluştur
POST /v1/users · izin users:write
API anahtarının ortamında bir kullanıcı oluşturur. Kullanıcı yalnızca bu ortama aittir; aynı e-posta adresi iki ortamda kullanılırsa bunlar iki ayrı kullanıcıdır. Benzersiz değerler (email, phone_number, username, external_id) ortam bazında kontrol edilir. Yeniden denemelerin güvenli olması için bir Idempotency-Key başlığı gönderin.
İstek
Gövde bir JSON nesnesidir. Tanımlanmamış alanlar unknown_field hatasıyla reddedilir.
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
email |
string | hayır* | Birincil e-posta adresi. |
email_verified |
boolean | hayır | E-postayı doğrulanmış olarak işaretler. Varsayılan false. |
phone_number |
string | hayır* | E.164 biçiminde birincil telefon numarası. |
phone_verified |
boolean | hayır | Telefon numarasını doğrulanmış olarak işaretler. Varsayılan false. |
phone_country_code |
string | hayır | ISO 3166-1 alpha-2 kodu. Boş bırakılırsa telefon önekinden türetilir. |
username |
string | hayır* | 3 ila 64 karakter. Ortamda benzersiz olmalıdır. |
external_id |
string | hayır | Sizin belirlediğiniz tanımlayıcı, 1 ila 255 karakter. Ortamda benzersiz olmalıdır. |
name, given_name, family_name, middle_name, nickname |
string | hayır | Profil adları. |
picture, website, profile_url |
string | hayır | https:// URL'leri, en fazla 2048 karakter. |
locale, zoneinfo, gender, birthdate |
string | hayır | Profil öznitelikleri. birthdate biçimi YYYY-MM-DD'dir. |
address |
object | hayır | OIDC address nesnesi, en fazla 2048 bayt. |
user_metadata, app_metadata |
object | hayır | Serbest biçimli JSON nesneleri; en fazla 16 KiB, derinlik 5, en üst düzeyde 100 anahtar. |
* email, phone_number veya username alanlarından en az biri zorunludur.
Yanıt
201 Created. Gövde kullanıcı nesnesidir. ETag başlığı kullanıcı sürümünü taşır.
API anahtarında users:read_pii izni yoksa kişisel veriler maskelenir: email değeri a***@e***.com olur, phone_number yalnızca son 2 rakamını korur (+**********67), name, given_name, family_name, middle_name ve nickname baş harflere dönüşür (A. L.), username yalnızca ilk karakterini korur (a***), birthdate değeri ****-**-** olur ve address değeri {"redacted": true} olur. user_metadata ve app_metadata maskelenmez.
{
"id": "usr_0a1b2c3d4e5f6g7h8j9k0m1n2p",
"kind": "regular",
"status": "active",
"external_id": null,
"username": null,
"name": "Ada Lovelace",
"email": "ada@example.com",
"email_verified": true,
"phone_number": null,
"phone_verified": false,
"user_metadata": {},
"app_metadata": {},
"created_via": "admin_api",
"created_at": "2026-01-15T09:30:00Z",
"updated_at": "2026-01-15T09:30:00Z",
"last_sign_in_at": null,
"deletion_requested_at": null,
"deletion_due_at": null
}
Hatalar
Her hata, kararlı bir code değeri içeren bir application/problem+json gövdesidir.
| HTTP | code |
Ne zaman |
|---|---|---|
| 400 | malformed_request, unknown_field |
Gövde geçerli bir JSON değilse veya şemada bulunmayan bir alan içeriyorsa. |
| 409 | conflict |
Değer zaten kullanımdaysa. errors[] alanı, alanı ve nedenini belirtir (email_taken, phone_taken, username_taken, external_id_taken). |
| 415 | unsupported_media_type |
Content-Type değeri application/json değilse. |
| 422 | validation_failed |
Bir değer geçersizse; errors[].pointer alanı ilgili alanı belirtir. |
| 401 | unauthenticated |
API anahtarı eksik, geçersiz veya iptal edilmişse. |
| 403 | insufficient_permissions |
Anahtarda users:write izni yoksa. |
| 429 | rate_limited |
Hız sınırı aşıldıysa; Retry-After değerine uyun. |
| 503 | service_unavailable |
Bir bağımlılık geçici olarak kullanılamıyorsa; daha sonra yeniden deneyin. |
Örnek
curl -X POST https://api.eu.keenauth.com/v1/users \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"email": "ada@example.com", "email_verified": true, "name": "Ada Lovelace"}'
Kişisel veriler
Bu uç nokta kişisel veri içerir: son kullanıcı profili. KeenAuth API'lerinde kişisel veriler bölümünde neyin saklandığı, ne kadar süreyle tutulduğu ve nasıl silindiği açıklanır. Hiçbir alanda özel nitelikli kişisel verileri (sağlık, biyometrik veriler, din, siyasi görüşler, cinsel yönelim) göndermeyin.