Porozumějte odpovědi JSON
Úspěšné jednotlivé odpovědi obsahují data a meta. Následující příklad z datové sady je skutečná odpověď získaná 1. října 2026 s API klíčem; nahrazen byl pouze zůstatek účtu. Nepředstavuje naměřenou přesnost produktu a požadavek v reálném čase může vrátit jiný výsledek. Požadavky s API klíčem vracejí access.mode: api_key a pole kvót platná jen pro zkušební režim mají hodnotu null; požadavky ve zkušebním režimu podle IP vracejí ip_trial spolu s limitem zkušebního režimu a časem jeho obnovení.
{
"data": {
"input": {
"type": "name",
"value": "Tomáš",
"country": "CZ"
},
"name": "tomáš",
"gender": "male",
"country": "CZ",
"confidence": 0.9969591659426585,
"confidence_kind": "observed_frequency",
"sample_count": 2302,
"source": "dataset",
"result_status": "identified",
"reason": null,
"country_source": "dataset",
"match": {
"name": "tomáš",
"method": "normalized",
"scope": "country",
"country": "CZ"
}
},
"meta": {
"request_id": "050f6ca4-8761-4a3f-ba00-b7fdd718ec4b",
"duration_ms": 12,
"access": {
"mode": "api_key",
"reason": null
},
"usage": {
"charged_credits": 1,
"remaining_credits": 49999,
"billing_status": "confirmed",
"resets_at": null,
"limit": null,
"period_seconds": null
}
}
}Pole odpovědi s odhadem
| Pole | Typ | Může být null | Příklad | Popis |
|---|---|---|---|---|
data.input | object | Ne | {"type":"name","value":"Tomáš","country":"CZ"} | Typ vstupu, hodnota a země. forceToGenderize se uvádí, pokud má hodnotu true. |
data.name | string | Ano | "tomáš" | Nalezené nebo získané křestní jméno; null, pokud není k dispozici. |
data.gender | string | Ano | "male" | male, female nebo JSON null. Jde o odhad, nikoli o ověřenou osobní identitu. |
data.result_status | string | Ne | "identified" | identified, pokud je vráceno pohlaví; jinak unknown. |
data.reason | string | Ano | null | null u výsledků identified. Důvody neznámého výsledku: not_found, no_name_candidate, ambiguous nebo insufficient_evidence. |
data.confidence | number | Ano | 0.95 | Skóre 0–1 nebo null. Pohlaví null má spolehlivost null. |
data.confidence_kind | string | Ano | "observed_frequency" | observed_frequency: počet dominantního pohlaví v datové sadě / celkový počet. model_reported: skóre AI, nikoli kalibrovaná pravděpodobnost. null, pokud není k dispozici. |
data.sample_count | integer | Ano | 1200 | Velikost vzorku v datové sadě nebo null. AI si počet vzorků nevymýšlí. |
data.source | string | Ne | "dataset" | dataset, ai nebo none. |
data.country | string | Ano | "CZ" | Přiřazení země z dataset nebo ai_association, případně null. Neurčuje státní příslušnost, bydliště ani etnickou příslušnost. |
data.country_source | string | Ano | "dataset" | Původ přiřazení země: dataset, ai_association nebo null. |
data.match | object | Ne | {"name":"tomáš","method":"normalized","scope":"country","country":"CZ"} | Nalezené jméno v datové sadě, metoda (normalized, token, substring nebo model_inference), rozsah country/global a nalezená země. Nedostupné podklady mají hodnotu null. |
Vrácená vstupní pole
| Pole | Typ | Může být null | Příklad | Popis |
|---|---|---|---|---|
data.input.type | string | Ne | "name" | Kategorie vstupu: name, email nebo username. |
data.input.value | string | Ne | "Tomáš" | Odeslaná hodnota pro odhad. |
data.input.country | string | Ano | "CZ" | Odeslaný kontext země; null, pokud byl vynechán. |
data.input.forceToGenderize | boolean | Ne | true | Uvádí se jen při zapnutém režimu přezdívek; jinak se vynechává. |
Pole shody v datové sadě
| Pole | Typ | Může být null | Příklad | Popis |
|---|---|---|---|---|
data.match.name | string | Ano | "tomáš" | Vybraný kandidát z datové sady; null, pokud nebyl vybrán žádný řádek datové sady. |
data.match.method | string | Ano | "normalized" | normalized, token, substring nebo model_inference; null, pokud není k dispozici. |
data.match.scope | string | Ano | "country" | country nebo global u vyhledávání v datové sadě; null u AI nebo chybějících podkladů. |
data.match.country | string | Ano | "CZ" | Země vybraného řádku datové sady; null u globálních řádků nebo AI. |
Metadata přístupu, účtování a požadavku
| Pole | Typ | Může být null | Příklad | Popis |
|---|---|---|---|---|
meta.request_id | string | Ne | "550e8400-e29b-41d4-a716-446655440000" | Jedinečný identifikátor tohoto pokusu HTTP; posílá se také v X-Request-ID. |
meta.duration_ms | integer | Ne | 42 | Doba zpracování požadavku v milisekundách. |
meta.access.mode | string | Ne | "api_key" | api_key, ip_trial nebo unauthenticated. U placeného účtu ověřte api_key. |
meta.access.reason | string | Ano | null | Důvod přechodu na zkušební režim: api_key_missing, api_key_invalid nebo api_key_not_found; jinak null. |
meta.usage.charged_credits | integer | Ano | 1 | Čistý počet odečtených kreditů. Nula před odečtením nebo po úplném potvrzeném vrácení; null, pokud účtování není potvrzeno. |
meta.usage.remaining_credits | integer | Ano | 99 | Zůstatek po dokončení operace. Může být záporný; null, pokud není k dispozici nebo účtování není potvrzeno. |
meta.usage.billing_status | string | Ne | "confirmed" | not_charged, confirmed nebo unconfirmed. Zkontrolujte před opakováním neúspěšného odhadu. |
meta.usage.resets_at | string | Ano | "2026-09-27T12:00:00.000Z" | Čas obnovení zkušebního režimu podle IP v UTC (ISO 8601); null u účtů s API klíčem nebo pokud není znám. |
meta.usage.limit | integer | Ano | 10 | Limit kreditů zkušebního režimu podle IP; null u účtů s API klíčem. |
meta.usage.period_seconds | integer | Ano | 86400 | Délka období zkušebního režimu podle IP v sekundách; null u účtů s API klíčem. |
Úspěšný neznámý výsledek
HTTP 200 znamená, že operace byla dokončena; pohlaví nezaručuje. Zachovejte JSON null a nepřevádějte ho na male, female, prázdný řetězec ani nulovou spolehlivost. data.result_status a data.reason kontrolujte odděleně od chyb HTTP.
Tento skutečný příklad pouze s datovou sadou, získaný 1. října 2026, vrací source: none a reason: not_found a přesto stojí 1 kredit. Řádek datové sady se shodnými počty může vrátit reason: ambiguous se zachovaným sample_count. Neznámý výsledek AI používá source: ai a reason: insufficient_evidence.
{
"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
}
}
}Interpretace spolehlivosti a podkladů shody
Spolehlivost 0,9 je na stupnici 0–1. U observed_frequency znamená dominantní počet vydělený celkovým počtem ve vybraném záznamu datové sady; nejde o naměřenou celkovou přesnost produktu. Skóre model_reported poskytuje AI a není kalibrováno podle četností v datové sadě.
Prahovou hodnotu pro svou aplikaci zvolte na základě vlastních hodnoticích dat a confidence_kind. Skóre z datové sady a z AI přímo neporovnávejte, jako by měřila totéž. U AI mají match.name, match.scope a match.country hodnotu null, protože nebyl vybrán žádný řádek datové sady; match.method je model_inference.
U celých jmen může výsledek z datové sady pocházet z jedné části jména, ne z celého řetězce. data.input zachovává odeslanou hodnotu; data.name popisuje vrácené jméno a data.match kandidáta a rozsah vyhledávání.
Rozhodněte, co má vaše aplikace udělat dál
Nejprve zpracujte chyby požadavku a jednotlivých položek a potom zkontrolujte result_status. U jednotlivého odhadu čtěte data; u dávky použijte stejné rozhodnutí na data každé úspěšné položky. Neznámé výsledky v aplikaci zachovejte a nevynucujte místo nich označení male nebo female.
| Výsledek | Co znamená | Doporučený postup |
|---|---|---|
| identified; gender: male nebo female | Odhad vrátil pohlaví s podklady z datové sady nebo z AI. | Použijte pravidlo vyhodnocené právě pro tento confidence_kind; zachovejte source a podklady shody. |
| unknown; reason: not_found | Žádný uložený záznam v datové sadě neodpovídá rozpoznaným kandidátům. | Ponechte gender jako null. Záměrný nový požadavek s jinými možnostmi AI je nová zpoplatněná operace. |
| unknown; reason: no_name_candidate | Rozbor pro datovou sadu nenašel žádného použitelného kandidáta na jméno. | Ponechte null; než zvolíte další odhad, zkontrolujte typ a hodnotu vstupu. |
| unknown; reason: ambiguous | Vybraný řádek datové sady má shodné počty mužů a žen; sample_count může být přesto uveden. | Nerozhodujte shodu sami a spolehlivost null nepřevádějte na nulu. |
| unknown; reason: insufficient_evidence | AI požadavek dokončila, ale neměla dostatek podkladů, aby vrátila pohlaví. | Považujte ho za dokončený neznámý výsledek, ne za selhání poskytovatele ani za kandidáta na automatické opakování. |
| Problem Details nebo error položky | Provedení selhalo, například kvůli ai_upstream_error nebo prediction_timeout. | Uložte kód chyby a ID požadavku, zkontrolujte účtování a řiďte se pokyny k opakování požadavků. |
Zvolte prahové hodnoty na základě vlastního vyhodnocení
Neexistuje univerzální hranice spolehlivosti, díky které by byl odhad správný. observed_frequency a model_reported vyhodnocujte zvlášť na reprezentativních, nezávisle označených příkladech z vašeho použití. Četnost v datové sadě a skóre, které uvádí sama AI, jsou různé signály, i když mají obě hodnotu 0,9. Měřte, jak často vaše pravidlo vrací odpověď a jak často jsou tyto odpovědi správné; pro vše ostatní ponechte neznámý výsledek nebo ruční kontrolu.
Pokud je například result_status identified, ale confidence_kind je model_reported, použijte pravidlo vyhodnocené pro AI, nikoli prahovou hodnotu pro datovou sadu. Pokud bylo použito forceToGenderize, je name: null spolu s pohlavím jiným než null platné: alias lze vyložit i bez získání skutečného křestního jména. Zda odhad přinesl odpověď, posuzujte podle gender a result_status, ne jen podle name. Stále jde o odhad, nikoli o ověření identity osoby.