API-DOKUMENTATION V2

GenderAPI.io V2: JSON-svar och konfidens

Läs fälten data och meta i GenderAPI.io V2: prediktioner, confidence_kind, okända resultat, underlagets källa, åtkomstläge och debiteringsstatus.

Förstå JSON-svaret

Enskilda prediktioner i GenderAPI.io V2 returnerar ett data-objekt för resultatet och ett meta-objekt med uppgifter om förfrågan, åtkomst och debitering. Läs data.gender och data.confidence tillsammans med data.confidence_kind och data.source. Exemplet från datamängden nedan är ett verkligt svar som hämtades den 1 oktober 2026 med en API-nyckel; endast kontosaldot har ersatts. Det återger inte uppmätt noggrannhet för produkten, och en liveförfrågan kan ge ett annat resultat. Förfrågningar med API-nyckel rapporterar access.mode: api_key och null i kvotfälten som bara gäller provperioden; förfrågningar via IP-provperioden rapporterar ip_trial med provperiodens gräns och tidpunkten för återställning.

Illustrativt JSON-svar
{
  "data": {
    "input": {
      "type": "name",
      "value": "Erik",
      "country": "SE"
    },
    "name": "erik",
    "gender": "male",
    "country": "SE",
    "confidence": 1,
    "confidence_kind": "observed_frequency",
    "sample_count": 412,
    "source": "dataset",
    "result_status": "identified",
    "reason": null,
    "country_source": "dataset",
    "match": {
      "name": "erik",
      "method": "normalized",
      "scope": "country",
      "country": "SE"
    }
  },
  "meta": {
    "request_id": "bcc2b4f6-2d7a-44c7-82dd-03722827e390",
    "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
    }
  }
}

Fält i prediktionssvaret

FältTypKan vara nullExempelBeskrivning
data.inputobjectNej{"type":"name","value":"Erik","country":"SE"}Indatatyp, värde och land. forceToGenderize ingår när det är true.
data.namestringJa"erik"Matchat eller extraherat förnamn; null när inget finns.
data.genderstringJa"male"male, female eller JSON null. En prediktion, ingen bekräftad personlig identitet.
data.result_statusstringNej"identified"identified när ett kön returneras, annars unknown.
data.reasonstringJanullnull för identified. Orsaker till unknown: not_found, no_name_candidate, ambiguous eller insufficient_evidence.
data.confidencenumberJa0.95Ett värde mellan 0 och 1 eller null. Om gender är null är även konfidensen null.
data.confidence_kindstringJa"observed_frequency"observed_frequency: det dominerande antalet i datamängden delat med totalen. model_reported: ett AI-värde, ingen kalibrerad sannolikhet. null när värdet saknas.
data.sample_countintegerJa1200Urvalsstorlek i datamängden eller null. AI hittar inte på något urvalsantal.
data.sourcestringNej"dataset"dataset, ai eller none.
data.countrystringJa"SE"Landskoppling från dataset eller ai_association, eller null. Visar varken nationalitet, bosättning eller etnicitet.
data.country_sourcestringJa"dataset"Källa till landskopplingen: dataset, ai_association eller null.
data.matchobjectNej{"name":"erik","method":"normalized","scope":"country","country":"SE"}Matchat namn i datamängden, metod (normalized, token, substring eller model_inference), omfattning (country eller global) och matchat land. Underlag som saknas är null.

Returnerade indatafält

FältTypKan vara nullExempelBeskrivning
data.input.typestringNej"name"Indatakategori: name, email eller username.
data.input.valuestringNej"Erik"Det skickade värdet för prediktionen.
data.input.countrystringJa"SE"Skickad landskontext; null om den utelämnades.
data.input.forceToGenderizebooleanNejtrueFinns bara när smeknamnsläget är aktiverat, annars utelämnas det.

Fält för matchning i datamängden

FältTypKan vara nullExempelBeskrivning
data.match.namestringJa"erik"Vald kandidat i datamängden; null när ingen rad i datamängden valdes.
data.match.methodstringJa"normalized"normalized, token, substring eller model_inference; null när uppgiften saknas.
data.match.scopestringJa"country"country eller global för sökningar i datamängden; null för AI eller när underlag saknas.
data.match.countrystringJa"SE"Land för den valda raden i datamängden; null för globala rader eller AI.

Metadata om åtkomst, debitering och förfrågan

