Namen, E-Mail-Adressen und Benutzernamen im Batch
| Parameter | Typ | Erforderlich | Standardwert | Beschreibung |
|---|---|---|---|---|
items | array<object> | Ja | — | 1 bis 50 Vorhersage-Einträge; höchstens 10 im IP-Testzugang. Die Ergebnisse behalten die Eingabereihenfolge bei. |
items[].type | string | Ja | — | Eingabekategorie: name, email oder username. |
items[].value | string | Ja | — | Erforderlich. 1–254 Zeichen; nicht leer und ohne Steuerzeichen. E-Mail-Werte müssen eine gültige E-Mail-Syntax haben. |
items[].country | string | Nein | — | Optionaler ISO-3166-1-Alpha-2-Code in Großbuchstaben, zum Beispiel TR oder US. Eine länderspezifische Abfrage kann auf den globalen Datensatz zurückgreifen. |
items[].forceToGenderize | boolean | Nein | false | Zuerst den Datensatz prüfen, bei fehlendem Ergebnis KI mit Spitznamen-Auswertung. Unterstützt für name, email und username. |
items[].options | object | Nein | — | Objekt für die KI-Optionen der jeweiligen Eingabe. |
items[].options.ai_mode | string | Nein | off | Erlaubte Werte: off, fallback, always. Bei forceToGenderize: true dieses Feld weglassen oder fallback verwenden. |
items[].id | string | Nein | — | Optionale Kennung mit 1–64 Zeichen im POST-JSON. Wird neben dem jeweiligen Batch-Ergebnis zurückgegeben und muss innerhalb eines Batches eindeutig sein. Bei Einzelvorhersagen akzeptiert, aber nicht zurückgegeben. In GET-Queries nicht unterstützt. |
GenderAPI.io V2 nimmt Namen, E-Mail-Adressen und Benutzernamen gemeinsam unter POST https://api.genderapi.io/api/v2/gender/batch entgegen. Senden Sie ein items-Array mit 1–50 Einträgen bei Zugang mit API-Schlüssel oder höchstens 10 im IP-Testzugang. Jeder Eintrag verwendet type und value und kann eigene Werte für country, forceToGenderize und options haben. IDs sind optional und müssen innerhalb des Batches eindeutig sein.
Die Ergebnisse behalten die Eingabereihenfolge bei und enthalten index, Ihre optionale id, charged_credits und genau eines der Felder data oder error. HTTP 200 kann Fehler einzelner Einträge enthalten; prüfen Sie daher jeden Eintrag. meta.summary meldet total, succeeded, identified, unknown und failed. Eine unbekannte Vorhersage ist ein erfolgreicher, kostenpflichtiger Eintrag.
Schlägt die Validierung oder Planung der Anfrage fehl, wird der Batch vor der Abbuchung abgelehnt. Schlagen alle ausgeführten Einträge fehl, liefert die API eine Problem-Antwort mit einem Status außerhalb von 2xx, einem data-Array und dem Legacy-Alias results. Fehlgeschlagene Einträge kosten nach bestätigter Erstattung nichts. Ist die Abrechnung unbestätigt, gehen Sie nicht davon aus, dass die Kosten der Einträge endgültig sind.
Wählen Sie eine Programmiersprache. Richten Sie Ihren API-Schlüssel ein, und führen Sie dann das Beispiel auf Ihrem Server aus.
Jede Vorhersageanfrage ist ein neuer kostenpflichtiger Vorgang, auch bei Wiederholungen. Diese Beispiele wiederholen Anfragen nicht automatisch. Prüfen Sie den Abrechnungsstatus, bevor Sie eine weitere Anfrage senden.
Vor der Ausführung: Zugang und Fehlerbehandlung
Führen Sie diese Beispiele auf Ihrem Server aus. Setzen Sie GENDERAPI_API_KEY in der Prozessumgebung auf Ihren vorhandenen API-Schlüssel. Prüfen Sie, ob meta.access.mode den Wert api_key hat: Ein nicht erkannter Schlüssel kann in den IP-Testzugang wechseln.
Bei HTTP-4xx- und -5xx-Antworten im JSON-Format bleibt der Fehlerinhalt erhalten, und das Beispiel endet mit einem Exit-Status ungleich null. Prüfen Sie code, action und meta.usage.billing_status, bevor Sie die Anfrage wiederholen. Prüfen Sie bei Batch-Antworten mit HTTP 200 außerdem data oder error jedes Eintrags.
Anleitung zu Fehlern und Wiederholungen →cURL 7.76+ in einer POSIX-Shell. Im Terminal ausführen. Dokumentation der Laufzeitumgebung
Node.js 22+; integriertes fetch. Als example.mjs speichern und node example.mjs ausführen. Dokumentation der Laufzeitumgebung
Python 3.10+; Standardbibliothek. Als example.py speichern und python3 example.py ausführen. Dokumentation der Laufzeitumgebung
PHP 8+ mit der cURL-Erweiterung. Als example.php speichern und php example.php ausführen. Dokumentation der Laufzeitumgebung
Java 17+; Standard-HTTP-Client. Als GenderApiExample.java speichern und java GenderApiExample.java ausführen. Dokumentation der Laufzeitumgebung
Konsolenanwendung mit .NET 8+. Als Program.cs in einem Konsolenprojekt verwenden und dann dotnet run ausführen. Dokumentation der Laufzeitumgebung
Go 1.22+; Standardbibliothek. Als main.go speichern und go run main.go ausführen. Dokumentation der Laufzeitumgebung
Eine Batch-Antwort lesen
Dieses Beispiel kombiniert zwei echte Ergebnisse, die am 1. Oktober 2026 abgerufen wurden, einen Treffer im Datensatz und ein unbekanntes Ergebnis, mit einem veranschaulichenden Anbieterfehler. Es zeigt eine teilweise erfolgreiche Antwort mit HTTP 200, nicht die erwartete Ausgabe der obigen Batch-Anfrage. Die beiden erfolgreichen Einträge kosten je 1 Credit; für den fehlgeschlagenen Eintrag ist eine Abbuchung von null bestätigt.
{
"data": [
{
"index": 0,
"id": "known",
"charged_credits": 1,
"data": {
"input": {
"type": "name",
"value": "Johannes",
"country": "DE"
},
"name": "johannes",
"gender": "male",
"country": "DE",
"confidence": 0.9974193548387097,
"confidence_kind": "observed_frequency",
"sample_count": 775,
"source": "dataset",
"result_status": "identified",
"reason": null,
"country_source": "dataset",
"match": {
"name": "johannes",
"method": "normalized",
"scope": "country",
"country": "DE"
}
}
},
{
"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
}
}
}Felder der Batch-Ergebnisse
| Feld | Typ | Kann null sein | Beispiel | Beschreibung |
|---|---|---|---|---|
data | array<object> | Nein | […] | Geordnete Ergebnisse. Jeder Eintrag enthält eine Vorhersage oder einen Fehler; prüfen Sie alle Einträge. |
data[].index | integer | Nein | 0 | Position im gesendeten items-Array, beginnend bei null. |
data[].id | string | Nein | "contact-1" | Ihre Eingabekennung; nur vorhanden, wenn sie mitgesendet wurde. |
data[].charged_credits | integer | Nein | 1 | Netto-Credits des Eintrags nach bestätigten Erstattungen. Nicht als endgültig behandeln, wenn die Gesamtabrechnung unbestätigt ist. |
data[].data | object | Nein | {…} | Bei erfolgreichen Einträgen vorhanden, auch bei unbekannten Ergebnissen. Verwendet die Vorhersagefelder aus der Anleitung zu Antworten. |
data[].error | object | Nein | {…} | Bei fehlgeschlagenen Einträgen anstelle von data vorhanden. Verwendet die Problem-Details-Felder aus der Anleitung zu Fehlern. |
Felder der Batch-Zusammenfassung
| Feld | Typ | Kann null sein | Beispiel | Beschreibung |
|---|---|---|---|---|
meta.summary.total | integer | Nein | 3 | Gesamtzahl der Einträge im Batch. |
meta.summary.succeeded | integer | Nein | 2 | Erfolgreiche Einträge einschließlich unbekannter Vorhersagen. |
meta.summary.identified | integer | Nein | 1 | Erfolgreiche Einträge mit einem Geschlecht ungleich null. |
meta.summary.unknown | integer | Nein | 1 | Erfolgreiche Einträge mit gender null; diese Ergebnisse sind kostenpflichtig. |
meta.summary.failed | integer | Nein | 1 | Fehlgeschlagene Einträge. total = succeeded + failed; succeeded = identified + unknown. |
Zugang, Abrechnung und Anfragemetadaten
| Feld | Typ | Kann null sein | Beispiel | Beschreibung |
|---|---|---|---|---|
meta.request_id | string | Nein | "550e8400-e29b-41d4-a716-446655440000" | Eindeutige Kennung dieses HTTP-Versuchs; auch in X-Request-ID enthalten. |
meta.duration_ms | integer | Nein | 42 | Bearbeitungszeit der Anfrage in Millisekunden. |
meta.access.mode | string | Nein | "api_key" | api_key, ip_trial oder unauthenticated. Prüfen Sie bei einem bezahlten Konto, ob api_key gemeldet wird. |
meta.access.reason | string | Ja | null | Grund für den Wechsel in den Testzugang: api_key_missing, api_key_invalid oder api_key_not_found; sonst null. |
meta.usage.charged_credits | integer | Ja | 1 | Netto abgebuchte Credits. 0 vor der Abbuchung oder nach einer bestätigten vollständigen Erstattung; null bei unbestätigter Abrechnung. |
meta.usage.remaining_credits | integer | Ja | 99 | Guthaben beim Abschluss des Vorgangs. Kann negativ sein; null, wenn nicht verfügbar oder die Abrechnung unbestätigt ist. |
meta.usage.billing_status | string | Nein | "confirmed" | not_charged, confirmed oder unconfirmed. Prüfen Sie dies, bevor Sie eine fehlgeschlagene Vorhersage wiederholen. |
meta.usage.resets_at | string | Ja | "2026-09-27T12:00:00.000Z" | Zeitpunkt des Zurücksetzens des IP-Testzugangs in UTC (ISO 8601); null bei Konten mit API-Schlüssel oder wenn unbekannt. |
meta.usage.limit | integer | Ja | 10 | Kontingent des IP-Testzugangs; null bei Konten mit API-Schlüssel. |
meta.usage.period_seconds | integer | Ja | 86400 | Zeitfenster des IP-Testzugangs in Sekunden; null bei Konten mit API-Schlüssel. |
Credits und Wiederholungen für Batches planen
Authentifizieren Sie sich mit Ihrem vorhandenen API-Schlüssel im Bearer-Header und senden Sie Content-Type: application/json. Jeder gesendete Batch ist ein neuer Vorgang. Wenn Sie nach einem Teilfehler wiederholen, senden Sie nach Prüfung der Abrechnung nur die fehlgeschlagenen Einträge; erneut gesendete erfolgreiche Einträge werden noch einmal berechnet.
Batch-Einträge haben KI standardmäßig auf off und kosten 1 Credit pro erfolgreichem Eintrag. Ein explizites fallback kostet ebenfalls insgesamt 1 Credit, einschließlich KI. always kostet 2 Credits. forceToGenderize kostet 1 Credit für ein im Datensatz aufgelöstes Ergebnis oder 2 Credits, wenn KI eingesetzt wird. Erfolgreiche unbekannte Ergebnisse werden berechnet. Ein positives Anfangsguthaben von 1 Credit genügt, um den Batch zu starten; die endgültige Abbuchung kann ein negatives Guthaben hinterlassen.
Eine Kontaktliste verarbeiten, ohne eine Zeile zu verlieren
Der Batch-Endpunkt verarbeitet reine Namenslisten, reine E-Mail-Listen und gemischte Eingaben. Teilen Sie einen Auftrag mit API-Schlüssel in Batches von höchstens 50 Einträgen auf; der IP-Testzugang erlaubt höchstens 10 pro Anfrage. Speichern Sie Ihre eigene Position im Auftrag und geben Sie jedem Eintrag eine innerhalb seines Batches eindeutige id. Der zurückgegebene index zählt ab null innerhalb des gesendeten Batches, nicht innerhalb der gesamten Kontaktliste.
| Schritt | Was Sie speichern oder prüfen | Warum es wichtig ist |
|---|---|---|
| 1. Jeden Batch vorbereiten | Behalten Sie Ihre Quellzeile und die id des Eintrags; legen Sie country und die KI-Optionen pro Eintrag fest. | Verlassen Sie sich nicht darauf, dass ein Name unter allen Kontakten eindeutig ist. |
| 2. Die gesamte Antwort lesen | Speichern Sie meta.request_id und ordnen Sie jeden Eintrag in data[] über id oder index zu. | HTTP 200 kann sowohl erfolgreiche Vorhersagen als auch Fehler einzelner Einträge enthalten. |
| 3. Erfolgreiche Ergebnisse speichern | Behalten Sie identifizierte und unbekannte Vorhersagen, einschließlich JSON-null-Werten und der Belegfelder. | Ein unbekanntes Ergebnis ist abgeschlossen und kostenpflichtig; es ist keine fehlgeschlagene Zeile für eine automatische Wiederholung. |
| 4. Fehler und Credits abgleichen | Prüfen Sie jeden error und meta.usage.billing_status, bevor Sie über eine weitere Anfrage entscheiden. | Ist die Abrechnung bestätigt, wiederholen Sie nur fehlgeschlagene Einträge, deren Fehler eine Wiederholung rechtfertigt. Erfolgreiche Einträge würden erneut berechnet. |
| 5. Unsichere Wiederholungen zurückstellen | Bewahren Sie die Anfrage-ID auf, wenn die Abrechnung unbestätigt ist oder ein Netzwerkfehler den Ausgang offenlässt. | Senden Sie nicht blind den gesamten Batch erneut; folgen Sie zuerst den Hinweisen zu Fehlern und Abrechnung. |
Für jeden Kontakt einen Vorhersagemodus wählen
Diese ausführbare Anfrage verwendet drei verschiedene Regeln: nur Datensatz für einen vollständigen Namen, gewöhnlichen KI-Fallback für eine E-Mail-Adresse und KI-Fallback mit Spitznamen-Auswertung für einen Benutzernamen. Es handelt sich um Beispieleingaben, nicht um das Versprechen, dass alle drei Kontakte ein Geschlecht erhalten. Wählen Sie über dem Code eine Programmiersprache und setzen Sie GENDERAPI_API_KEY, bevor Sie das Beispiel ausführen.
Ohne forceToGenderize haben Batch-Einträge KI standardmäßig auf off, anders als Einzelabfragen. Setzen Sie fallback ausdrücklich, wenn Sie den gewöhnlichen KI-Fallback nutzen möchten. Sowohl off als auch der gewöhnliche fallback kosten 1 Credit pro erfolgreichem Eintrag; always überspringt den Datensatz und kostet 2. forceToGenderize kostet 1 Credit für ein im Datensatz aufgelöstes Ergebnis oder insgesamt 2, wenn KI eingesetzt wird. Auch erfolgreiche unbekannte Ergebnisse werden berechnet. Kombinieren Sie forceToGenderize nicht mit off oder always.
Wählen Sie eine Programmiersprache. Richten Sie Ihren API-Schlüssel ein, und führen Sie dann das Beispiel auf Ihrem Server aus.
Jede Vorhersageanfrage ist ein neuer kostenpflichtiger Vorgang, auch bei Wiederholungen. Diese Beispiele wiederholen Anfragen nicht automatisch. Prüfen Sie den Abrechnungsstatus, bevor Sie eine weitere Anfrage senden.
Vor der Ausführung: Zugang und Fehlerbehandlung
Führen Sie diese Beispiele auf Ihrem Server aus. Setzen Sie GENDERAPI_API_KEY in der Prozessumgebung auf Ihren vorhandenen API-Schlüssel. Prüfen Sie, ob meta.access.mode den Wert api_key hat: Ein nicht erkannter Schlüssel kann in den IP-Testzugang wechseln.
Bei HTTP-4xx- und -5xx-Antworten im JSON-Format bleibt der Fehlerinhalt erhalten, und das Beispiel endet mit einem Exit-Status ungleich null. Prüfen Sie code, action und meta.usage.billing_status, bevor Sie die Anfrage wiederholen. Prüfen Sie bei Batch-Antworten mit HTTP 200 außerdem data oder error jedes Eintrags.
Anleitung zu Fehlern und Wiederholungen →cURL 7.76+ in einer POSIX-Shell. Im Terminal ausführen. Dokumentation der Laufzeitumgebung
Node.js 22+; integriertes fetch. Als example.mjs speichern und node example.mjs ausführen. Dokumentation der Laufzeitumgebung
Python 3.10+; Standardbibliothek. Als example.py speichern und python3 example.py ausführen. Dokumentation der Laufzeitumgebung
PHP 8+ mit der cURL-Erweiterung. Als example.php speichern und php example.php ausführen. Dokumentation der Laufzeitumgebung
Java 17+; Standard-HTTP-Client. Als GenderApiExample.java speichern und java GenderApiExample.java ausführen. Dokumentation der Laufzeitumgebung
Konsolenanwendung mit .NET 8+. Als Program.cs in einem Konsolenprojekt verwenden und dann dotnet run ausführen. Dokumentation der Laufzeitumgebung
Go 1.22+; Standardbibliothek. Als main.go speichern und go run main.go ausführen. Dokumentation der Laufzeitumgebung