Forstå JSON-svaret
Gennemførte enkeltsvar indeholder data og meta. Det følgende eksempel fra datasættet er et rigtigt svar, der blev hentet den 1. oktober 2026 med en API-nøgle; kun kontosaldoen er erstattet. Det viser ikke produktets målte nøjagtighed, og en live-forespørgsel kan give et andet resultat. Forespørgsler med API-nøgle returnerer access.mode: api_key og null i de kvotefelter, der kun gælder IP-prøveadgangen; forespørgsler via IP-prøveadgangen returnerer ip_trial med prøvegrænsen og tidspunktet for nulstilling.
{
"data": {
"input": {
"type": "name",
"value": "Mads",
"country": "DK"
},
"name": "mads",
"gender": "male",
"country": "DK",
"confidence": 0.9920318725099602,
"confidence_kind": "observed_frequency",
"sample_count": 502,
"source": "dataset",
"result_status": "identified",
"reason": null,
"country_source": "dataset",
"match": {
"name": "mads",
"method": "normalized",
"scope": "country",
"country": "DK"
}
},
"meta": {
"request_id": "d76fd0ca-5258-4f19-8690-c7eb975aba9d",
"duration_ms": 16,
"access": {
"mode": "api_key",
"reason": null
},
"usage": {
"charged_credits": 1,
"remaining_credits": 49999,
"billing_status": "confirmed",
"resets_at": null,
"limit": null,
"period_seconds": null
}
}
}Felter i svaret på en forudsigelse
| Felt | Type | Kan være null | Eksempel | Beskrivelse |
|---|---|---|---|---|
data.input | object | Nej | {"type":"name","value":"Mads","country":"DK"} | Inputtype, værdi og land. forceToGenderize medtages, når det er true. |
data.name | string | Ja | "mads" | Matchet eller udtrukket fornavn, null, når der ikke er noget. |
data.gender | string | Ja | "male" | male, female eller JSON null. En forudsigelse, ikke en bekræftet personlig identitet. |
data.result_status | string | Nej | "identified" | identified, når der returneres et køn, ellers unknown. |
data.reason | string | Ja | null | null ved identificerede resultater. Årsager til ukendte resultater: not_found, no_name_candidate, ambiguous eller insufficient_evidence. |
data.confidence | number | Ja | 0.95 | Værdi fra 0 til 1 eller null. Når gender er null, er konfidensen også null. |
data.confidence_kind | string | Ja | "observed_frequency" | observed_frequency: dominerende antal i datasættet / total. model_reported: værdi fra AI, ikke en kalibreret sandsynlighed. null, når den ikke er tilgængelig. |
data.sample_count | integer | Ja | 1200 | Stikprøvestørrelse i datasættet eller null. AI finder ikke på en stikprøvestørrelse. |
data.source | string | Nej | "dataset" | dataset, ai eller none. |
data.country | string | Ja | "DK" | Landetilknytning fra dataset eller ai_association, eller null. Fastslår ikke nationalitet, bopæl eller etnicitet. |
data.country_source | string | Ja | "dataset" | Oprindelsen af landetilknytningen: dataset, ai_association eller null. |
data.match | object | Nej | {"name":"mads","method":"normalized","scope":"country","country":"DK"} | Matchet navn i datasættet, metode (normalized, token, substring eller model_inference), omfang (land/globalt) og matchet land. Evidens, der ikke er tilgængelig, er null. |
Returnerede inputfelter
| Felt | Type | Kan være null | Eksempel | Beskrivelse |
|---|---|---|---|---|
data.input.type | string | Nej | "name" | Inputkategori: name, email eller username. |
data.input.value | string | Nej | "Mads" | Den sendte værdi til forudsigelse. |
data.input.country | string | Ja | "DK" | Sendt landekontekst, null, når den er udeladt. |
data.input.forceToGenderize | boolean | Nej | true | Findes kun, når kaldenavnstilstanden er slået til. Ellers udeladt. |
Felter for matchet med datasættet
| Felt | Type | Kan være null | Eksempel | Beskrivelse |
|---|---|---|---|---|
data.match.name | string | Ja | "mads" | Valgt kandidat i datasættet, null, når der ikke er valgt en række i datasættet. |
data.match.method | string | Ja | "normalized" | normalized, token, substring eller model_inference, null, når det ikke er tilgængeligt. |
data.match.scope | string | Ja | "country" | country eller global ved opslag i datasættet, null ved AI eller manglende evidens. |
data.match.country | string | Ja | "DK" | Landet for den valgte række i datasættet, null for globale rækker eller AI. |
Metadata om adgang, opkrævning og forespørgslen
| Felt | Type | Kan være null | Eksempel | Beskrivelse |
|---|---|---|---|---|
meta.request_id | string | Nej | "550e8400-e29b-41d4-a716-446655440000" | Entydigt id for dette HTTP-forsøg. Sendes også i X-Request-ID. |
meta.duration_ms | integer | Nej | 42 | Behandlingstid for forespørgslen i millisekunder. |
meta.access.mode | string | Nej | "api_key" | api_key, ip_trial eller unauthenticated. Kontrollér, at værdien er api_key, når du bruger en betalt konto. |
meta.access.reason | string | Ja | null | Årsag til IP-prøveadgangen: api_key_missing, api_key_invalid eller api_key_not_found, ellers null. |
meta.usage.charged_credits | integer | Ja | 1 | Opkrævede kreditter netto. Nul før opkrævning eller efter en fuld bekræftet refusion, null, når opkrævningen ikke er bekræftet. |
meta.usage.remaining_credits | integer | Ja | 99 | Saldo, når operationen afsluttes. Kan være negativ. null, når den ikke er tilgængelig, eller opkrævningen ikke er bekræftet. |
meta.usage.billing_status | string | Nej | "confirmed" | not_charged, confirmed eller unconfirmed. Kontrollér dette, før du prøver en mislykket forudsigelse igen. |
meta.usage.resets_at | string | Ja | "2026-09-27T12:00:00.000Z" | Tidspunkt for nulstilling af IP-prøveadgangen i UTC (ISO 8601). null for konti med API-nøgle, eller når det ikke er kendt. |
meta.usage.limit | integer | Ja | 10 | Kreditter i IP-prøveadgangen. null for konti med API-nøgle. |
meta.usage.period_seconds | integer | Ja | 86400 | Periode for IP-prøveadgangen i sekunder. null for konti med API-nøgle. |
Et gennemført ukendt resultat
HTTP 200 betyder, at operationen er gennemført, men garanterer ikke et køn. Bevar JSON null i stedet for at konvertere det til male, female, en tom streng eller konfidensen nul. Kontrollér data.result_status og data.reason separat fra HTTP-fejl.
Dette rigtige eksempel, der kun bruger datasættet og blev hentet den 1. oktober 2026, returnerer source: none og reason: not_found og koster stadig 1 kredit. En række i datasættet med stemmelighed kan returnere reason: ambiguous og bevarer sin sample_count. Et ukendt AI-resultat bruger source: ai og 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
}
}
}Fortolk konfidens og evidens for matchet
En konfidens på 0.9 ligger på en skala fra 0 til 1. For observed_frequency betyder den det dominerende antal divideret med det samlede antal i den valgte række i datasættet. Det er ikke produktets målte nøjagtighed fra ende til ende. En model_reported-værdi kommer fra AI og er ikke kalibreret mod frekvenserne i datasættet.
Vælg enhver tærskelværdi i din applikation ud fra dine egne evalueringsdata og confidence_kind. Sammenlign ikke værdier fra datasættet og fra AI direkte, som om de målte det samme. Ved AI er match.name, match.scope og match.country null, fordi der ikke er valgt en række i datasættet. match.method er model_inference.
For fulde navne kan et resultat fra datasættet komme fra en enkelt del i stedet for hele strengen. data.input bevarer den sendte værdi, data.name beskriver det returnerede navn, og data.match beskriver kandidaten og opslagets omfang.
Beslut, hvad din applikation skal gøre
Håndtér først fejl i forespørgslen og i de enkelte elementer, og kontrollér derefter result_status. For en enkelt forudsigelse læser du data. For en batch anvender du den samme beslutning på data for hvert gennemført element. Bevar ukendte resultater i din applikation i stedet for at tvinge mærkaten male eller female igennem.
| Resultat | Hvad det betyder | Anbefalet håndtering |
|---|---|---|
| identified; gender: male eller female | Forudsigelsen returnerede et køn ud fra datasættet eller AI. | Anvend en regel, der er vurderet netop for denne confidence_kind. Bevar source og evidensen for matchet. |
| unknown; reason: not_found | Ingen lagret post i datasættet matcher de fortolkede kandidater. | Lad gender være null. En bevidst ny forespørgsel med andre AI-indstillinger er en ny betalt operation. |
| unknown; reason: no_name_candidate | Fortolkningen til datasættet gav ingen brugbar navnekandidat. | Bevar null. Kontrollér inputtypen og værdien, før du vælger en yderligere forudsigelse. |
| unknown; reason: ambiguous | Den valgte række i datasættet har lige mange mandlige og kvindelige forekomster. sample_count kan stadig være til stede. | Beslut ikke selv, hvilket køn der gælder, og konvertér ikke konfidensen null til nul. |
| unknown; reason: insufficient_evidence | AI gennemførte forespørgslen uden tilstrækkelig evidens til at returnere et køn. | Behandl det som et gennemført ukendt resultat, ikke som en fejl hos udbyderen eller som kandidat til automatiske nye forsøg. |
| Problem Details eller error for et element | Udførelsen mislykkedes, for eksempel på grund af ai_upstream_error eller prediction_timeout. | Gem fejlkoden og forespørgslens id, kontrollér opkrævningen, og følg vejledningen om nye forsøg. |
Vælg tærskelværdier ud fra din egen evaluering
Der findes ingen universel konfidensgrænse, der gør en forudsigelse korrekt. Evaluér observed_frequency og model_reported hver for sig med repræsentative, uafhængigt mærkede eksempler fra din egen anvendelse. En frekvens i datasættet og en værdi angivet af AI er forskellige signaler, også når begge er 0.9. Mål, hvor ofte din regel giver et svar, og hvor ofte disse svar er korrekte. I alle andre tilfælde bør du bevare et ukendt resultat eller planlægge en manuel gennemgang.
Hvis result_status for eksempel er identified, men confidence_kind er model_reported, skal du anvende den regel, du har vurderet for AI, og ikke tærskelværdien for datasættet. Hvis forceToGenderize blev brugt, er name: null sammen med et køn, der ikke er null, gyldigt: Et alias kan fortolkes uden at udtrække et egentligt fornavn. Kontrollér gender og result_status, ikke kun name, for at afgøre, om forudsigelsen gav et svar. Resultatet er stadig et estimat, ikke en bekræftelse af en persons identitet.