API-DOKUMENTATION V2

GenderAPI.io V2: fejl og nye forsøg

Håndtér Problem Details, valideringsfejl, forespørgselsgrænser og usikker opkrævning i GenderAPI.io V2. Forstå, hvad nye forsøg koster, og hvornår du skal kontakte support.

Fejl og HTTP-statuskoder

Applikationsfejl bruger application/problem+json (RFC 9457). Styr logikken efter de stabile felter code og action, ikke efter den læsbare tekst i detail. Valideringsfejl indeholder JSON Pointer-placeringer i errors. Angiv request_id, når du kontakter support. Fejl i proxy eller transport kan returnere en anden body, så kontrollér Content-Type, før du parser JSON.

Det følgende syntetiske 422-eksempel viser ugyldig e-mailsyntaks før opkrævning. Det offentlige fejlkatalog viser alle koder, statusser, forklaringer og foreslåede handlinger.

HTTP-statusTypisk betydningNæste skridt
400 / 413 / 415Ugyldig JSON, for stor body eller medietype, der ikke understøttes.Ret forespørgslen.
401 / 403Adgang afvist, kontobegrænsning eller for få kreditter.Kontrollér code. Ret adgangen, køb flere kreditter, eller vent på, at IP-prøveadgangen nulstilles.
422Ugyldigt input eller indstillinger, der ikke kan kombineres.Ret de felter, der er angivet i errors.
404 / 405Ukendt rute eller HTTP-metode, der ikke understøttes.Kontrollér endpointets sti og headeren Allow i svaret.
429Grænse for antal forespørgsler eller samtidige operationer.Vent den tid, Retry-After angiver, før du sender en ny forespørgsel.
500Uventet fejl på serveren.Kontakt support med request_id, og kontrollér opkrævningen, før du prøver igen.
502 / 503 / 504Fejl hos udbyderen, i en afhængighed, i opkrævningen eller på grund af timeout.Kontrollér code, action og billing_status, før du prøver igen.
Illustrativt 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
    }
  }
}

Felter i fejlsvaret

FeltTypeKan være nullEksempelBeskrivelse
typestringNej"urn:genderapi:problem:validation_error"URI, der identificerer problemtypen.
titlestringNej"validation error"Kort læsbar titel på fejlen.
statusintegerNej422HTTP-statuskode.
detailstringNej"The request does not match the schema."Forklaring på netop denne fejl.
instancestringNej"urn:uuid:550e8400-e29b-41d4-a716-446655440000"Id for den mislykkede forespørgsel.
codestringNej"validation_error"Stabil maskinlæsbar fejlkode.
request_idstringNej"550e8400-e29b-41d4-a716-446655440000"Entydigt id for dette HTTP-forsøg. Sendes også i X-Request-ID.
documentationstringNej"https://api.genderapi.io/api/v2/errors"Link til fejlkataloget, når det er angivet.
actionstringNej"correct_request"Foreslået handling for at løse fejlen. Findes, når den er defineret i fejlkataloget.
errorsarray<object>Nej[{"pointer":"/value","message":"must NOT have fewer than 1 characters"}]Valideringsproblemer, når de er tilgængelige. Hvert element indeholder pointer og message.
errors[].pointerstringNej"/value"JSON Pointer, der identificerer det ugyldige input.
errors[].messagestringNej"must NOT have fewer than 1 characters"Forklaring på valideringsproblemet.

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.

Nye forsøg og opkrævning

Hver forespørgsel om en forudsigelse er en ny operation, også når en identisk forespørgsel sendes igen. De normale regler for kreditter gælder for hver forespørgsel. Der er ingen beskyttelse mod dubletter, så undgå automatiske nye forsøg efter en afbrudt forbindelse eller et ukendt udfald.

Ved et 429-svar skal du vente den tid, Retry-After angiver, før du sender en ny forespørgsel. Ved fejl i forudsigelser skal du først kontrollere code, action og meta.usage.billing_status. Ved billing_reconciliation_required eller ubekræftet opkrævning skal du kontakte support med request_id, før du prøver igen.

En batch med delvis succes kan returnere HTTP 200. Kontrollér hvert element, og send kun de mislykkede elementer igen, når opkrævningen er bekræftet. Gennemførte elementer ville blive opkrævet igen, hvis de blev sendt igen.

X-Request-ID og meta.request_id identificerer det aktuelle HTTP-forsøg. Læs /usage for at se den aktuelle saldo. HEAD starter ikke en forudsigelse, der koster kreditter. Svar på forudsigelser og kontooplysninger må ikke caches.

Klienter bør tåle nye felter i svaret og bevare null-værdier, når oplysninger ikke er tilgængelige.

Forespørgselsgrænser

Håndtér HTTP 429 og Retry-After i stedet for at gå ud fra, at forespørgsler altid accepteres op til disse lofter. Tjenestens kapacitet er delt. De viste værdier er tjenestens aktuelle standarder. Svar ved overskredne grænser indeholder X-RateLimit-Limit, X-RateLimit-Remaining og X-RateLimit-Reset (Unix-sekunder). Retry-After er en forsinkelse i sekunder. Disse headers beskriver forespørgselsgrænser, ikke resterende kreditter. Selv den gratis læsning af /usage tæller med i forespørgselsgrænserne.

GrænseVærdi
JSON-body i forespørgslenHøjst 64 KiB
Værdi til forudsigelse1–254 tegn
Batch50 elementer med API-nøgle, 10 med IP-prøveadgangen
Forespørgsler pr. konto120 forespørgsler pr. minut
Forespørgsler pr. IP-adresse600 forespørgsler pr. minut
Samtidige operationer2 pr. konto, 16 på tværs af tjenesten