GenderAPI V2 · Implementierungsanleitung

GenderAPI.io V2 mit JavaScript und Node.js verwenden

Rufen Sie GenderAPI.io V2 aus Node.js mit dem nativen fetch auf. Laden Sie ein ES-Modul für Einzelanfragen und gemischte Batches, zum Lesen der Antworten data/meta und für den Umgang mit Fehlern rund um Credits herunter.

JavaScript / Node.jsNode.js 22+Serverseitiges HTTP

GenderAPI.io Aktualisiert:

Die Integration auf einem Node.js-Server halten

Diese Anleitung ruft den Endpunkt von GenderAPI.io V2 https://api.genderapi.io/api/v2/gender mit dem API-Schlüssel im Bearer-Header auf. Verwenden Sie Node.js 22 oder neuer und laden Sie genderapi-v2.mjs in Ihr Projekt herunter. Dieses ES-Modul nutzt die integrierten fetch und AbortSignal.timeout; es benötigt kein npm-Paket. Dank der Endung .mjs können Sie es aus einem anderen ES-Modul importieren, ohne package.json zu ändern.

Setzen Sie GENDERAPI_API_KEY in der Serverumgebung. Legen Sie ihn nicht in JavaScript-Code für React, Vue oder anderen im Browser ausgeführten Code ab. Lassen Sie Ihren eigenen Server die Benutzer der Anwendung authentifizieren und GenderAPI.io aufrufen. YOUR_API_KEY im folgenden Beispiel ist kein gültiger Schlüssel; das Importieren des Moduls oder sein Start ohne ausdrückliche Ausführungsoption sendet keine Anfrage.

Node.js-Umgebung einrichten
node --version
export GENDERAPI_API_KEY="YOUR_API_KEY"

Eine POST-Anfrage mit JSON und ausdrücklicher KI-Richtlinie senden

Speichern Sie diesen Code als single.mjs neben dem heruntergeladenen Modul und führen Sie dann node single.mjs aus. Er sendet die V2-Felder type und value zusammen mit options.ai_mode: off. Die Vorhersage lesen Sie aus response.data, die Angaben zur Anfrage und zur Abrechnung aus response.meta.

Eine abgeschlossene Abfrage kostet 1 Credit, auch wenn gender null ist; der Beispielname garantiert kein bestimmtes Ergebnis.

Das Hilfsmodul verlangt einen ausdrücklichen KI-Modus und einen hexadezimalen Schlüssel mit 24 Zeichen und prüft anschließend, ob meta.access.mode den Wert api_key hat. Eine erfolgreiche Antwort aus dem Testzugang löst einen Fehler wegen abweichendem Zugangsmodus aus, statt stillschweigend fortzufahren. Der Server kann bereits einen Test-Credit verbraucht haben, bevor das Modul diese Abweichung erkennt.

Einzelabfrage in Node.js
import { predict, GenderAPIError } from "./genderapi-v2.mjs";

try {
  const response = await predict({
    type: "name", value: "Alice", options: { ai_mode: "off" },
  });
  const result = response.data;
  console.log(result.result_status, result.gender);
  console.log(result.confidence, result.confidence_kind);
  console.log(response.meta.usage);
} catch (error) {
  if (!(error instanceof GenderAPIError)) throw error;
  // Do not log error.body: it can include the submitted value.
  console.error("Request failed:", error.code, error.requestId);
  process.exitCode = 1;
}

Ergebnis und Belege gemeinsam aufbewahren

Eine abgeleitete Zuordnung ist nicht das Geschlecht, das eine Person selbst angibt. Bewahren Sie die ursprüngliche Eingabe, die zurückgegebenen Belege und alle Angaben der Person selbst getrennt auf. Ein unbekanntes Ergebnis ist ein gültiges Ergebnis; es sollte in Ihrer Anwendung nicht zu einer geratenen Kategorie werden.

FeldVerwendung
data.gender / data.result_statusVerwenden Sie male oder female nur bei identified. Behalten Sie bei einem unbekannten Ergebnis den nativen JSON-Wert null bei.
data.name / data.matchPrüfen Sie den zurückgegebenen Namen und den ausgewählten Kandidaten. Ein Treffer über einen Teilstring belegt nicht, dass die Eingabe zu einer Person mit diesem Vornamen gehört.
data.confidence / data.confidence_kindDie Konfidenz liegt auf einer Skala von 0–1 oder ist null. observed_frequency beruht auf gespeicherten Häufigkeiten; model_reported ist ein KI-Wert. Bewerten Sie Schwellenwerte für jede Art getrennt.
data.source / data.sample_countUnterscheiden Sie dataset, ai und none. KI-Ergebnisse haben keine gespeicherte Stichprobengröße. Eine Stichprobengröße ist kein gemessener Genauigkeitswert.
meta.access.modePrüfen Sie bei einer Kontointegration, ob api_key gemeldet wird. Fehlende oder nicht erkannte Schlüssel können stattdessen den gemeinsamen IP-Testzugang nutzen.
meta.usageLesen Sie charged_credits und billing_status. Ein erfolgreiches unbekanntes Ergebnis ist kostenpflichtig. Eine verlorene Antwort belegt nicht, dass die Anfrage kostenlos war.

