Nimien, sähköpostiosoitteiden ja käyttäjänimien eräpyyntö
| Parametri | Tyyppi | Pakollinen | Oletusarvo | Kuvaus |
|---|---|---|---|---|
items | array<object> | Kyllä | — | 1–50 ennustekohdetta; IP-kokeilussa enintään 10. Tulokset säilyttävät syötteiden järjestyksen. |
items[].type | string | Kyllä | — | Syötteen luokka: name, email tai username. |
items[].value | string | Kyllä | — | Pakollinen. 1–254 merkkiä; ei saa olla tyhjä eikä sisältää ohjausmerkkejä. Sähköpostiarvon on oltava syntaksiltaan kelvollinen sähköpostiosoite. |
items[].country | string | Ei | — | Valinnainen ISO 3166-1 alpha-2 -koodi isoilla kirjaimilla, esimerkiksi TR tai US. Maakohtainen haku voi siirtyä käyttämään globaalia tietoaineistoa. |
items[].forceToGenderize | boolean | Ei | false | Hakee ensin tietoaineistosta ja sitten tarvittaessa lempinimiä tulkitsevalla tekoälyllä. Tuettu tyypeille name, email ja username. |
items[].options | object | Ei | — | Kunkin syötteen tekoälyasetukset sisältävä objekti. |
items[].options.ai_mode | string | Ei | off | Sallitut arvot: off, fallback, always. Kun forceToGenderize: true, jätä kenttä pois tai käytä fallback-arvoa. |
items[].id | string | Ei | — | Valinnainen 1–64 merkin tunniste POST-pyynnön JSON-rungossa. Palautetaan kunkin erätuloksen yhteydessä, ja sen on oltava yksilöllinen erän sisällä. Yksittäisissä ennusteissa se hyväksytään, mutta sitä ei palauteta. Ei tuettu GET-kyselyissä. |
POST /gender/batch hyväksyy items-taulukon, jossa on 1–50 kohdetta API-avaimella tai enintään 10 kohdetta IP-kokeilussa. Voit lähettää pelkkiä nimiä, pelkkiä sähköpostiosoitteita, pelkkiä käyttäjänimiä tai kaikkia kolmea sekaisin. Jokaisella kohteella on omat country-, forceToGenderize- ja options-kentät. Tunnisteet ovat valinnaisia, mutta niiden on oltava yksilöllisiä.
Tulokset säilyttävät syötteiden järjestyksen, ja kukin tulos sisältää kentät index ja charged_credits, valinnaisen id-tunnisteesi sekä täsmälleen toisen kentistä data tai error. HTTP 200 voi sisältää kohdekohtaisia virheitä, joten tarkista jokainen kohde. meta.summary ilmoittaa arvot total, succeeded, identified, unknown ja failed. Tuntematon ennuste on onnistunut ja laskutettava kohde.
Jos pyynnön validointi tai suunnittelu epäonnistuu, koko erä hylätään ennen veloitusta. Jos jokainen suoritettu kohde epäonnistuu, API palauttaa muun kuin 2xx-tilan Problem-vastauksen, jossa on data-taulukko ja vanha results-alias. Epäonnistuneet kohteet maksavat nolla krediittiä vahvistetun palautuksen jälkeen. Jos laskutusta ei ole vahvistettu, älä oleta kohteiden veloituksia lopullisiksi.
Valitse ohjelmointikieli. Määritä API-avain, suorita sitten esimerkki palvelimellasi.
Jokainen ennustepyyntö on uusi laskutettava toiminto, myös uudelleenyritys. Nämä esimerkit eivät yritä uudelleen automaattisesti. Tarkista laskutuksen tila ennen uuden pyynnön lähettämistä.
Ennen suorittamista: käyttöoikeus ja virheiden käsittely
Suorita esimerkit palvelimellasi. Aseta prosessin ympäristömuuttujan GENDERAPI_API_KEY arvoksi nykyinen API-avaimesi. Varmista, että meta.access.mode on api_key: tunnistamaton avain voi siirtää pyynnön IP-kokeiluun.
HTTP 4xx- ja 5xx-JSON-vastauksissa esimerkit säilyttävät virherungon ja palauttavat nollasta poikkeavan poistumiskoodin. Tarkista code, action ja meta.usage.billing_status ennen uutta yritystä. Tarkista HTTP 200 -eräpyyntövastauksissa lisäksi kunkin kohteen data tai error.
Virhe- ja uudelleenyritysopas →cURL 7.76+ POSIX-komentotulkissa. Suorita päätteessä. Suoritusympäristön dokumentaatio
Node.js 22+; sisäänrakennettu fetch. Tallenna nimellä example.mjs ja suorita node example.mjs. Suoritusympäristön dokumentaatio
Python 3.10+; standardikirjasto. Tallenna nimellä example.py ja suorita python3 example.py. Suoritusympäristön dokumentaatio
PHP 8+ cURL-laajennuksella. Tallenna nimellä example.php ja suorita php example.php. Suoritusympäristön dokumentaatio
Java 17+; standardikirjaston HTTP-asiakas. Tallenna nimellä GenderApiExample.java ja suorita java GenderApiExample.java. Suoritusympäristön dokumentaatio
.NET 8+ -konsolisovellus. Käytä konsoliprojektissa nimellä Program.cs ja suorita sitten dotnet run. Suoritusympäristön dokumentaatio
Go 1.22+; standardikirjasto. Tallenna nimellä main.go ja suorita go run main.go. Suoritusympäristön dokumentaatio
Eräpyynnön vastauksen tulkinta
Tämä esimerkki yhdistää kaksi 1. lokakuuta 2026 haettua todellista tulosta, tietoaineisto-osuman ja tuntemattoman tuloksen, havainnollistavaan palveluntarjoajan virheeseen. Se havainnollistaa osittain onnistunutta HTTP 200 -vastausta, ei yllä olevan eräpyynnön odotettua tulosta. Kaksi onnistunutta kohdetta maksavat 1 krediitin kumpikin; epäonnistuneen kohteen veloitus on vahvistetusti nolla.
{
"data": [
{
"index": 0,
"id": "known",
"charged_credits": 1,
"data": {
"input": {
"type": "name",
"value": "Laura",
"country": "FI"
},
"name": "laura",
"gender": "female",
"country": "FI",
"confidence": 0.9966887417218543,
"confidence_kind": "observed_frequency",
"sample_count": 906,
"source": "dataset",
"result_status": "identified",
"reason": null,
"country_source": "dataset",
"match": {
"name": "laura",
"method": "normalized",
"scope": "country",
"country": "FI"
}
}
},
{
"index": 1,
"id": "missing",
"charged_credits": 1,
"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
}
}
},
{
"index": 2,
"id": "failed",
"charged_credits": 0,
"error": {
"type": "urn:genderapi:problem:ai_upstream_error",
"title": "ai upstream error",
"status": 502,
"detail": "The AI provider could not complete the request.",
"instance": "urn:uuid:11111111-1111-4111-8111-111111111111",
"code": "ai_upstream_error",
"request_id": "11111111-1111-4111-8111-111111111111",
"documentation": "https://api.genderapi.io/api/v2/errors",
"action": "inspect_billing_before_retry"
}
}
],
"meta": {
"request_id": "11111111-1111-4111-8111-111111111111",
"duration_ms": 12,
"access": {
"mode": "ip_trial",
"reason": "api_key_missing"
},
"usage": {
"charged_credits": 2,
"remaining_credits": 6,
"billing_status": "confirmed",
"resets_at": "2026-09-26T12:00:00.000Z",
"limit": 10,
"period_seconds": 86400
},
"summary": {
"total": 3,
"succeeded": 2,
"identified": 1,
"unknown": 1,
"failed": 1
}
}
}Erätulosten kentät
| Kenttä | Tyyppi | Voi olla null | Esimerkki | Kuvaus |
|---|---|---|---|---|
data | array<object> | Ei | […] | Järjestetyt tulokset. Kukin kohde sisältää ennusteen tai virheen; tarkista kaikki. |
data[].index | integer | Ei | 0 | Sijainti lähetetyssä items-taulukossa nollasta alkaen. |
data[].id | string | Ei | "contact-1" | Oma syötetunnisteesi; mukana vain, jos annoit sen. |
data[].charged_credits | integer | Ei | 1 | Kohteen nettoveloitus vahvistettujen palautusten jälkeen. Ei lopullinen, jos kokonaisveloitusta ei ole vahvistettu. |
data[].data | object | Ei | {…} | Mukana onnistuneelle kohteelle, myös tuntemattomalle tulokselle. Käyttää vastausoppaassa kuvattuja ennustekenttiä. |
data[].error | object | Ei | {…} | Mukana epäonnistuneelle kohteelle data-kentän sijaan. Käyttää virheoppaassa kuvattuja Problem Details -kenttiä. |
Erän yhteenvedon kentät
| Kenttä | Tyyppi | Voi olla null | Esimerkki | Kuvaus |
|---|---|---|---|---|
meta.summary.total | integer | Ei | 3 | Erän kohteiden kokonaismäärä. |
meta.summary.succeeded | integer | Ei | 2 | Onnistuneet kohteet, myös tuntemattomat ennusteet. |
meta.summary.identified | integer | Ei | 1 | Onnistuneet kohteet, joiden sukupuoli ei ole null. |
meta.summary.unknown | integer | Ei | 1 | Onnistuneet kohteet, joiden sukupuoli on null; nämä tulokset veloitetaan. |
meta.summary.failed | integer | Ei | 1 | Epäonnistuneet kohteet. total = succeeded + failed; succeeded = identified + unknown. |
Käyttöoikeus, veloitus ja pyynnön metatiedot
| Kenttä | Tyyppi | Voi olla null | Esimerkki | Kuvaus |
|---|---|---|---|---|
meta.request_id | string | Ei | "550e8400-e29b-41d4-a716-446655440000" | Tämän HTTP-yrityksen yksilöllinen tunniste; myös X-Request-ID-otsakkeessa. |
meta.duration_ms | integer | Ei | 42 | Pyynnön käsittelyaika millisekunteina. |
meta.access.mode | string | Ei | "api_key" | api_key, ip_trial tai unauthenticated. Tarkista api_key käyttäessäsi maksullista tiliä. |
meta.access.reason | string | Kyllä | null | Kokeiluun siirtymisen syy: api_key_missing, api_key_invalid tai api_key_not_found; muuten null. |
meta.usage.charged_credits | integer | Kyllä | 1 | Veloitetut nettokrediitit. Nolla ennen veloitusta tai vahvistetun täyden palautuksen jälkeen; null, jos veloitusta ei ole vahvistettu. |
meta.usage.remaining_credits | integer | Kyllä | 99 | Saldo toiminnon valmistuessa. Voi olla negatiivinen; null, jos saldoa ei saada tai veloitusta ei ole vahvistettu. |
meta.usage.billing_status | string | Ei | "confirmed" | not_charged, confirmed tai unconfirmed. Tarkista ennen epäonnistuneen ennusteen uutta yritystä. |
meta.usage.resets_at | string | Kyllä | "2026-09-27T12:00:00.000Z" | IP-kokeilun nollausaika UTC-ajassa (ISO 8601); null API-avaintileillä tai jos aika ei ole tiedossa. |
meta.usage.limit | integer | Kyllä | 10 | IP-kokeilun krediittikiintiö; null API-avaintileille. |
meta.usage.period_seconds | integer | Kyllä | 86400 | IP-kokeilujakson pituus sekunteina; null API-avaintileille. |
Suunnittele erän krediitit ja uudelleenyritykset
Todenna pyyntö nykyisellä API-avaimellasi Bearer-otsakkeessa ja lähetä Content-Type: application/json. Jokainen lähetetty erä on uusi toiminto. Jos yrität osittain epäonnistunutta erää uudelleen, lähetä laskutuksen tarkistamisen jälkeen vain epäonnistuneet kohteet; onnistuneiden kohteiden uudelleenlähetys veloittaa ne uudelleen.
Eräpyynnön kohteissa tekoäly on oletuksena pois (off), ja kukin onnistunut kohde maksaa 1 krediitin. Erikseen valittu fallback maksaa myös yhteensä 1 krediitin tekoäly mukaan lukien; always maksaa 2. forceToGenderize maksaa 1 krediitin tietoaineistosta ratkaistusta tuloksesta tai yhteensä 2, jos tekoälyä käytetään. Myös onnistuneet tuntemattomat tulokset veloitetaan. Yksi krediitti alkusaldona riittää erän aloittamiseen; lopullinen veloitus voi jättää saldon negatiiviseksi.
Käsittele yhteystietoluettelo niin, että jokainen rivi pysyy tallessa
Eräpyyntöjen päätepiste käsittelee luettelot, joissa on pelkkiä nimiä, pelkkiä sähköpostiosoitteita tai molempia sekaisin. Jaa API-avaimella tehtävä ajo enintään 50 kohteen eriin; IP-kokeilu sallii enintään 10 kohdetta pyyntöä kohden. Pidä itse kirjaa ajon etenemisestä ja anna jokaiselle kohteelle id, joka on yksilöllinen erän sisällä. Palautettu index lasketaan nollasta lähetetyn erän sisällä, ei koko yhteystietoluettelossa.
| Vaihe | Mitä tallennetaan tai tarkistetaan | Miksi sillä on merkitystä |
|---|---|---|
| 1. Valmistele jokainen erä | Säilytä lähderivi ja kohteen id; aseta country ja tekoälyasetukset kohdekohtaisesti. | Älä oleta, että nimi on yksilöllinen kaikkien yhteystietojen joukossa. |
| 2. Lue koko vastaus | Tallenna meta.request_id ja yhdistä jokainen data[]-tietue id- tai index-arvon avulla. | HTTP 200 voi sisältää sekä onnistuneita ennusteita että kohdekohtaisia virheitä. |
| 3. Tallenna onnistuneet tulokset | Säilytä sekä tunnistetut että tuntemattomat ennusteet, myös JSON null -arvot ja perustekentät. | Tuntematon tulos on valmis ja laskutettava tulos; se ei ole epäonnistunut rivi, jota yritetään automaattisesti uudelleen. |
| 4. Täsmäytä virheet ja krediitit | Tarkista jokainen error ja meta.usage.billing_status ennen kuin päätät uudesta pyynnöstä. | Kun laskutus on vahvistettu, yritä uudelleen vain epäonnistuneita kohteita, joiden virhe sitä edellyttää. Onnistuneet kohteet veloitettaisiin uudelleen. |
| 5. Keskeytä epävarmat uudelleenyritykset | Säilytä pyynnön tunniste, jos laskutusta ei ole vahvistettu tai verkkovirhe jättää tuloksen epäselväksi. | Älä lähetä koko erää uudelleen sokeasti; noudata ensin virheitä ja laskutusta koskevia ohjeita. |
Valitse päättelytapa jokaiselle yhteystiedolle
Tämä suoritettava pyyntö käyttää kolmea eri käytäntöä: vain tietoaineistoa koko nimelle, tavallista tekoälyä varalla sähköpostiosoitteelle ja lempinimiä tulkitsevaa tekoälyä varalla käyttäjänimelle. Kyse on esimerkkisyötteestä, ei lupauksesta, että kaikille kolmelle yhteystiedolle saadaan sukupuoli. Valitse ohjelmointikieli koodin yläpuolelta ja aseta GENDERAPI_API_KEY ennen suorittamista.
Ilman forceToGenderize-asetusta eräpyynnön kohteissa tekoäly on oletuksena pois (off), toisin kuin yksittäisissä hauissa. Aseta fallback erikseen, jos haluat käyttää tavallista tekoälyä varalla. Sekä off että tavallinen fallback maksavat 1 krediitin onnistunutta kohdetta kohden; always ohittaa tietoaineiston ja maksaa 2. forceToGenderize maksaa 1 krediitin tietoaineistosta ratkaistusta tuloksesta tai yhteensä 2, jos tekoälyä käytetään. Myös onnistuneet tuntemattomat tulokset veloitetaan. Älä yhdistä forceToGenderize-asetusta tiloihin off tai always.
Valitse ohjelmointikieli. Määritä API-avain, suorita sitten esimerkki palvelimellasi.
Jokainen ennustepyyntö on uusi laskutettava toiminto, myös uudelleenyritys. Nämä esimerkit eivät yritä uudelleen automaattisesti. Tarkista laskutuksen tila ennen uuden pyynnön lähettämistä.
Ennen suorittamista: käyttöoikeus ja virheiden käsittely
Suorita esimerkit palvelimellasi. Aseta prosessin ympäristömuuttujan GENDERAPI_API_KEY arvoksi nykyinen API-avaimesi. Varmista, että meta.access.mode on api_key: tunnistamaton avain voi siirtää pyynnön IP-kokeiluun.
HTTP 4xx- ja 5xx-JSON-vastauksissa esimerkit säilyttävät virherungon ja palauttavat nollasta poikkeavan poistumiskoodin. Tarkista code, action ja meta.usage.billing_status ennen uutta yritystä. Tarkista HTTP 200 -eräpyyntövastauksissa lisäksi kunkin kohteen data tai error.
Virhe- ja uudelleenyritysopas →cURL 7.76+ POSIX-komentotulkissa. Suorita päätteessä. Suoritusympäristön dokumentaatio
Node.js 22+; sisäänrakennettu fetch. Tallenna nimellä example.mjs ja suorita node example.mjs. Suoritusympäristön dokumentaatio
Python 3.10+; standardikirjasto. Tallenna nimellä example.py ja suorita python3 example.py. Suoritusympäristön dokumentaatio
PHP 8+ cURL-laajennuksella. Tallenna nimellä example.php ja suorita php example.php. Suoritusympäristön dokumentaatio
Java 17+; standardikirjaston HTTP-asiakas. Tallenna nimellä GenderApiExample.java ja suorita java GenderApiExample.java. Suoritusympäristön dokumentaatio
.NET 8+ -konsolisovellus. Käytä konsoliprojektissa nimellä Program.cs ja suorita sitten dotnet run. Suoritusympäristön dokumentaatio
Go 1.22+; standardikirjasto. Tallenna nimellä main.go ja suorita go run main.go. Suoritusympäristön dokumentaatio