API-DOKUMENTASJON V2

GenderAPI.io V2: feil og nye forsøk

Håndter Problem Details, valideringsfeil, forespørselsgrenser og usikker belastning i GenderAPI.io V2. Forstå hva nye forsøk koster, og når du bør kontakte kundestøtte.

Feil og HTTP-statuskoder

Applikasjonsfeil bruker application/problem+json (RFC 9457). Bygg logikken på de stabile feltene code og action, ikke på den lesbare teksten i detail. Valideringsfeil inneholder plasseringer som JSON Pointer i errors. Oppgi request_id når du kontakter kundestøtte. Feil i proxy eller transport kan returnere et annet innhold, så sjekk Content-Type før du tolker JSON.

Det syntetiske 422-eksemplet nedenfor viser ugyldig e-postsyntaks før belastning. Den offentlige feilkatalogen viser hver kode, status, forklaring og anbefalt handling.

HTTP-statusVanlig betydningNeste steg
400 / 413 / 415Ugyldig JSON, for stort innhold eller medietype som ikke støttes.Rett forespørselen.
401 / 403Tilgang avvist, kontobegrensning eller for få kreditter.Sjekk code; rett tilgangen, eller fyll på kreditter / vent på tilbakestillingen av IP-prøveperioden.
422Ugyldige inndata eller alternativer som ikke kan kombineres.Rett feltene som er oppgitt i errors.
404 / 405Ukjent rute eller HTTP-metode som ikke støttes.Kontroller stien til endepunktet og svar-headeren Allow.
429Grense for antall forespørsler eller samtidige operasjoner.Vent i tiden som er angitt i Retry-After, før du sender en ny forespørsel.
500Uventet serverfeil.Kontakt kundestøtte med request_id; sjekk belastningen før du prøver på nytt.
502 / 503 / 504Feil hos leverandør, i en avhengighet, ved belastning eller tidsavbrudd.Sjekk code, action og billing_status før du prøver på nytt.
Illustrerende JSON-svar
{
  "type": "urn:genderapi:problem:validation_error",
  "title": "validation error",
  "status": 422,
  "detail": "A valid email address is required.",
  "instance": "urn:uuid:11111111-1111-4111-8111-111111111111",
  "code": "validation_error",
  "request_id": "11111111-1111-4111-8111-111111111111",
  "documentation": "https://api.genderapi.io/api/v2/errors",
  "action": "correct_request",
  "errors": [
    {
      "pointer": "/value",
      "message": "Invalid email address."
    }
  ],
  "meta": {
    "request_id": "11111111-1111-4111-8111-111111111111",
    "duration_ms": 12,
    "access": {
      "mode": "ip_trial",
      "reason": "api_key_missing"
    },
    "usage": {
      "charged_credits": 0,
      "remaining_credits": null,
      "billing_status": "not_charged",
      "resets_at": "2026-09-26T12:00:00.000Z",
      "limit": 10,
      "period_seconds": 86400
    }
  }
}

Felt i feilsvaret

FeltTypeKan være nullEksempelBeskrivelse
typestringNei"urn:genderapi:problem:validation_error"URI som identifiserer problemtypen.
titlestringNei"validation error"Kort, lesbar tittel på feilen.
statusintegerNei422HTTP-statuskode.
detailstringNei"The request does not match the schema."Forklaring på denne konkrete feilen.
instancestringNei"urn:uuid:550e8400-e29b-41d4-a716-446655440000"ID for den mislykkede forespørselen.
codestringNei"validation_error"Stabil, maskinlesbar feilkode.
request_idstringNei"550e8400-e29b-41d4-a716-446655440000"Unik ID for dette HTTP-forsøket; sendes også i X-Request-ID.
documentationstringNei"https://api.genderapi.io/api/v2/errors"Lenke til feilkatalogen, når den er oppgitt.
actionstringNei"correct_request"Anbefalt tiltak; finnes når det er definert i feilkatalogen.
errorsarray<object>Nei[{"pointer":"/value","message":"must NOT have fewer than 1 characters"}]Valideringsproblemer, når de er tilgjengelige. Hvert element inneholder pointer og message.
errors[].pointerstringNei"/value"JSON Pointer som peker på de ugyldige inndataene.
errors[].messagestringNei"must NOT have fewer than 1 characters"Forklaring på valideringsproblemet.

