Namen, e-mailadressen en gebruikersnamen in batches
| Parameter | Type | Verplicht | Standaardwaarde | Beschrijving |
|---|---|---|---|---|
items | array<object> | Ja | — | 1 tot 50 items voor voorspellingen; maximaal 10 met de IP-proefperiode. De resultaten behouden de invoervolgorde. |
items[].type | string | Ja | — | Invoercategorie: name, email of username. |
items[].value | string | Ja | — | Verplicht. 1–254 tekens; niet leeg en zonder besturingstekens. E-mailwaarden moeten een geldige e-mailsyntaxis hebben. |
items[].country | string | Nee | — | Optionele ISO 3166-1 alpha-2-code in hoofdletters, bijvoorbeeld TR of US. Een landspecifieke zoekopdracht kan terugvallen op de wereldwijde dataset. |
items[].forceToGenderize | boolean | Nee | false | Raadpleegt eerst de dataset en daarna AI met bijnaaminterpretatie als er geen resultaat is. Ondersteund voor name, email en username. |
items[].options | object | Nee | — | Object met de AI-opties per invoer. |
items[].options.ai_mode | string | Nee | off | Toegestane waarden: off, fallback, always. Laat dit veld bij forceToGenderize: true weg of gebruik fallback. |
items[].id | string | Nee | — | Optionele identificatie van 1–64 tekens in de POST-JSON. Wordt naast het bijbehorende batchresultaat teruggegeven en moet uniek zijn binnen de batch. Wordt bij losse voorspellingen geaccepteerd maar niet teruggegeven. Niet ondersteund in GET-query's. |
GenderAPI.io V2 accepteert namen, e-mailadressen en gebruikersnamen samen via POST https://api.genderapi.io/api/v2/gender/batch. Verstuur een items-array met 1–50 items bij toegang met een API-sleutel, of maximaal 10 met de IP-proefperiode. Elk item gebruikt type en value en kan eigen waarden hebben voor country, forceToGenderize en options. Id's zijn optioneel en moeten uniek zijn binnen de batch.
De resultaten behouden de invoervolgorde en bevatten index, uw optionele id, charged_credits en precies één van data en error. Een antwoord met HTTP 200 kan fouten van afzonderlijke items bevatten, dus controleer elk item. meta.summary vermeldt total, succeeded, identified, unknown en failed. Een onbekende voorspelling is een geslaagd item dat credits kost.
Mislukt de validatie of planning van het verzoek, dan wordt de batch geweigerd voordat er iets wordt afgeschreven. Mislukken alle uitgevoerde items, dan geeft de API een Problem-antwoord met een status buiten 2xx, een data-array en de oudere alias results. Mislukte items kosten niets na een bevestigde terugboeking. Is de afschrijving niet bevestigd, beschouw de kosten per item dan niet als definitief.
Kies een programmeertaal. Stel uw API-sleutel in, voer daarna het voorbeeld uit op uw server.
Elk voorspellingsverzoek is een nieuwe betaalde bewerking, ook als het een nieuwe poging is. Deze voorbeelden proberen het niet automatisch opnieuw. Controleer de afschrijvingsstatus voordat u een nieuw verzoek verstuurt.
Voordat u het uitvoert: toegang en foutafhandeling
Voer deze voorbeelden uit op uw server. Stel in de procesomgeving GENDERAPI_API_KEY in op uw bestaande API-sleutel. Controleer of meta.access.mode api_key is: een niet-herkende sleutel kan terugvallen op de IP-proefperiode.
Bij JSON-antwoorden met HTTP 4xx en 5xx blijft de body van de fout behouden en eindigt het voorbeeld met een afsluitcode die niet nul is. Controleer code, action en meta.usage.billing_status voordat u het opnieuw probeert. Controleer bij batchantwoorden met HTTP 200 ook data of error van elk item.
Handleiding voor fouten en nieuwe pogingen →cURL 7.76+ in een POSIX-shell. Voer uit in uw terminal. Documentatie van de runtime
Node.js 22+; ingebouwde fetch. Sla op als example.mjs en voer node example.mjs uit. Documentatie van de runtime
Python 3.10+; standaardbibliotheek. Sla op als example.py en voer python3 example.py uit. Documentatie van de runtime
PHP 8+ met de cURL-extensie. Sla op als example.php en voer php example.php uit. Documentatie van de runtime
Java 17+; standaard HTTP-client. Sla op als GenderApiExample.java en voer java GenderApiExample.java uit. Documentatie van de runtime
.NET 8+-consoleapplicatie. Gebruik als Program.cs in een consoleproject en voer daarna dotnet run uit. Documentatie van de runtime
Go 1.22+; standaardbibliotheek. Sla op als main.go en voer go run main.go uit. Documentatie van de runtime
Een batchantwoord lezen
Dit voorbeeld combineert twee echte resultaten die op 1 oktober 2026 zijn opgehaald, een match in de dataset en een onbekend resultaat, met een illustratieve fout bij de provider. Het toont een HTTP 200-antwoord dat gedeeltelijk is geslaagd, niet de verwachte uitvoer van het batchverzoek hierboven. De twee geslaagde items kosten elk 1 credit; voor het mislukte item is een afschrijving van nul bevestigd.
{
"data": [
{
"index": 0,
"id": "known",
"charged_credits": 1,
"data": {
"input": {
"type": "name",
"value": "Sanne",
"country": "NL"
},
"name": "sanne",
"gender": "female",
"country": "NL",
"confidence": 0.9565891472868217,
"confidence_kind": "observed_frequency",
"sample_count": 645,
"source": "dataset",
"result_status": "identified",
"reason": null,
"country_source": "dataset",
"match": {
"name": "sanne",
"method": "normalized",
"scope": "country",
"country": "NL"
}
}
},
{
"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
}
}
}Velden van batchresultaten
| Veld | Type | Kan null zijn | Voorbeeld | Beschrijving |
|---|---|---|---|---|
data | array<object> | Nee | […] | Geordende resultaten. Elk item bevat een voorspelling of een fout; controleer alle items. |
data[].index | integer | Nee | 0 | Positie in de verstuurde items-array, beginnend bij nul. |
data[].id | string | Nee | "contact-1" | Uw identificatie van de invoer; alleen aanwezig als u die hebt opgegeven. |
data[].charged_credits | integer | Nee | 1 | Netto afschrijving voor het item na bevestigde terugboekingen. Beschouw die niet als definitief als de totale afschrijving niet is bevestigd. |
data[].data | object | Nee | {…} | Aanwezig bij een geslaagd item, ook bij onbekende resultaten. Gebruikt de voorspellingsvelden die in de handleiding over antwoorden worden beschreven. |
data[].error | object | Nee | {…} | Aanwezig in plaats van data bij een mislukt item. Gebruikt de velden van Problem Details die in de handleiding over fouten worden beschreven. |
Velden van de batchsamenvatting
| Veld | Type | Kan null zijn | Voorbeeld | Beschrijving |
|---|---|---|---|---|
meta.summary.total | integer | Nee | 3 | Totaal aantal items in de batch. |
meta.summary.succeeded | integer | Nee | 2 | Geslaagde items, inclusief onbekende voorspellingen. |
meta.summary.identified | integer | Nee | 1 | Geslaagde items met een geslacht anders dan null. |
meta.summary.unknown | integer | Nee | 1 | Geslaagde items met gender null; deze resultaten worden afgeschreven. |
meta.summary.failed | integer | Nee | 1 | Mislukte items. total = succeeded + failed; succeeded = identified + unknown. |
Metadata over toegang, afschrijving en verzoek
| Veld | Type | Kan null zijn | Voorbeeld | Beschrijving |
|---|---|---|---|---|
meta.request_id | string | Nee | "550e8400-e29b-41d4-a716-446655440000" | Unieke identificatie van deze HTTP-poging; wordt ook verstuurd in X-Request-ID. |
meta.duration_ms | integer | Nee | 42 | Verwerkingstijd van het verzoek in milliseconden. |
meta.access.mode | string | Nee | "api_key" | api_key, ip_trial of unauthenticated. Controleer bij een betaald account of api_key wordt vermeld. |
meta.access.reason | string | Ja | null | Reden om naar de IP-proefperiode over te schakelen: api_key_missing, api_key_invalid of api_key_not_found; anders null. |
meta.usage.charged_credits | integer | Ja | 1 | Netto afgeschreven credits. Nul vóór de afschrijving of na een bevestigde volledige terugboeking; null als de afschrijving niet is bevestigd. |
meta.usage.remaining_credits | integer | Ja | 99 | Saldo bij voltooiing van de bewerking. Kan negatief zijn; null als het niet beschikbaar is of de afschrijving niet is bevestigd. |
meta.usage.billing_status | string | Nee | "confirmed" | not_charged, confirmed of unconfirmed. Controleer dit voordat u een mislukte voorspelling herhaalt. |
meta.usage.resets_at | string | Ja | "2026-09-27T12:00:00.000Z" | Tijdstip waarop de IP-proefperiode wordt hersteld, in UTC (ISO 8601); null voor accounts met een API-sleutel of als het onbekend is. |
meta.usage.limit | integer | Ja | 10 | Tegoed van de IP-proefperiode; null voor accounts met een API-sleutel. |
meta.usage.period_seconds | integer | Ja | 86400 | Duur van de periode van de IP-proefperiode in seconden; null voor accounts met een API-sleutel. |
Credits en nieuwe pogingen voor batches plannen
Authenticeer met uw bestaande API-sleutel in de Bearer-header en stuur Content-Type: application/json. Elke verstuurde batch is een nieuwe bewerking. Probeert u het opnieuw na een gedeeltelijke fout, verstuur dan alleen de mislukte items nadat u de afschrijving hebt gecontroleerd; geslaagde items die u opnieuw verstuurt, worden nogmaals afgeschreven.
Voor items in een batch staat AI standaard op off en kost elk geslaagd item 1 credit. Ook fallback, expliciet ingesteld, kost in totaal 1 credit, inclusief AI. always kost 2 credits. forceToGenderize kost 1 credit voor een resultaat uit de dataset of 2 als AI wordt gebruikt. Geslaagde onbekende resultaten worden afgeschreven. Een positief beginsaldo van 1 credit is genoeg om de batch te starten; de uiteindelijke afschrijving kan een negatief saldo opleveren.
Een contactenlijst verwerken zonder rijen kwijt te raken
Het batch-endpoint verwerkt lijsten met alleen namen, lijsten met alleen e-mailadressen en gemengde invoer. Verdeel het werk met een API-sleutel in batches van maximaal 50 items; de IP-proefperiode staat maximaal 10 items per verzoek toe. Houd bij waar u in het werk bent en geef elk item een id die uniek is binnen de batch. De teruggegeven index begint bij nul binnen de verstuurde batch, niet binnen de hele contactenlijst.
| Stap | Wat u opslaat of controleert | Waarom dat belangrijk is |
|---|---|---|
| 1. Bereid elke batch voor | Bewaar de bronrij en de id van het item; stel country en de AI-opties per item in. | Ga er niet van uit dat een naam uniek is binnen al uw contacten. |
| 2. Lees het volledige antwoord | Sla meta.request_id op en koppel elk item van data[] via id of index. | Een HTTP 200-antwoord kan zowel geslaagde voorspellingen als fouten van afzonderlijke items bevatten. |
| 3. Sla geslaagde resultaten op | Bewaar geïdentificeerde en onbekende voorspellingen, inclusief JSON-waarden null en de bewijsvelden. | Een onbekend resultaat is voltooid en afgeschreven; het is geen mislukte rij die automatisch opnieuw moet worden verstuurd. |
| 4. Stem fouten en credits af | Controleer elke error en meta.usage.billing_status voordat u besluit een nieuw verzoek te versturen. | Probeer na bevestiging van de afschrijving alleen de mislukte items opnieuw waarvoor de fout dat rechtvaardigt. Geslaagde items zouden nogmaals worden afgeschreven. |
| 5. Stel onzekere nieuwe pogingen uit | Sla de verzoek-ID op als de afschrijving niet is bevestigd of als een netwerkfout de uitkomst onbekend maakt. | Verstuur niet blindelings de hele batch opnieuw; volg eerst de richtlijnen voor fouten en afschrijvingen. |
Per contact een voorspellingsmodus kiezen
Dit uitvoerbare verzoek gebruikt drie verschillende regels: alleen de dataset voor een volledige naam, de normale AI-fallback voor een e-mailadres en AI-fallback met bijnaaminterpretatie voor een gebruikersnaam. Het zijn voorbeeldinvoerwaarden, geen belofte dat alle drie de contacten een geslacht krijgen. Kies boven de code een programmeertaal en stel GENDERAPI_API_KEY in voordat u het voorbeeld uitvoert.
Zonder forceToGenderize staat AI voor items in een batch standaard op off, anders dan bij losse zoekopdrachten. Geef fallback expliciet op als u de normale AI-fallback wilt gebruiken. Zowel off als de normale fallback kosten 1 credit per geslaagd item; always slaat de dataset over en kost 2. forceToGenderize kost 1 voor een resultaat uit de dataset of in totaal 2 als AI wordt gebruikt. Ook geslaagde onbekende resultaten worden afgeschreven. Combineer forceToGenderize niet met off of always.
Kies een programmeertaal. Stel uw API-sleutel in, voer daarna het voorbeeld uit op uw server.
Elk voorspellingsverzoek is een nieuwe betaalde bewerking, ook als het een nieuwe poging is. Deze voorbeelden proberen het niet automatisch opnieuw. Controleer de afschrijvingsstatus voordat u een nieuw verzoek verstuurt.
Voordat u het uitvoert: toegang en foutafhandeling
Voer deze voorbeelden uit op uw server. Stel in de procesomgeving GENDERAPI_API_KEY in op uw bestaande API-sleutel. Controleer of meta.access.mode api_key is: een niet-herkende sleutel kan terugvallen op de IP-proefperiode.
Bij JSON-antwoorden met HTTP 4xx en 5xx blijft de body van de fout behouden en eindigt het voorbeeld met een afsluitcode die niet nul is. Controleer code, action en meta.usage.billing_status voordat u het opnieuw probeert. Controleer bij batchantwoorden met HTTP 200 ook data of error van elk item.
Handleiding voor fouten en nieuwe pogingen →cURL 7.76+ in een POSIX-shell. Voer uit in uw terminal. Documentatie van de runtime
Node.js 22+; ingebouwde fetch. Sla op als example.mjs en voer node example.mjs uit. Documentatie van de runtime
Python 3.10+; standaardbibliotheek. Sla op als example.py en voer python3 example.py uit. Documentatie van de runtime
PHP 8+ met de cURL-extensie. Sla op als example.php en voer php example.php uit. Documentatie van de runtime
Java 17+; standaard HTTP-client. Sla op als GenderApiExample.java en voer java GenderApiExample.java uit. Documentatie van de runtime
.NET 8+-consoleapplicatie. Gebruik als Program.cs in een consoleproject en voer daarna dotnet run uit. Documentatie van de runtime
Go 1.22+; standaardbibliotheek. Sla op als main.go en voer go run main.go uit. Documentatie van de runtime