Einen gemischten Batch verarbeiten und die ID jeder Zeile beibehalten

GenderAPI.io V2 verarbeitet gemischte Batches über POST https://api.genderapi.io/api/v2/gender/batch: bis zu 50 Einträge mit Kontoschlüssel oder 10 im IP-Testzugang. Diese Beispiele erfordern einen Kontoschlüssel. Geben Sie jedem Eintrag eine stabile, eindeutige id und einen ausdrücklichen KI-Modus. Ein Batch kann Namen, E-Mail-Adressen und Benutzernamen kombinieren, und jeder Eintrag kann einen optionalen Kontext country haben.

Lesen Sie jeden Eintrag in data sowie die Zusammenfassung meta.summary. Eine Antwort mit HTTP 200 kann Fehler einzelner Einträge enthalten; ein Batch, in dem alle Einträge fehlgeschlagen sind, kann eine Problem-Antwort der obersten Ebene mit den Ergebnissen liefern. Erfolgreiche unbekannte Ergebnisse werden in succeeded gezählt. Mit index und id ordnen Sie jedes Ergebnis der richtigen Quellzeile zu.

Teilen Sie die Eingaben bei großen Aufträgen in Gruppen von höchstens 50 Einträgen und senden Sie diese anfangs nacheinander. Speichern Sie jede Antwort und ihre Nutzung, bevor Sie zur nächsten Gruppe übergehen. Halten Sie bei einem Transportfehler, einem Fehler beim Kontozugang oder einer unbestätigten Abrechnung an und klären Sie den Stand der aktuellen Gruppe. Führen Sie paralleles Senden erst ein, nachdem Sie die Grenzen Ihres Kontos geprüft haben; die maximale Batch-Größe garantiert keinen Durchsatz.

Batch-Abfrage in Node.js
import { predictBatch, GenderAPIError } from "./genderapi-v2.mjs";

const items = [
  { id: "row-1", type: "name", value: "Alice", options: { ai_mode: "off" } },
  { id: "row-2", type: "email", value: "alex@example.com", options: { ai_mode: "off" } },
  { id: "row-3", type: "username", value: "sample_handle", options: { ai_mode: "off" } },
];
try {
  const response = await predictBatch(items);
  for (const item of response.data) {
    if (item.error) {
      console.log(item.id, "failed", item.error.code);
    } else {
      console.log(item.id, item.data.result_status, item.data.gender);
    }
  }
  console.log(response.meta.summary, response.meta.usage);
  if (response.meta.summary.failed > 0) process.exitCode = 2;
} catch (error) {
  if (!(error instanceof GenderAPIError)) throw error;
  // error.body can retain an all-failed batch and billing details.
  console.error("Batch needs review:", error.code, error.requestId);
  process.exitCode = 1;
}

Festlegen, wann KI eingesetzt wird

forceToGenderize ist für Namen, E-Mail-Adressen und Benutzernamen optional. Ist es aktiviert, lassen Sie ai_mode weg oder verwenden Sie fallback; off und always sind damit unvereinbar und liefern 422. Ein positives Anfangsguthaben genügt, um eine Anfrage zu starten, auch wenn die endgültige Abbuchung das Guthaben unter null senkt.

Der Spitznamenmodus kann ein Geschlecht zusammen mit name: null zurückgeben. Er kann auch ein unbekanntes Ergebnis liefern. Weder der gewöhnliche KI-Fallback noch die Spitznamen-Auswertung garantieren eine richtige Antwort oder einen Wert ungleich null.

Das JavaScript-Hilfsmodul verlangt immer options.ai_mode. Für die Spitznamen-Auswertung senden Sie forceToGenderize: true zusammen mit options: { ai_mode: 'fallback' }.

AnfrageoptionVerhaltenCredits für eine erfolgreiche Abfrage
options.ai_mode: offNur den Datensatz verwenden.1, auch bei einem unbekannten Ergebnis
options.ai_mode: fallbackZuerst den Datensatz prüfen, dann gewöhnliche KI, wenn kein Geschlecht zurückgegeben wird. Das ist der Standard für Einzelanfragen.Insgesamt 1, einschließlich KI-Fallback
options.ai_mode: alwaysDirekt KI verwenden.2
forceToGenderize: trueZuerst den Datensatz prüfen, dann KI einen persönlichen Spitznamen oder Alias auswerten lassen, auch ohne echten Vornamen.1 für ein im Datensatz aufgelöstes Ergebnis; insgesamt 2, wenn KI eingesetzt wird

Entscheiden, was nach einem Fehler geschieht

Die Beispiele senden jeden Vorgang nur einmal. Sie wiederholen ihn nie automatisch: Ein erneutes Senden ist ein neuer, kostenpflichtiger Vorgang. Eine Zeitüberschreitung oder ein Verbindungsfehler bedeutet, dass der Client keine vollständige Antwort erhalten hat; das belegt weder, dass der Server die Verarbeitung abgebrochen hat, noch dass keine Credits abgebucht wurden.