Metadata om tilgang, belastning og forespørsel

FeltTypeKan være nullEksempelBeskrivelse
meta.request_idstringNei"550e8400-e29b-41d4-a716-446655440000"Unik ID for dette HTTP-forsøket; sendes også i X-Request-ID.
meta.duration_msintegerNei42Behandlingstid for forespørselen i millisekunder.
meta.access.modestringNei"api_key"api_key, ip_trial eller unauthenticated. Kontroller at verdien er api_key når du bruker en betalt konto.
meta.access.reasonstringJanullÅrsak til at IP-prøveperioden ble brukt: api_key_missing, api_key_invalid eller api_key_not_found; ellers null.
meta.usage.charged_creditsintegerJa1Netto belastede kreditter. 0 før belastning eller etter en bekreftet full refusjon; null når belastningen ikke er bekreftet.
meta.usage.remaining_creditsintegerJa99Saldo når operasjonen er fullført. Kan være negativ; null når saldoen ikke er tilgjengelig eller belastningen ikke er bekreftet.
meta.usage.billing_statusstringNei"confirmed"not_charged, confirmed eller unconfirmed. Sjekk dette før du prøver en mislykket prediksjon på nytt.
meta.usage.resets_atstringJa"2026-09-27T12:00:00.000Z"Tidspunkt for tilbakestilling av IP-prøveperioden i UTC (ISO 8601); null for kontoer med API-nøkkel eller når tidspunktet er ukjent.
meta.usage.limitintegerJa10Kvoten i IP-prøveperioden; null for kontoer med API-nøkkel.
meta.usage.period_secondsintegerJa86400Lengden på IP-prøveperioden i sekunder; null for kontoer med API-nøkkel.

Nye forsøk og belastning

Hver prediksjonsforespørsel er en ny operasjon, også en identisk forespørsel som sendes på nytt. De vanlige kredittreglene gjelder for hver forespørsel. Det finnes ingen beskyttelse mot dupliserte forespørsler, så unngå automatiske nye forsøk etter brudd i tilkoblingen eller et ukjent utfall.

Ved et 429-svar venter du i tiden som er angitt i Retry-After, før du sender en ny forespørsel. Ved feil i prediksjoner sjekker du først code, action og meta.usage.billing_status. Ved billing_reconciliation_required eller ubekreftet belastning kontakter du kundestøtte med request_id før du prøver på nytt.

En delvis vellykket samleforespørsel kan returnere HTTP 200. Kontroller hvert element, og send bare de mislykkede elementene på nytt etter at belastningen er bekreftet; vellykkede elementer blir belastet igjen hvis de sendes på nytt.

X-Request-ID og meta.request_id identifiserer det gjeldende HTTP-forsøket. Les /usage for gjeldende saldo. HEAD starter ikke en prediksjon som belastes. Svar på prediksjoner og kontoforespørsler kan ikke bufres.

Klienter bør tåle nye felt i svaret og beholde null-verdier når informasjon ikke er tilgjengelig.

Forespørselsgrenser

Håndter HTTP 429 og Retry-After i stedet for å anta at forespørsler alltid godtas opp til disse grensene. Tjenestekapasiteten er delt. Verdiene som vises, er gjeldende standardverdier for tjenesten. Svar når en forespørselsgrense er nådd, inneholder X-RateLimit-Limit, X-RateLimit-Remaining og X-RateLimit-Reset (Unix-sekunder). Retry-After er en ventetid i sekunder. Disse headerne beskriver forespørselsgrenser, ikke gjenværende kreditter. Også den gratis avlesningen via /usage teller mot forespørselsgrensene.

GrenseVerdi
JSON-body i forespørselenMaksimalt 64 KiB
Prediksjonsverdi1–254 tegn
Samleforespørsel50 elementer med API-nøkkel; 10 i IP-prøveperioden
Grense per konto120 forespørsler per minutt
Grense per IP-adresse600 forespørsler per minutt
Samtidige operasjoner2 per konto; 16 for hele tjenesten