API-DOKUMENTATION V2

GenderAPI.io V2: JSON-svar og konfidens

Forstå felterne data og meta i GenderAPI.io V2: køn, årsager til ukendte resultater, konfidens, evidens fra datasættet, AI-værdier, adgangstilstand og oplysninger om opkrævning.

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.

Illustrativt JSON-svar
{
  "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

FeltTypeKan være nullEksempelBeskrivelse
data.inputobjectNej{"type":"name","value":"Mads","country":"DK"}Inputtype, værdi og land. forceToGenderize medtages, når det er true.
data.namestringJa"mads"Matchet eller udtrukket fornavn, null, når der ikke er noget.
data.genderstringJa"male"male, female eller JSON null. En forudsigelse, ikke en bekræftet personlig identitet.
data.result_statusstringNej"identified"identified, når der returneres et køn, ellers unknown.
data.reasonstringJanullnull ved identificerede resultater. Årsager til ukendte resultater: not_found, no_name_candidate, ambiguous eller insufficient_evidence.
data.confidencenumberJa0.95Værdi fra 0 til 1 eller null. Når gender er null, er konfidensen også null.
data.confidence_kindstringJa"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_countintegerJa1200Stikprøvestørrelse i datasættet eller null. AI finder ikke på en stikprøvestørrelse.
data.sourcestringNej"dataset"dataset, ai eller none.
data.countrystringJa"DK"Landetilknytning fra dataset eller ai_association, eller null. Fastslår ikke nationalitet, bopæl eller etnicitet.
data.country_sourcestringJa"dataset"Oprindelsen af landetilknytningen: dataset, ai_association eller null.
data.matchobjectNej{"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

FeltTypeKan være nullEksempelBeskrivelse
data.input.typestringNej"name"Inputkategori: name, email eller username.
data.input.valuestringNej"Mads"Den sendte værdi til forudsigelse.
data.input.countrystringJa"DK"Sendt landekontekst, null, når den er udeladt.
data.input.forceToGenderizebooleanNejtrueFindes kun, når kaldenavnstilstanden er slået til. Ellers udeladt.

Felter for matchet med datasættet

FeltTypeKan være nullEksempelBeskrivelse
data.match.namestringJa"mads"Valgt kandidat i datasættet, null, når der ikke er valgt en række i datasættet.
data.match.methodstringJa"normalized"normalized, token, substring eller model_inference, null, når det ikke er tilgængeligt.
data.match.scopestringJa"country"country eller global ved opslag i datasættet, null ved AI eller manglende evidens.
data.match.countrystringJa"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

FeltTypeKan være nullEksempelBeskrivelse
meta.request_idstringNej"550e8400-e29b-41d4-a716-446655440000"Entydigt id for dette HTTP-forsøg. Sendes også i X-Request-ID.
meta.duration_msintegerNej42Behandlingstid for forespørgslen i millisekunder.
meta.access.modestringNej"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.reasonstringJanullÅrsag til IP-prøveadgangen: api_key_missing, api_key_invalid eller api_key_not_found, ellers null.
meta.usage.charged_creditsintegerJa1Opkræ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_creditsintegerJa99Saldo, 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_statusstringNej"confirmed"not_charged, confirmed eller unconfirmed. Kontrollér dette, før du prøver en mislykket forudsigelse igen.
meta.usage.resets_atstringJa"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.limitintegerJa10Kreditter i IP-prøveadgangen. null for konti med API-nøgle.
meta.usage.period_secondsintegerJa86400Periode 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.

Illustrativt JSON-svar
{
  "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.

ResultatHvad det betyderAnbefalet håndtering
identified; gender: male eller femaleForudsigelsen 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_foundIngen 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_candidateFortolkningen 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: ambiguousDen 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_evidenceAI 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 elementUdfø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.

Relaterede guider