API-DOKUMENTAATIO V2

API V2:n virheet ja uudelleenyritykset

Käsittele GenderAPI.io V2:n Problem Details -vastaukset, validointivirheet, pyyntörajat ja laskutuksen epävarmuus. Tutustu uudelleenyritysten veloituksiin ja siihen, milloin tukeen kannattaa ottaa yhteyttä.

Virheet ja HTTP-tilakoodit

Sovellusvirheet käyttävät application/problem+json-muotoa (RFC 9457). Käsittele virheet pysyvien code- ja action-kenttien perusteella, älä detail-kentän selitystekstin perusteella. Validointivirheissä errors sisältää kenttien JSON Pointer -sijainnit. Ilmoita request_id tukipyynnössä. Välityspalvelin- tai yhteysvirheen vastaus voi olla erilainen; tarkista Content-Type ennen JSON-jäsennystä.

Seuraava synteettinen 422-esimerkki näyttää virheellisen sähköpostisyntaksin, joka hylätään ennen laskutusta. Julkinen virheluettelo sisältää jokaisen koodin, tilan, selityksen ja suositellun toimenpiteen.

HTTP-tilaTyypillinen merkitysSeuraava vaihe
400 / 413 / 415Virheellinen JSON, liian suuri runko tai mediatyyppiä ei tueta.Korjaa pyyntö.
401 / 403Käyttö estetty, tilirajoitus tai krediitit eivät riitä.Tarkista code; korjaa käyttöoikeus tai lisää krediittejä / odota kokeilun nollautumista.
422Virheellinen syöte tai yhteensopimattomat asetukset.Korjaa kentät, jotka errors-taulukko ilmoittaa.
404 / 405Tuntematon reitti tai HTTP-metodia ei tueta.Tarkista päätepisteen polku ja Allow-vastausotsake.
429Pyyntömäärä- tai samanaikaisuusraja.Odota Retry-After-otsakkeen ilmoittama aika ennen uuden pyynnön lähettämistä.
500Odottamaton palvelinvirhe.Ota yhteyttä tukeen ja ilmoita request_id; tarkista laskutus ennen uutta yritystä.
502 / 503 / 504Palveluntarjoajan, riippuvuuden, laskutuksen tai aikakatkaisun virhe.Tarkista code, action ja billing_status ennen kuin yrität uudelleen.
Havainnollistava JSON-vastaus
{
  "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
    }
  }
}

Virhevastauksen kentät

KenttäTyyppiVoi olla nullEsimerkkiKuvaus
typestringEi"urn:genderapi:problem:validation_error"Ongelman tyypin yksilöivä URI.
titlestringEi"validation error"Lyhyt, ihmiselle luettava virheotsikko.
statusintegerEi422HTTP-tilakoodi.
detailstringEi"The request does not match the schema."Tämän nimenomaisen virheen selitys.
instancestringEi"urn:uuid:550e8400-e29b-41d4-a716-446655440000"Epäonnistuneen pyynnön tunniste.
codestringEi"validation_error"Vakaa, koneellisesti luettava virhekoodi.
request_idstringEi"550e8400-e29b-41d4-a716-446655440000"Tämän HTTP-yrityksen yksilöllinen tunniste; myös X-Request-ID-otsakkeessa.
documentationstringEi"https://api.genderapi.io/api/v2/errors"Linkki virheluetteloon, jos annettu.
actionstringEi"correct_request"Ehdotettu korjaustoimi, jos määritelty virheluettelossa.
errorsarray<object>Ei[{"pointer":"/value","message":"must NOT have fewer than 1 characters"}]Validointiongelmat, jos saatavilla. Kukin kohde sisältää kentät pointer ja message.
errors[].pointerstringEi"/value"Virheellisen syötteen osoittava JSON Pointer.
errors[].messagestringEi"must NOT have fewer than 1 characters"Validointiongelman selitys.

Käyttöoikeus, veloitus ja pyynnön metatiedot