Speichern Sie die zurückgegebene request_id und den Abrechnungsstatus zusammen mit dem Datensatz Ihres Auftrags. Das Fehlerobjekt bewahrt die Antwort für eine kontrollierte Analyse auf, kann aber die ursprüngliche Eingabe enthalten: Schreiben Sie weder das gesamte Objekt noch die Antwort noch den API-Schlüssel in gewöhnliche Logs.

SituationEntscheidung der Anwendung
Erfolgreiches unbekanntes ErgebnisBehalten Sie null, reason und usage bei. Das ist ein abgeschlossenes, kostenpflichtiges Ergebnis und keine fehlgeschlagene Zeile für eine automatische Wiederholung.
Validierungsfehler 422Korrigieren Sie die in den Feldern von Problem Details genannten Eingaben, bevor Sie eine neue Anfrage senden.
401 / 403Prüfen Sie den Kontozugang oder das verfügbare Guthaben. Wiederholtes Senden derselben Anfrage beseitigt die Ursache nicht.
429Ist der Header Retry-After vorhanden, halten Sie ihn ein. Prüfen Sie den Fehler und den Abrechnungsstatus und planen Sie den nächsten Versuch dann bewusst.
Netzwerkfehler, Zeitüberschreitung oder unlesbare AntwortHalten Sie fest, dass Ergebnis und Abbuchung unbestätigt sind. Klären Sie den Stand vor einem erneuten Senden; der Client kann eine auf dem Server bereits abgeschlossene Verarbeitung nicht rückgängig machen.
billing_status: unconfirmedcharged_credits und remaining_credits können null sein. Wenden Sie sich vor einem weiteren Versuch mit der request_id an den Support; ersetzen Sie null nicht durch null Credits.
Fehler bei einigen Batch-EinträgenSpeichern Sie zuerst die abgeschlossenen Einträge. Prüfen Sie die fehlgeschlagenen Einträge und ihre Abrechnung; senden Sie nur diese Fehler erneut, nicht den gesamten Batch.

Zeitüberschreitung von fetch und Antwortprüfungen kennen

Die Standard-Zeitüberschreitung beträgt 10.000 Millisekunden über AbortSignal.timeout, einschließlich des Lesens des Antwortinhalts. Ein Abbruch auf Clientseite belegt nicht, dass Verarbeitung oder Abrechnung auf dem Server gestoppt wurden. Das Modul deaktiviert Weiterleitungen, unterscheidet HTTP-Fehler von unlesbaren Antworten und wiederholt Anfragen nie automatisch.

Tests mit simuliertem Transport decken erfolgreiche Antworten, unbekannte Ergebnisse, teilweise erfolgreiche Batches, ersatzweise verwendete Zugangsdaten und Fehler ab. Sie benötigen weder echte Vorhersagen noch Operationen mit Credits; sie messen weder Verfügbarkeit noch Genauigkeit im Produktivbetrieb. Jeder ausdrückliche Demo-Befehl unten sendet eine eigene, kostenpflichtige Anfrage.

Optionale ausdrückliche Demos in Node.js
node genderapi-v2.mjs --run-single
# Run separately to submit another billable sample batch:
node genderapi-v2.mjs --run-batch

Häufig gestellte Fragen

Kann ich diesen Code in JavaScript einfügen, das im Browser läuft?

Behalten Sie ihn auf Ihrem Server. Anwendungscode, der im Browser läuft, legt den API-Schlüssel gegenüber den Benutzern offen. Rufen Sie aus dem Browser Ihr eigenes authentifiziertes Backend auf und lassen Sie dieses die Anfrage an GenderAPI.io senden.

Verbraucht ein unbekanntes Ergebnis Credits?

Ja. Eine erfolgreiche gewöhnliche Abfrage kostet 1 Credit, auch wenn gender null ist. Der gewöhnliche KI-Fallback ist in diesem Credit enthalten. Der Modus always kostet 2 Credits; forceToGenderize kostet 1 Credit, wenn der Datensatz die Anfrage auflöst, oder 2, wenn KI eingesetzt wird.

Wiederholt dieses Beispiel eine fehlgeschlagene Anfrage?

Nein. Jede neue Anfrage ist ein eigener Vorgang. Prüfen Sie den Fehler, die Ergebnisse der einzelnen Einträge und den Abrechnungsstatus, bevor Sie über ein erneutes Senden entscheiden. Eine fehlende Antwort belegt nicht, dass der vorherige Versuch kostenlos war.

Muss ich ein Paket installieren?

Nein. Laden Sie das Beispiel direkt aus dieser Anleitung von GenderAPI.io herunter. Es hat keine Laufzeitabhängigkeiten von externen Paketen und ist kein separat in pip oder npm veröffentlichtes SDK. Prüfen Sie es und passen Sie es an Ihre Anwendung an; maßgeblich für den API-Vertrag bleibt die Dokumentation zu GenderAPI.io V2.

Quellen

Die API-Dokumentation legt Anfragen und Antworten fest. Die Dokumentation der Laufzeitumgebung beschreibt die verwendeten HTTP-Werkzeuge.