Navne, e-mailadresser og brugernavne i batch
| Parameter | Type | Påkrævet | Standard | Beskrivelse |
|---|---|---|---|---|
items | array<object> | Ja | — | Mellem 1 og 50 elementer til forudsigelse, højst 10 med IP-prøveadgangen. Resultaterne bevarer inputrækkefølgen. |
items[].type | string | Ja | — | Inputkategori: name, email eller username. |
items[].value | string | Ja | — | Påkrævet. 1–254 tegn, ikke tom og uden kontroltegn. E-mailværdier skal have gyldig e-mailsyntaks. |
items[].country | string | Nej | — | Valgfri ISO 3166-1 alpha-2-kode med store bogstaver, for eksempel TR eller US. Et landespecifikt opslag kan falde tilbage til det globale datasæt. |
items[].forceToGenderize | boolean | Nej | false | Prøv datasættet først og derefter AI, der tager højde for kaldenavne, hvis der ikke findes et resultat. Understøttes for name, email og username. |
items[].options | object | Nej | — | Beholder til AI-indstillingerne for det enkelte input. |
items[].options.ai_mode | string | Nej | off | Tilladte værdier: off, fallback, always. Med forceToGenderize: true skal du udelade feltet eller bruge fallback. |
items[].id | string | Nej | — | Valgfri identifikator på 1–64 tegn i POST-JSON. Returneres sammen med hvert resultat i en batch og skal være unik inden for batchen. Accepteres ved enkelte forudsigelser, men returneres ikke. Understøttes ikke i GET-forespørgsler. |
POST /gender/batch accepterer et items-array med 1–50 elementer ved adgang med API-nøgle eller højst 10 med IP-prøveadgangen. Du kan sende kun navne, kun e-mailadresser, kun brugernavne eller en blanding af alle tre. Hvert element har sine egne country, forceToGenderize og options. Id'er er valgfrie og skal være unikke.
Resultaterne bevarer inputrækkefølgen og indeholder index, dit valgfrie id, charged_credits og præcis ét af felterne data eller error. HTTP 200 kan indeholde fejl for enkelte elementer, så kontrollér hvert element. meta.summary angiver total, succeeded, identified, unknown og failed. En ukendt forudsigelse er et gennemført element, der koster kreditter.
En fejl i valideringen eller planlægningen af forespørgslen afviser batchen, før der trækkes kreditter. Hvis alle udførte elementer fejler, returnerer API'et et Problem-svar med en status uden for 2xx samt et data-array og det ældre alias results. Mislykkede elementer koster nul efter en bekræftet refusion. Hvis opkrævningen ikke er bekræftet, må du ikke gå ud fra, at opkrævningen for elementerne er endelig.
Vælg et programmeringssprog. Konfigurér din API-nøgle, og kør derefter eksemplet på din server.
Hver forespørgsel om en forudsigelse er en ny operation, der koster kreditter, også når den gentages. Eksemplerne prøver ikke automatisk igen. Kontrollér opkrævningsstatus, før du sender en ny forespørgsel.
Før du kører: adgang og fejlhåndtering
Kør eksemplerne på din server. Sæt GENDERAPI_API_KEY i procesmiljøet til din eksisterende API-nøgle. Bekræft, at meta.access.mode er api_key: En nøgle, der ikke genkendes, kan føre til IP-prøveadgangen.
JSON-svar med HTTP 4xx og 5xx bevarer fejlens body og returnerer en exitstatus, der ikke er nul. Kontrollér code, action og meta.usage.billing_status, før du prøver igen. Kontrollér også data eller error for hvert element i batchsvar med HTTP 200.
Guide til fejl og nye forsøg →cURL 7.76+ i en POSIX-shell. Kør i din terminal. Dokumentation for kørselsmiljøet
Node.js 22+, indbygget fetch. Gem som example.mjs, og kør node example.mjs. Dokumentation for kørselsmiljøet
Python 3.10+, standardbiblioteket. Gem som example.py, og kør python3 example.py. Dokumentation for kørselsmiljøet
PHP 8+ med cURL-udvidelsen. Gem som example.php, og kør php example.php. Dokumentation for kørselsmiljøet
Java 17+, standard-HTTP-klienten. Gem som GenderApiExample.java, og kør java GenderApiExample.java. Dokumentation for kørselsmiljøet
Konsolapplikation med .NET 8+. Brug som Program.cs i et konsolprojekt, og kør derefter dotnet run. Dokumentation for kørselsmiljøet
Go 1.22+, standardbiblioteket. Gem som main.go, og kør go run main.go. Dokumentation for kørselsmiljøet
Læs et batchsvar
Dette eksempel kombinerer to rigtige resultater, der blev hentet den 1. oktober 2026, et match i datasættet og et ukendt resultat, med en illustrativ fejl hos udbyderen. Det viser et HTTP 200-svar med delvis succes, ikke det forventede resultat af batchforespørgslen ovenfor. De to gennemførte elementer koster 1 kredit hver, og det mislykkede element har en bekræftet opkrævning på nul.
{
"data": [
{
"index": 0,
"id": "known",
"charged_credits": 1,
"data": {
"input": {
"type": "name",
"value": "Freja",
"country": "DK"
},
"name": "freja",
"gender": "female",
"country": "DK",
"confidence": 1,
"confidence_kind": "observed_frequency",
"sample_count": 18,
"source": "dataset",
"result_status": "identified",
"reason": null,
"country_source": "dataset",
"match": {
"name": "freja",
"method": "normalized",
"scope": "country",
"country": "DK"
}
}
},
{
"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
}
}
}Felter i batchresultatet
| Felt | Type | Kan være null | Eksempel | Beskrivelse |
|---|---|---|---|---|
data | array<object> | Nej | […] | Ordnede resultater. Hvert element indeholder en forudsigelse eller en fejl, så kontrollér hvert element. |
data[].index | integer | Nej | 0 | Position i det sendte items-array, talt fra nul. |
data[].id | string | Nej | "contact-1" | Din identifikator for inputtet. Findes kun, når du har angivet den. |
data[].charged_credits | integer | Nej | 1 | Nettoopkrævning for elementet efter bekræftede refusioner. Betragt den ikke som endelig, hvis den samlede opkrævning ikke er bekræftet. |
data[].data | object | Nej | {…} | Findes for et gennemført element, også ved ukendte resultater. Bruger felterne for forudsigelser, der er beskrevet i guiden om svar. |
data[].error | object | Nej | {…} | Findes i stedet for data for et mislykket element. Bruger felterne fra Problem Details, der er beskrevet i guiden om fejl. |
Felter i batchopsummeringen
| Felt | Type | Kan være null | Eksempel | Beskrivelse |
|---|---|---|---|---|
meta.summary.total | integer | Nej | 3 | Samlet antal elementer i batchen. |
meta.summary.succeeded | integer | Nej | 2 | Gennemførte elementer, inklusive ukendte forudsigelser. |
meta.summary.identified | integer | Nej | 1 | Gennemførte elementer med et køn, der ikke er null. |
meta.summary.unknown | integer | Nej | 1 | Gennemførte elementer med gender null. Disse resultater koster kreditter. |
meta.summary.failed | integer | Nej | 1 | Mislykkede elementer. total = succeeded + failed; succeeded = identified + unknown. |
Metadata om adgang, opkrævning og forespørgslen
| Felt | Type | Kan være null | Eksempel | Beskrivelse |
|---|---|---|---|---|
meta.request_id | string | Nej | "550e8400-e29b-41d4-a716-446655440000" | Entydigt id for dette HTTP-forsøg. Sendes også i X-Request-ID. |
meta.duration_ms | integer | Nej | 42 | Behandlingstid for forespørgslen i millisekunder. |
meta.access.mode | string | Nej | "api_key" | api_key, ip_trial eller unauthenticated. Kontrollér, at værdien er api_key, når du bruger en betalt konto. |
meta.access.reason | string | Ja | null | Årsag til IP-prøveadgangen: api_key_missing, api_key_invalid eller api_key_not_found, ellers null. |
meta.usage.charged_credits | integer | Ja | 1 | Opkrævede kreditter netto. Nul før opkrævning eller efter en fuld bekræftet refusion, null, når opkrævningen ikke er bekræftet. |
meta.usage.remaining_credits | integer | Ja | 99 | Saldo, når operationen afsluttes. Kan være negativ. null, når den ikke er tilgængelig, eller opkrævningen ikke er bekræftet. |
meta.usage.billing_status | string | Nej | "confirmed" | not_charged, confirmed eller unconfirmed. Kontrollér dette, før du prøver en mislykket forudsigelse igen. |
meta.usage.resets_at | string | Ja | "2026-09-27T12:00:00.000Z" | Tidspunkt for nulstilling af IP-prøveadgangen i UTC (ISO 8601). null for konti med API-nøgle, eller når det ikke er kendt. |
meta.usage.limit | integer | Ja | 10 | Kreditter i IP-prøveadgangen. null for konti med API-nøgle. |
meta.usage.period_seconds | integer | Ja | 86400 | Periode for IP-prøveadgangen i sekunder. null for konti med API-nøgle. |
Planlæg kreditter og nye forsøg for batches
Godkend med din eksisterende API-nøgle i Bearer-headeren, og send Content-Type: application/json. Hver sendt batch er en ny operation. Hvis du prøver igen efter en delvis fejl, skal du kun sende de mislykkede elementer, når du har kontrolleret opkrævningen. Gennemførte elementer, der sendes igen, opkræves igen.
Elementer i en batch har som standard AI slået fra (off) og koster 1 kredit pr. gennemført element. Eksplicit fallback koster også 1 i alt, inklusive AI. always koster 2. forceToGenderize koster 1 for et resultat fra datasættet eller 2, hvis AI bruges. Gennemførte ukendte resultater opkræves. Én positiv startkredit er nok til at starte batchen, og den endelige opkrævning kan give en negativ saldo.
Behandl en kontaktliste uden at miste en eneste række
Batch-endpointet håndterer lister med kun navne, lister med kun e-mailadresser og blandede input. Med en API-nøgle deler du arbejdet op i batches på højst 50 elementer. IP-prøveadgangen tillader højst 10 pr. forespørgsel. Hold styr på, hvor langt du er i arbejdet, og giv hvert element et id, der er unikt inden for batchen. Det returnerede index starter ved nul inden for den sendte batch, ikke inden for hele kontaktlisten.
| Trin | Hvad du skal gemme eller kontrollere | Hvorfor det er vigtigt |
|---|---|---|
| 1. Forbered hver batch | Gem kilderækken og elementets id. Angiv country og AI-indstillinger for hvert element. | Gå ikke ud fra, at et navn er unikt på tværs af alle kontakter. |
| 2. Læs hele svaret | Gem meta.request_id, og knyt hvert element i data[] til sin række via id eller index. | Et HTTP 200-svar kan indeholde både gennemførte forudsigelser og fejl for enkelte elementer. |
| 3. Gem gennemførte resultater | Bevar identificerede og ukendte forudsigelser, inklusive JSON-værdien null og evidensfelterne. | Et ukendt resultat er gennemført og koster kreditter. Det er ikke en mislykket række, der automatisk skal sendes igen. |
| 4. Afstem fejl og kreditter | Kontrollér hver error og meta.usage.billing_status, før du beslutter, om der skal sendes en ny forespørgsel. | Når opkrævningen er bekræftet, skal du kun prøve de mislykkede elementer igen, hvis fejlen berettiger det. Gennemførte elementer ville blive opkrævet igen. |
| 5. Udskyd usikre nye forsøg | Gem forespørgslens id, hvis opkrævningen ikke er bekræftet, eller hvis en netværksfejl gør udfaldet ukendt. | Send ikke hele batchen igen i blinde. Følg først vejledningen om fejl og opkrævning. |
Vælg en forudsigelsestilstand for hver kontakt
Denne kørbare forespørgsel bruger tre forskellige regler: kun datasæt for et fulde navn, almindelig automatisk AI-fallback for en e-mailadresse og automatisk AI-fallback med fortolkning af kaldenavne for et brugernavn. Det er eksempler på input, ikke et løfte om, at alle tre kontakter får et køn. Vælg et programmeringssprog over koden, og angiv GENDERAPI_API_KEY, før du kører eksemplet.
Uden forceToGenderize er AI som standard slået fra (off) for elementer i en batch, i modsætning til enkeltopslag. Angiv fallback eksplicit, hvis du vil bruge den almindelige automatiske AI-fallback. Både off og almindelig fallback koster 1 kredit pr. gennemført element. always springer datasættet over og koster 2. forceToGenderize koster 1 for et resultat fra datasættet eller 2 i alt, hvis AI bruges. Gennemførte ukendte resultater koster også kreditter. Kombinér ikke forceToGenderize med off eller always.
Vælg et programmeringssprog. Konfigurér din API-nøgle, og kør derefter eksemplet på din server.
Hver forespørgsel om en forudsigelse er en ny operation, der koster kreditter, også når den gentages. Eksemplerne prøver ikke automatisk igen. Kontrollér opkrævningsstatus, før du sender en ny forespørgsel.
Før du kører: adgang og fejlhåndtering
Kør eksemplerne på din server. Sæt GENDERAPI_API_KEY i procesmiljøet til din eksisterende API-nøgle. Bekræft, at meta.access.mode er api_key: En nøgle, der ikke genkendes, kan føre til IP-prøveadgangen.
JSON-svar med HTTP 4xx og 5xx bevarer fejlens body og returnerer en exitstatus, der ikke er nul. Kontrollér code, action og meta.usage.billing_status, før du prøver igen. Kontrollér også data eller error for hvert element i batchsvar med HTTP 200.
Guide til fejl og nye forsøg →cURL 7.76+ i en POSIX-shell. Kør i din terminal. Dokumentation for kørselsmiljøet
Node.js 22+, indbygget fetch. Gem som example.mjs, og kør node example.mjs. Dokumentation for kørselsmiljøet
Python 3.10+, standardbiblioteket. Gem som example.py, og kør python3 example.py. Dokumentation for kørselsmiljøet
PHP 8+ med cURL-udvidelsen. Gem som example.php, og kør php example.php. Dokumentation for kørselsmiljøet
Java 17+, standard-HTTP-klienten. Gem som GenderApiExample.java, og kør java GenderApiExample.java. Dokumentation for kørselsmiljøet
Konsolapplikation med .NET 8+. Brug som Program.cs i et konsolprojekt, og kør derefter dotnet run. Dokumentation for kørselsmiljøet
Go 1.22+, standardbiblioteket. Gem som main.go, og kør go run main.go. Dokumentation for kørselsmiljøet