JSON yanıtını anlayın
Başarılı tekli yanıt data ve meta içerir. Aşağıdaki veri kümesi örneği, 1 Ekim 2026'da API anahtarıyla alınmış gerçek bir yanıttır; yalnızca hesap bakiyesi değiştirilmiştir. Ölçülmüş ürün doğruluğunu göstermez ve canlı bir istek farklı bir sonuç döndürebilir. API anahtarlı isteklerde access.mode: api_key döner ve yalnızca denemeye ait kota alanları null olur; IP denemesi isteklerinde deneme limiti ve sıfırlanma zamanıyla birlikte ip_trial döner.
{
"data": {
"input": {
"type": "name",
"value": "Elif",
"country": "TR"
},
"name": "elif",
"gender": "female",
"country": "TR",
"confidence": 0.9896548693676163,
"confidence_kind": "observed_frequency",
"sample_count": 79651,
"source": "dataset",
"result_status": "identified",
"reason": null,
"country_source": "dataset",
"match": {
"name": "elif",
"method": "normalized",
"scope": "country",
"country": "TR"
}
},
"meta": {
"request_id": "d570b038-4085-4ae3-ba10-50b54721e518",
"duration_ms": 26,
"access": {
"mode": "api_key",
"reason": null
},
"usage": {
"charged_credits": 1,
"remaining_credits": 49999,
"billing_status": "confirmed",
"resets_at": null,
"limit": null,
"period_seconds": null
}
}
}Tahmin yanıtı alanları
| Alan | Tür | Null olabilir mi? | Örnek | Açıklama |
|---|---|---|---|---|
data.input | object | Hayır | {"type":"name","value":"Elif","country":"TR"} | Girdi türü, değeri ve ülkesi. forceToGenderize, true olduğunda eklenir. |
data.name | string | Evet | "elif" | Eşleşen veya çıkarılan ad; bulunamıyorsa null. |
data.gender | string | Evet | "male" | male, female veya JSON null. Doğrulanmış kişisel kimlik değil, tahmindir. |
data.result_status | string | Hayır | "identified" | Cinsiyet döndürüldüğünde identified, diğer durumlarda unknown. |
data.reason | string | Evet | null | Sonuç identified ise null. Bilinmeyen sonuç nedenleri: not_found, no_name_candidate, ambiguous veya insufficient_evidence. |
data.confidence | number | Evet | 0.95 | 0–1 arası puan veya null. Cinsiyet null ise güven skoru da null’dır. |
data.confidence_kind | string | Evet | "observed_frequency" | observed_frequency: baskın veri kümesi sayısı / toplam. model_reported: yapay zekâ skoru; kalibre edilmiş olasılık değildir. Bilgi yoksa null. |
data.sample_count | integer | Evet | 1200 | Veri kümesindeki örnek sayısı veya null. Yapay zekâ örnek sayısı üretmez. |
data.source | string | Hayır | "dataset" | dataset, ai veya none. |
data.country | string | Evet | "TR" | Veri kümesi veya ai_association kaynaklı ülke ilişkisi; bilgi yoksa null. Vatandaşlık, ikamet veya etnik köken kanıtı değildir. |
data.country_source | string | Evet | "dataset" | Ülke ilişkilendirmesinin kaynağı: dataset, ai_association veya null. |
data.match | object | Hayır | {"name":"elif","method":"normalized","scope":"country","country":"TR"} | Eşleşen isim, yöntem (normalized, token, substring veya model_inference), ülke/genel kapsam ve eşleşen ülke. Olmayan kanıt null’dır. |
Yanıtta dönen girdi alanları
| Alan | Tür | Null olabilir mi? | Örnek | Açıklama |
|---|---|---|---|---|
data.input.type | string | Hayır | "name" | Girdi türü: name, email veya username. |
data.input.value | string | Hayır | "Elif" | Gönderilen tahmin değeri. |
data.input.country | string | Evet | "TR" | Gönderilen ülke bağlamı; gönderilmediyse null. |
data.input.forceToGenderize | boolean | Hayır | true | Yalnızca takma ad modu etkin olduğunda bulunur. Diğer durumlarda gönderilmez. |
Veri kümesi eşleşme alanları
| Alan | Tür | Null olabilir mi? | Örnek | Açıklama |
|---|---|---|---|---|
data.match.name | string | Evet | "elif" | Seçilen veri kümesi adayı; veri kümesinden satır seçilmediyse null. |
data.match.method | string | Evet | "normalized" | normalized, token, substring veya model_inference; bilgi yoksa null. |
data.match.scope | string | Evet | "country" | Veri kümesi sorgularında country veya global; yapay zekâda veya kanıt yoksa null. |
data.match.country | string | Evet | "TR" | Seçilen veri kümesi satırının ülkesi; genel satırlarda veya yapay zekâda null. |
Erişim, ücretlendirme ve istek bilgileri
| Alan | Tür | Null olabilir mi? | Örnek | Açıklama |
|---|---|---|---|---|
meta.request_id | string | Hayır | "550e8400-e29b-41d4-a716-446655440000" | Bu HTTP isteğinin benzersiz kimliği; X-Request-ID başlığında da gönderilir. |
meta.duration_ms | integer | Hayır | 42 | İsteğin milisaniye cinsinden işlenme süresi. |
meta.access.mode | string | Hayır | "api_key" | api_key, ip_trial veya unauthenticated. Hesap anahtarıyla erişimde api_key olduğunu doğrulayın. |
meta.access.reason | string | Evet | null | Denemeye geçiş nedeni: api_key_missing, api_key_invalid veya api_key_not_found; diğer durumlarda null. |
meta.usage.charged_credits | integer | Evet | 1 | Net düşülen kredi. Ücretlendirme öncesinde veya tam iade doğrulandığında sıfırdır; ücretlendirme belirsizse null. |
meta.usage.remaining_credits | integer | Evet | 99 | İşlem tamamlandığındaki bakiye. Negatif olabilir; bilgi alınamıyorsa veya ücretlendirme belirsizse null. |
meta.usage.billing_status | string | Hayır | "confirmed" | not_charged, confirmed veya unconfirmed. Başarısız bir tahmini yeniden denemeden önce kontrol edin. |
meta.usage.resets_at | string | Evet | "2026-09-27T12:00:00.000Z" | IP denemesinin UTC sıfırlanma zamanı (ISO 8601); API anahtarlı hesaplarda veya bilinmiyorsa null. |
meta.usage.limit | integer | Evet | 10 | IP denemesinin kredi hakkı; API anahtarlı hesaplarda null. |
meta.usage.period_seconds | integer | Evet | 86400 | IP denemesinin saniye cinsinden süresi; API anahtarlı hesaplarda null. |
Başarıyla tamamlanan belirsiz sonuç
HTTP 200, işlemin tamamlandığını gösterir; cinsiyet bulunmasını garanti etmez. JSON null değerini male, female, boş metin veya sıfır güven skoruna çevirmeyin. data.result_status ve data.reason alanlarını HTTP hatalarından ayrı değerlendirin.
Yalnızca veri kümesini kullanan ve 1 Ekim 2026'da alınmış bu gerçek örnek source: none ve reason: not_found döndürür; yine de 1 kredidir. Eşit dağılımlı kayıtta reason: ambiguous dönebilir ve sample_count korunur. Belirsiz yapay zekâ sonucunda source: ai ve reason: insufficient_evidence kullanılır.
{
"data": {
"input": {
"type": "name",
"value": "zzzxxyy",
"country": null
},
"name": null,
"gender": null,
"country": null,
"confidence": null,
"confidence_kind": null,
"sample_count": null,
"source": "none",
"result_status": "unknown",
"reason": "not_found",
"country_source": null,
"match": {
"name": null,
"method": null,
"scope": null,
"country": null
}
},
"meta": {
"request_id": "54fdcd4e-f8bc-4224-918f-3a5732e08b9c",
"duration_ms": 10,
"access": {
"mode": "api_key",
"reason": null
},
"usage": {
"charged_credits": 1,
"remaining_credits": 49999,
"billing_status": "confirmed",
"resets_at": null,
"limit": null,
"period_seconds": null
}
}
}Güven skoru ve eşleşme kanıtını yorumlama
0.9 güven skoru, 0–1 ölçeğindedir. observed_frequency için baskın sayının seçilen veri kümesi toplamına oranıdır; uçtan uca ölçülmüş ürün doğruluğu değildir. model_reported, yapay zekânın verdiği ve veri kümesi frekanslarına göre kalibre edilmemiş puandır.
Uygulama eşiğinizi kendi değerlendirme verileriniz ve confidence_kind ile belirleyin. Veri kümesi ve yapay zekâ skorlarını aynı şeyi ölçüyormuş gibi sıralamayın. Yapay zekâda veri kümesi kaydı seçilmediğinden match.name, match.scope ve match.country null; match.method ise model_inference olur.
Tam ad sorgusunda sonuç, bütün metin yerine bir bileşenden gelebilir. data.input gönderilen değeri, data.name dönen adı, data.match ise adayı ve sorgu kapsamını gösterir.
Sonuca göre uygulamanızın ne yapacağını belirleyin
Önce istek ve öğe hatalarını işleyin, ardından result_status alanını okuyun. Tekli tahminde data nesnesini; toplu sorguda başarıyla tamamlanan her öğenin data nesnesini değerlendirin. unknown sonuçlarını zorunlu olarak male veya female değerine dönüştürmeyin.
| Sonuç | Anlamı | Önerilen işlem |
|---|---|---|
| identified; gender: male or female | Veri kümesi veya yapay zekâ kanıtıyla bir cinsiyet tahmini üretilmiştir. | İlgili confidence_kind için değerlendirdiğiniz kuralları uygulayın; source ve eşleşme kanıtlarını saklayın. |
| unknown; reason: not_found | Ayrıştırılan adaylarla eşleşen veri kümesi kaydı bulunamamıştır. | gender değerini null olarak koruyun. Farklı yapay zekâ seçenekleriyle göndereceğiniz istek, yeni ve ücretli bir işlemdir. |
| unknown; reason: no_name_candidate | Veri kümesi sorgusu için kullanılabilir bir ad adayı çıkarılamamıştır. | null değerini koruyun; ek tahmin istemeden önce girdi türünü ve değerini kontrol edin. |
| unknown; reason: ambiguous | Seçilen kayıtta erkek ve kadın sayıları eşittir; sample_count yine de dolu olabilir. | Eşitliği kendiniz bozmayın ve null güven skorunu sıfıra dönüştürmeyin. |
| unknown; reason: insufficient_evidence | Yapay zekâ işlemi tamamlanmış, ancak cinsiyet tahmini için yeterli kanıt bulunamamıştır. | Bunu tamamlanmış bir unknown sonucu olarak saklayın; sağlayıcı hatası saymayın veya otomatik yeniden denemeyin. |
| Problem Details veya öğenin error alanı | İşlem, örneğin ai_upstream_error veya prediction_timeout nedeniyle başarısız olmuştur. | Hata kodunu ve istek kimliğini saklayın; ücretlendirmeyi kontrol ederek yeniden deneme rehberini izleyin. |
Güven eşiğini kendi değerlendirme verilerinizle belirleyin
Bir tahmini doğru kılacak evrensel bir güven eşiği yoktur. observed_frequency ve model_reported skorlarını, kullanımınızı temsil eden ve referans etiketleri bağımsız olarak belirlenmiş örneklerde ayrı ayrı değerlendirin. Veri kümesindeki dağılım oranı ile modelin bildirdiği skor, ikisi de 0.9 olsa bile farklı sinyallerdir. Kurallarınızın kaç girdide tahmin kabul ettiğini ve kabul edilen tahminlerin ne kadarının doğru olduğunu ölçün. Diğer girdiler için unknown veya inceleme seçeneğini koruyun.
Örneğin result_status identified, confidence_kind model_reported ise veri kümesi eşiği yerine değerlendirdiğiniz yapay zekâ kurallarını uygulayın. forceToGenderize kullanıldığında name: null ile birlikte dolu bir gender değeri geçerlidir; gerçek bir ön ad çıkarılmadan rumuzdan tahmin yapılabilir. Tahmin bulunup bulunmadığını yalnızca name ile değil, gender ve result_status alanlarıyla belirleyin. Sonuç bir tahmindir; kişinin kimliğini doğrulamaz.