FältTypKan vara nullExempelBeskrivning
meta.request_idstringNej"550e8400-e29b-41d4-a716-446655440000"Unik identifierare för det här HTTP-försöket; skickas även i X-Request-ID.
meta.duration_msintegerNej42Bearbetningstid för förfrågan i millisekunder.
meta.access.modestringNej"api_key"api_key, ip_trial eller unauthenticated. Kontrollera att api_key rapporteras när du använder ett betalt konto.
meta.access.reasonstringJanullOrsak till att IP-provperioden användes: api_key_missing, api_key_invalid eller api_key_not_found; annars null.
meta.usage.charged_creditsintegerJa1Debiterade krediter netto. 0 före debitering eller efter en bekräftad fullständig återbetalning; null när debiteringen är obekräftad.
meta.usage.remaining_creditsintegerJa99Saldo när åtgärden slutförs. Kan vara negativt; null om saldot saknas eller debiteringen är obekräftad.
meta.usage.billing_statusstringNej"confirmed"not_charged, confirmed eller unconfirmed. Kontrollera detta innan du gör ett nytt försök med en misslyckad prediktion.
meta.usage.resets_atstringJa"2026-09-27T12:00:00.000Z"Tidpunkt i UTC (ISO 8601) då IP-provperioden återställs; null för konton med API-nyckel eller om tidpunkten är okänd.
meta.usage.limitintegerJa10Kvot för IP-provperioden; null för konton med API-nyckel.
meta.usage.period_secondsintegerJa86400IP-provperiodens tidsfönster i sekunder; null för konton med API-nyckel.

Ett lyckat okänt resultat

HTTP 200 betyder att åtgärden slutfördes, men garanterar inget kön. Behåll JSON null i stället för att omvandla det till male, female, en tom sträng eller konfidensen noll. Kontrollera data.result_status och data.reason separat från HTTP-fel.

Det här verkliga exemplet som bara använder datamängden, hämtat den 1 oktober 2026, returnerar source: none och reason: not_found och kostar ändå 1 kredit. En rad i datamängden med lika antal kan returnera reason: ambiguous, varvid sample_count behålls. Ett okänt AI-resultat använder source: ai och 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
    }
  }
}

Tolka konfidens och matchningsunderlag

En konfidens på 0.9 ligger på en skala från 0 till 1. För observed_frequency betyder den det dominerande antalet delat med totalen för den valda raden i datamängden; det är inte en uppmätt noggrannhet för produkten från början till slut. Ett värde med model_reported kommer från AI och är inte kalibrerat mot frekvenserna i datamängden.

Välj eventuella tröskelvärden för din applikation utifrån egna utvärderingsdata och confidence_kind. Rangordna inte värden från datamängden och från AI direkt mot varandra, som om de mätte samma sak. För AI är match.name, match.scope och match.country null eftersom ingen rad i datamängden valdes; match.method är model_inference.

För fullständiga namn kan ett resultat från datamängden komma från en del av namnet i stället för hela strängen. data.input innehåller det skickade värdet, data.name beskriver det returnerade namnet och data.match beskriver kandidaten och sökningens omfattning.

Bestäm vad din applikation ska göra härnäst

Hantera först fel i förfrågan och i enskilda poster och kontrollera sedan result_status. För en enskild prediktion läser du data; för en batch tillämpar du samma beslut på data i varje lyckad post. Behåll okända resultat i din applikation i stället för att tvinga fram etiketten male eller female.

ResultatVad det betyderFöreslagen hantering
identified; gender: male eller femalePrediktionen gav ett kön, med underlag från datamängden eller från AI.Tillämpa en regel som har utvärderats för just detta confidence_kind; behåll source och matchningsunderlaget.
unknown; reason: not_foundIngen lagrad post i datamängden matchade de tolkade kandidaterna.Behåll gender som null. En avsiktlig förfrågan med andra AI-alternativ är en ny debiterbar åtgärd.
unknown; reason: no_name_candidateTolkningen för datamängden gav ingen användbar namnkandidat.Behåll null; kontrollera indatatyp och värde innan du väljer någon ytterligare prediktion.
unknown; reason: ambiguousDen valda raden i datamängden har lika många manliga och kvinnliga förekomster; sample_count kan ändå finnas.Avgör inte själv vilket kön som gäller och omvandla inte konfidensen null till noll.
unknown; reason: insufficient_evidenceAI slutförde förfrågan utan tillräckligt underlag för att returnera ett kön.Behandla det som ett slutfört okänt resultat, inte som ett leverantörsfel eller en kandidat för automatiska nya försök.
Problem Details eller en posts errorKörningen misslyckades, till exempel på grund av ai_upstream_error eller prediction_timeout.Spara felkoden och förfrågans ID, kontrollera debiteringen och följ riktlinjerna för nya försök.

Välj tröskelvärden utifrån din egen utvärdering

Det finns inget universellt tröskelvärde för konfidens som gör en prediktion korrekt. Utvärdera observed_frequency och model_reported separat med representativa, oberoende märkta exempel från ditt användningsfall. En frekvens i datamängden och ett värde som AI själv rapporterar är olika signaler, även när båda råkar vara 0.9. Mät hur ofta din regel ger ett svar och hur ofta dessa svar är korrekta; behåll ett okänt resultat eller en manuell granskning för allt annat.

Om result_status till exempel är identified men confidence_kind är model_reported tillämpar du din utvärderade regel för AI, inte tröskelvärdet för datamängden. Om forceToGenderize användes är name: null tillsammans med ett kön som inte är null giltigt: ett alias kan tolkas utan att ett riktigt förnamn extraheras. Kontrollera gender och result_status, inte bara name, för att avgöra om prediktionen gav ett svar. Resultatet är fortfarande en uppskattning, ingen bekräftelse av en persons identitet.

Relaterade guider