DOKUMENTACE API V2

GenderAPI.io V2: chyby a opakování požadavků

Zpracujte v GenderAPI.io V2 odpovědi Problem Details, chyby validace, limity počtu požadavků a nejisté účtování. Zjistěte, jak se účtují opakované požadavky a kdy kontaktovat podporu.

Chyby a stavové kódy HTTP

Chyby aplikace používají application/problem+json (RFC 9457). Rozhodujte se podle stabilních polí code a action, ne podle textu v detail. Chyby validace obsahují v errors umístění ve formátu JSON Pointer. Při kontaktu s podporou uveďte request_id. Selhání proxy nebo přenosu může vrátit jiné tělo, proto před parsováním JSON zkontrolujte Content-Type.

Následující syntetický příklad 422 ukazuje neplatnou syntaxi e-mailu před účtováním. Veřejný katalog chyb uvádí každý kód, stav, vysvětlení a doporučený postup.

Stav HTTPObvyklý významDalší krok
400 / 413 / 415Chybný JSON, příliš velké tělo nebo nepodporovaný typ média.Opravte požadavek.
401 / 403Přístup zamítnut, omezení účtu nebo nedostatek kreditů.Zkontrolujte code; opravte přístup, nebo doplňte kredity / počkejte na obnovení zkušebního režimu.
422Neplatný vstup nebo neslučitelné možnosti.Opravte pole uvedená v errors.
404 / 405Neznámá cesta nebo nepodporovaná metoda HTTP.Zkontrolujte cestu k endpointu a hlavičku odpovědi Allow.
429Limit počtu požadavků nebo souběžných operací.Před odesláním dalšího požadavku počkejte po dobu uvedenou v Retry-After.
500Neočekávané selhání serveru.Kontaktujte podporu a uveďte request_id; před opakováním zkontrolujte účtování.
502 / 503 / 504Selhání poskytovatele, závislosti, účtování nebo vypršení časového limitu.Před opakováním zkontrolujte code, action a billing_status.
Ilustrativní odpověď JSON
{
  "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
    }
  }
}

Pole chybové odpovědi

PoleTypMůže být nullPříkladPopis
typestringNe"urn:genderapi:problem:validation_error"URI, které identifikuje typ problému.
titlestringNe"validation error"Krátký srozumitelný název chyby.
statusintegerNe422Stavový kód HTTP.
detailstringNe"The request does not match the schema."Vysvětlení tohoto konkrétního selhání.
instancestringNe"urn:uuid:550e8400-e29b-41d4-a716-446655440000"Identifikátor neúspěšného požadavku.
codestringNe"validation_error"Stabilní strojově čitelný kód chyby.
request_idstringNe"550e8400-e29b-41d4-a716-446655440000"Jedinečný identifikátor tohoto pokusu HTTP; posílá se také v X-Request-ID.
documentationstringNe"https://api.genderapi.io/api/v2/errors"Odkaz na katalog chyb, pokud je uveden.
actionstringNe"correct_request"Doporučený postup nápravy; uvádí se, pokud je definován v katalogu chyb.
errorsarray<object>Ne[{"pointer":"/value","message":"must NOT have fewer than 1 characters"}]Problémy s validací, pokud jsou k dispozici. Každá položka obsahuje pointer a message.
errors[].pointerstringNe"/value"JSON Pointer označující neplatný vstup.
errors[].messagestringNe"must NOT have fewer than 1 characters"Vysvětlení problému s validací.

Metadata přístupu, účtování a požadavku

PoleTypMůže být nullPříkladPopis
meta.request_idstringNe"550e8400-e29b-41d4-a716-446655440000"Jedinečný identifikátor tohoto pokusu HTTP; posílá se také v X-Request-ID.
meta.duration_msintegerNe42Doba zpracování požadavku v milisekundách.
meta.access.modestringNe"api_key"api_key, ip_trial nebo unauthenticated. U placeného účtu ověřte api_key.
meta.access.reasonstringAnonullDůvod přechodu na zkušební režim: api_key_missing, api_key_invalid nebo api_key_not_found; jinak null.
meta.usage.charged_creditsintegerAno1Čistý počet odečtených kreditů. Nula před odečtením nebo po úplném potvrzeném vrácení; null, pokud účtování není potvrzeno.
meta.usage.remaining_creditsintegerAno99Zůstatek po dokončení operace. Může být záporný; null, pokud není k dispozici nebo účtování není potvrzeno.
meta.usage.billing_statusstringNe"confirmed"not_charged, confirmed nebo unconfirmed. Zkontrolujte před opakováním neúspěšného odhadu.
meta.usage.resets_atstringAno"2026-09-27T12:00:00.000Z"Čas obnovení zkušebního režimu podle IP v UTC (ISO 8601); null u účtů s API klíčem nebo pokud není znám.
meta.usage.limitintegerAno10Limit kreditů zkušebního režimu podle IP; null u účtů s API klíčem.
meta.usage.period_secondsintegerAno86400Délka období zkušebního režimu podle IP v sekundách; null u účtů s API klíčem.

Opakování požadavků a účtování

Každý požadavek na odhad je nová operace, i když znovu posíláte totožný požadavek. Na každý požadavek se vztahují běžná pravidla pro kredity. Ochrana proti duplicitním požadavkům neexistuje, proto se po ztrátě spojení nebo při neznámém výsledku vyhněte automatickému opakování.

U odpovědi 429 počkejte před dalším požadavkem po dobu uvedenou v Retry-After. U selhání odhadu nejprve zkontrolujte code, action a meta.usage.billing_status. U billing_reconciliation_required nebo nepotvrzeného účtování kontaktujte před opakováním podporu a uveďte request_id.

Částečně úspěšná dávka může vrátit HTTP 200. Zkontrolujte každou položku a po potvrzení účtování znovu odešlete jen neúspěšné položky; opětovně odeslané úspěšné položky by se naúčtovaly znovu.

X-Request-ID a meta.request_id identifikují aktuální pokus HTTP. Aktuální zůstatek zjistíte přes /usage. HEAD nespouští zpoplatněný odhad. Odpovědi s odhady a údaji o účtu se neukládají do mezipaměti.

Klienti by měli tolerovat nově přidaná pole odpovědi a zachovávat hodnoty null, když informace nejsou k dispozici.

Limity požadavků

Zpracovávejte HTTP 429 a Retry-After a nepředpokládejte, že požadavky budou při těchto horních mezích vždy přijaty. Kapacita služby je sdílená. Uvedené hodnoty jsou aktuální výchozí nastavení služby. Odpovědi při překročení limitu obsahují X-RateLimit-Limit, X-RateLimit-Remaining a X-RateLimit-Reset (sekundy v čase Unix). Retry-After je prodleva v sekundách. Tyto hlavičky popisují limity počtu požadavků, ne zbývající kredity. I bezplatné zjištění zůstatku přes /usage se započítává do limitů počtu požadavků.

LimitHodnota
Tělo požadavku JSONNejvýše 64 KiB
Hodnota pro odhad1–254 znaků
Dávka50 položek s API klíčem; 10 ve zkušebním režimu podle IP
Limit pro účet120 požadavků za minutu
Limit pro IP adresu600 požadavků za minutu
Souběžné operace2 na účet; 16 v celé službě