Namn, e-postadresser och användarnamn i batch
| Parameter | Typ | Obligatorisk | Standardvärde | Beskrivning |
|---|---|---|---|---|
items | array<object> | Ja | — | 1–50 prediktionsposter; högst 10 i IP-provperioden. Resultaten följer indataordningen. |
items[].type | string | Ja | — | Indatakategori: name, email eller username. |
items[].value | string | Ja | — | Krävs. 1–254 tecken, inte tomt och utan kontrolltecken. E-postvärden måste ha giltig e-postsyntax. |
items[].country | string | Nej | — | Valfri ISO 3166-1 alpha-2-kod med versaler, till exempel TR eller US. En landsspecifik sökning kan falla tillbaka på den globala datamängden. |
items[].forceToGenderize | boolean | Nej | false | Kontrollerar först datamängden och använder sedan AI med tolkning av smeknamn om inget resultat hittas. Stöds för name, email och username. |
items[].options | object | Nej | — | Objekt med AI-alternativ för respektive indata. |
items[].options.ai_mode | string | Nej | off | Tillåtna värden: off, fallback, always. Med forceToGenderize: true utelämnar du fältet eller använder fallback. |
items[].id | string | Nej | — | Valfri identifierare med 1–64 tecken i POST-JSON. Returneras bredvid respektive batchresultat och måste vara unik inom en batch. Godtas men returneras inte för enskilda prediktioner. Stöds inte i GET-frågor. |
GenderAPI.io V2 tar emot namn, e-postadresser och användarnamn tillsammans via POST https://api.genderapi.io/api/v2/gender/batch. Skicka en items-array med 1–50 poster vid åtkomst med API-nyckel, eller högst 10 i IP-provperioden. Varje post använder type och value och kan ha egna värden för country, forceToGenderize och options. ID:n är valfria och måste vara unika inom batchen.
Resultaten följer indataordningen och innehåller index, ditt valfria id, charged_credits och exakt ett av fälten data eller error. HTTP 200 kan innehålla fel för enskilda poster, så kontrollera varje post. meta.summary anger total, succeeded, identified, unknown och failed. En okänd prediktion är en lyckad post som debiteras.
Om valideringen eller planeringen av förfrågan misslyckas avvisas batchen före debitering. Om alla körda poster misslyckas returnerar API:et ett Problem-svar med en status utanför 2xx, en data-array och det äldre aliaset results. Misslyckade poster kostar ingenting efter en bekräftad återbetalning. Om debiteringen är obekräftad ska du inte utgå från att kostnaden för posterna är slutgiltig.
Välj ett programmeringsspråk. Konfigurera din API-nyckel, kör sedan exemplet på din server.
Varje prediktionsförfrågan är en ny debiterbar åtgärd, även vid nya försök. Exemplen gör inga automatiska nya försök. Kontrollera debiteringsstatus innan du skickar en ny förfrågan.
Innan du kör: åtkomst och felhantering
Kör exemplen på din server. Sätt GENDERAPI_API_KEY i processmiljön till din befintliga API-nyckel. Kontrollera att meta.access.mode är api_key: en nyckel som inte känns igen kan leda till IP-provperioden.
Vid JSON-svar med HTTP 4xx och 5xx behålls felinnehållet och exemplet avslutas med en slutstatus som inte är noll. Kontrollera code, action och meta.usage.billing_status innan du försöker igen. För batchsvar med HTTP 200 kontrollerar du dessutom data eller error i varje post.
Guide om fel och nya försök →cURL 7.76+ i ett POSIX-skal. Kör i terminalen. Dokumentation för körmiljön
Node.js 22+; inbyggd fetch. Spara som example.mjs och kör node example.mjs. Dokumentation för körmiljön
Python 3.10+; standardbiblioteket. Spara som example.py och kör python3 example.py. Dokumentation för körmiljön
PHP 8+ med tillägget cURL. Spara som example.php och kör php example.php. Dokumentation för körmiljön
Java 17+; inbyggd HTTP-klient. Spara som GenderApiExample.java och kör java GenderApiExample.java. Dokumentation för körmiljön
Konsolapplikation med .NET 8+. Använd som Program.cs i ett konsolprojekt och kör sedan dotnet run. Dokumentation för körmiljön
Go 1.22+; standardbiblioteket. Spara som main.go och kör go run main.go. Dokumentation för körmiljön
Tolka ett batchsvar
Det här exemplet kombinerar två verkliga resultat som hämtades den 1 oktober 2026, en träff i datamängden och ett okänt resultat, med ett illustrativt leverantörsfel. Det visar ett delvis lyckat svar med HTTP 200, inte det förväntade resultatet av batchförfrågan ovan. De två lyckade posterna kostar 1 kredit var; för den misslyckade posten är en debitering på noll bekräftad.
{
"data": [
{
"index": 0,
"id": "known",
"charged_credits": 1,
"data": {
"input": {
"type": "name",
"value": "Ingrid",
"country": "SE"
},
"name": "ingrid",
"gender": "female",
"country": "SE",
"confidence": 0.9642857142857143,
"confidence_kind": "observed_frequency",
"sample_count": 28,
"source": "dataset",
"result_status": "identified",
"reason": null,
"country_source": "dataset",
"match": {
"name": "ingrid",
"method": "normalized",
"scope": "country",
"country": "SE"
}
}
},
{
"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
}
}
}Fält i batchresultat
| Fält | Typ | Kan vara null | Exempel | Beskrivning |
|---|---|---|---|---|
data | array<object> | Nej | […] | Ordnade resultat. Varje post innehåller en prediktion eller ett fel; kontrollera alla poster. |
data[].index | integer | Nej | 0 | Position i den skickade items-arrayen, räknat från noll. |
data[].id | string | Nej | "contact-1" | Din identifierare för indata; finns bara om den skickades med. |
data[].charged_credits | integer | Nej | 1 | Postens nettodebitering efter bekräftade återbetalningar. Betrakta den inte som slutgiltig om den totala debiteringen är obekräftad. |
data[].data | object | Nej | {…} | Finns för lyckade poster, även för okända resultat. Använder prediktionsfälten som beskrivs i guiden om svar. |
data[].error | object | Nej | {…} | Finns för misslyckade poster i stället för data. Använder fälten i Problem Details som beskrivs i guiden om fel. |
Fält i batchsammanfattningen
| Fält | Typ | Kan vara null | Exempel | Beskrivning |
|---|---|---|---|---|
meta.summary.total | integer | Nej | 3 | Totalt antal poster i batchen. |
meta.summary.succeeded | integer | Nej | 2 | Lyckade poster, inklusive okända prediktioner. |
meta.summary.identified | integer | Nej | 1 | Lyckade poster med ett kön som inte är null. |
meta.summary.unknown | integer | Nej | 1 | Lyckade poster med gender null; dessa resultat debiteras. |
meta.summary.failed | integer | Nej | 1 | Misslyckade poster. total = succeeded + failed; succeeded = identified + unknown. |
Metadata om åtkomst, debitering och förfrågan
| Fält | Typ | Kan vara null | Exempel | Beskrivning |
|---|---|---|---|---|
meta.request_id | string | Nej | "550e8400-e29b-41d4-a716-446655440000" | Unik identifierare för det här HTTP-försöket; skickas även i X-Request-ID. |
meta.duration_ms | integer | Nej | 42 | Bearbetningstid för förfrågan i millisekunder. |
meta.access.mode | string | Nej | "api_key" | api_key, ip_trial eller unauthenticated. Kontrollera att api_key rapporteras när du använder ett betalt konto. |
meta.access.reason | string | Ja | null | Orsak till att IP-provperioden användes: api_key_missing, api_key_invalid eller api_key_not_found; annars null. |
meta.usage.charged_credits | integer | Ja | 1 | Debiterade krediter netto. 0 före debitering eller efter en bekräftad fullständig återbetalning; null när debiteringen är obekräftad. |
meta.usage.remaining_credits | integer | Ja | 99 | Saldo när åtgärden slutförs. Kan vara negativt; null om saldot saknas eller debiteringen är obekräftad. |
meta.usage.billing_status | string | Nej | "confirmed" | not_charged, confirmed eller unconfirmed. Kontrollera detta innan du gör ett nytt försök med en misslyckad prediktion. |
meta.usage.resets_at | string | Ja | "2026-09-27T12:00:00.000Z" | Tidpunkt i UTC (ISO 8601) då IP-provperioden återställs; null för konton med API-nyckel eller om tidpunkten är okänd. |
meta.usage.limit | integer | Ja | 10 | Kvot för IP-provperioden; null för konton med API-nyckel. |
meta.usage.period_seconds | integer | Ja | 86400 | IP-provperiodens tidsfönster i sekunder; null för konton med API-nyckel. |
Planera krediter och nya försök för batchar
Autentisera dig med din befintliga API-nyckel i Bearer-rubriken och skicka Content-Type: application/json. Varje skickad batch är en ny åtgärd. Om du gör ett nytt försök efter ett delvis fel skickar du bara de misslyckade posterna, efter att ha kontrollerat debiteringen; lyckade poster som skickas igen debiteras en gång till.
Poster i en batch har AI satt till off som standard och kostar 1 kredit per lyckad post. Ett uttryckligt fallback kostar också totalt 1, inklusive AI. always kostar 2. forceToGenderize kostar 1 för ett resultat som fastställs i datamängden eller 2 om AI används. Lyckade okända resultat debiteras. En enda kredit i positivt startsaldo räcker för att starta batchen; den slutliga debiteringen kan ge ett negativt saldo.
Bearbeta en kontaktlista utan att tappa bort någon rad
Batch-endpointen hanterar listor med bara namn, listor med bara e-postadresser och blandade indata. Dela upp ett jobb med API-nyckel i batchar om högst 50 poster; IP-provperioden tillåter högst 10 per förfrågan. Spara din egen position i jobbet och ge varje post ett id som är unikt inom batchen. Det returnerade index räknas från noll inom den skickade batchen, inte inom hela kontaktlistan.
| Steg | Vad du sparar eller kontrollerar | Varför det spelar roll |
|---|---|---|
| 1. Förbered varje batch | Behåll källraden och postens id; ange country och AI-alternativ per post. | Räkna inte med att ett namn är unikt bland alla kontakter. |
| 2. Läs hela svaret | Spara meta.request_id och koppla varje post i data[] via id eller index. | HTTP 200 kan innehålla både lyckade prediktioner och fel för enskilda poster. |
| 3. Spara lyckade resultat | Behåll identifierade och okända prediktioner, inklusive null-värden i JSON och fälten med underlag. | Ett okänt resultat är slutfört och debiteras; det är ingen misslyckad rad som ska skickas om automatiskt. |
| 4. Stäm av fel och krediter | Kontrollera varje error och meta.usage.billing_status innan du bestämmer dig för en ny förfrågan. | När debiteringen är bekräftad gör du bara nya försök för misslyckade poster vars fel motiverar det. Lyckade poster skulle debiteras igen. |
| 5. Skjut upp osäkra nya försök | Spara förfrågans ID när debiteringen är obekräftad eller ett nätverksfel gör utfallet okänt. | Skicka inte om hela batchen i blindo; följ först riktlinjerna om fel och debitering. |
Välj ett prediktionsläge för varje kontakt
Den här körbara förfrågan använder tre olika regler: enbart datamängd för ett fullständigt namn, vanlig AI-reserv för en e-postadress och AI-reserv med tolkning av smeknamn för ett användarnamn. Det är exempel på indata, inget löfte om att alla tre kontakterna får ett kön. Välj ett programmeringsspråk ovanför koden och sätt GENDERAPI_API_KEY innan du kör exemplet.
Utan forceToGenderize har poster i en batch AI satt till off som standard, till skillnad från enskilda sökningar. Ange fallback uttryckligen om du vill använda vanlig AI-reserv. Både off och vanlig fallback kostar 1 kredit per lyckad post; always hoppar över datamängden och kostar 2. forceToGenderize kostar 1 för ett resultat som fastställs i datamängden eller totalt 2 om AI används. Även lyckade okända resultat debiteras. Kombinera inte forceToGenderize med off eller always.
Välj ett programmeringsspråk. Konfigurera din API-nyckel, kör sedan exemplet på din server.
Varje prediktionsförfrågan är en ny debiterbar åtgärd, även vid nya försök. Exemplen gör inga automatiska nya försök. Kontrollera debiteringsstatus innan du skickar en ny förfrågan.
Innan du kör: åtkomst och felhantering
Kör exemplen på din server. Sätt GENDERAPI_API_KEY i processmiljön till din befintliga API-nyckel. Kontrollera att meta.access.mode är api_key: en nyckel som inte känns igen kan leda till IP-provperioden.
Vid JSON-svar med HTTP 4xx och 5xx behålls felinnehållet och exemplet avslutas med en slutstatus som inte är noll. Kontrollera code, action och meta.usage.billing_status innan du försöker igen. För batchsvar med HTTP 200 kontrollerar du dessutom data eller error i varje post.
Guide om fel och nya försök →cURL 7.76+ i ett POSIX-skal. Kör i terminalen. Dokumentation för körmiljön
Node.js 22+; inbyggd fetch. Spara som example.mjs och kör node example.mjs. Dokumentation för körmiljön
Python 3.10+; standardbiblioteket. Spara som example.py och kör python3 example.py. Dokumentation för körmiljön
PHP 8+ med tillägget cURL. Spara som example.php och kör php example.php. Dokumentation för körmiljön
Java 17+; inbyggd HTTP-klient. Spara som GenderApiExample.java och kör java GenderApiExample.java. Dokumentation för körmiljön
Konsolapplikation med .NET 8+. Använd som Program.cs i ett konsolprojekt och kör sedan dotnet run. Dokumentation för körmiljön
Go 1.22+; standardbiblioteket. Spara som main.go och kör go run main.go. Dokumentation för körmiljön