KenttäTyyppiVoi olla nullEsimerkkiKuvaus
meta.request_idstringEi"550e8400-e29b-41d4-a716-446655440000"Tämän HTTP-yrityksen yksilöllinen tunniste; myös X-Request-ID-otsakkeessa.
meta.duration_msintegerEi42Pyynnön käsittelyaika millisekunteina.
meta.access.modestringEi"api_key"api_key, ip_trial tai unauthenticated. Tarkista api_key käyttäessäsi maksullista tiliä.
meta.access.reasonstringKyllänullKokeiluun siirtymisen syy: api_key_missing, api_key_invalid tai api_key_not_found; muuten null.
meta.usage.charged_creditsintegerKyllä1Veloitetut nettokrediitit. Nolla ennen veloitusta tai vahvistetun täyden palautuksen jälkeen; null, jos veloitusta ei ole vahvistettu.
meta.usage.remaining_creditsintegerKyllä99Saldo toiminnon valmistuessa. Voi olla negatiivinen; null, jos saldoa ei saada tai veloitusta ei ole vahvistettu.
meta.usage.billing_statusstringEi"confirmed"not_charged, confirmed tai unconfirmed. Tarkista ennen epäonnistuneen ennusteen uutta yritystä.
meta.usage.resets_atstringKyllä"2026-09-27T12:00:00.000Z"IP-kokeilun nollausaika UTC-ajassa (ISO 8601); null API-avaintileillä tai jos aika ei ole tiedossa.
meta.usage.limitintegerKyllä10IP-kokeilun krediittikiintiö; null API-avaintileille.
meta.usage.period_secondsintegerKyllä86400IP-kokeilujakson pituus sekunteina; null API-avaintileille.

Uudelleenyritykset ja laskutus

Jokainen ennustepyyntö on uusi toiminto, myös uudelleen lähetetty identtinen pyyntö. Jokaiseen pyyntöön sovelletaan tavallisia krediittisääntöjä. Päällekkäisiltä pyynnöiltä ei ole suojaa, joten vältä automaattisia uudelleenyrityksiä yhteyden katkettua tai kun tulos on epäselvä.

Jos saat 429-vastauksen, odota Retry-After-otsakkeen ilmoittama aika ennen uuden pyynnön lähettämistä. Jos ennuste epäonnistuu, tarkista ensin code, action ja meta.usage.billing_status. Jos tila on billing_reconciliation_required tai laskutusta ei ole vahvistettu, ota yhteyttä tukeen ja ilmoita request_id ennen uutta yritystä.

Osittain onnistunut erä voi palauttaa HTTP 200 -vastauksen. Tarkista jokainen kohde ja lähetä uudelleen vain epäonnistuneet kohteet, kun laskutus on vahvistettu; onnistuneet kohteet laskutettaisiin uudelleen, jos ne lähetettäisiin uudelleen.

X-Request-ID ja meta.request_id yksilöivät nykyisen HTTP-yrityksen. Lue nykyinen saldo reitiltä /usage. HEAD ei käynnistä laskutettavaa ennustetta. Ennuste- ja tilivastauksia ei tallenneta välimuistiin.

Asiakasohjelmien tulee sietää vastaukseen lisättäviä uusia kenttiä ja säilyttää null-arvot, kun tietoa ei ole saatavilla.

Pyyntörajat

Käsittele HTTP 429 ja Retry-After äläkä oleta, että pyynnöt hyväksytään aina näihin ylärajoihin asti. Palvelun kapasiteetti on jaettu. Näytetyt arvot ovat palvelun nykyiset oletukset. Pyyntörajavastaukset sisältävät otsakkeet X-RateLimit-Limit, X-RateLimit-Remaining ja X-RateLimit-Reset (Unix-sekunteina). Retry-After on viive sekunteina. Nämä otsakkeet kuvaavat pyyntörajoja, eivät jäljellä olevia krediittejä. Myös maksuton /usage-luku lasketaan pyyntörajoihin.

RajaArvo
JSON-pyynnön runkoenintään 64 KiB
Ennustearvo1–254 merkkiä
Eräpyyntö50 kohdetta API-avaimella; 10 IP-kokeilussa
Tilikohtainen pyyntöraja120 pyyntöä minuutissa
IP-kohtainen pyyntöraja600 pyyntöä minuutissa
Samanaikaiset toiminnot2 tiliä kohden; 16 koko palvelussa