API-DOKUMENTATION V2

GenderAPI.io V2: Fehler, Limits und Wiederholungen

Behandeln Sie Problem Details, Anfragelimits und unklare Abrechnung in GenderAPI.io V2. Prüfen Sie jeden Fehler, bevor Sie eine unabhängig abgerechnete Anfrage wiederholen.

Fehler und HTTP-Statuscodes

Anwendungsfehler verwenden application/problem+json (RFC 9457). Werten Sie die stabilen Felder code und action aus, nicht den menschenlesbaren Text in detail. Bei Validierungsfehlern enthält errors die JSON-Pointer der betroffenen Stellen. Geben Sie bei Anfragen an den Support die request_id an. Bei Proxy- oder Übertragungsfehlern kann der Antwortinhalt abweichen; prüfen Sie daher Content-Type, bevor Sie JSON parsen.

Das folgende synthetische 422-Beispiel zeigt eine ungültige E-Mail-Syntax vor der Abrechnung. Der öffentliche Fehlerkatalog führt alle Codes, Status, Erklärungen und empfohlenen Maßnahmen auf.

HTTP-StatusTypische BedeutungNächster Schritt
400 / 413 / 415Fehlerhaftes JSON, zu großer Body oder nicht unterstützter Medientyp.Korrigieren Sie die Anfrage.
401 / 403Zugriff abgelehnt, Kontoeinschränkung oder unzureichende Credits.Prüfen Sie code; korrigieren Sie den Zugang oder laden Sie Credits nach bzw. warten Sie auf das Zurücksetzen des Testzugangs.
422Ungültige Eingabe oder inkompatible Optionen.Korrigieren Sie die in errors genannten Felder.
404 / 405Unbekannte Route oder nicht unterstützte HTTP-Methode.Prüfen Sie den Endpunktpfad und den Antwort-Header Allow.
429Limit für Anfragerate oder gleichzeitige Anfragen.Warten Sie die Zeit aus Retry-After ab, bevor Sie eine weitere Anfrage senden.
500Unerwarteter Serverfehler.Wenden Sie sich mit der request_id an den Support; prüfen Sie die Abrechnung vor einer Wiederholung.
502 / 503 / 504Fehler bei Anbieter, Abhängigkeit oder Abrechnung oder Zeitüberschreitung.Prüfen Sie code, action und billing_status vor einer Wiederholung.
Beispielhafte JSON-Antwort
{
  "type": "urn:genderapi:problem:validation_error",
  "title": "validation error",
  "status": 422,
  "detail": "A valid email address is required.",
  "instance": "urn:uuid:11111111-1111-4111-8111-111111111111",
  "code": "validation_error",
  "request_id": "11111111-1111-4111-8111-111111111111",
  "documentation": "https://api.genderapi.io/api/v2/errors",
  "action": "correct_request",
  "errors": [
    {
      "pointer": "/value",
      "message": "Invalid email address."
    }
  ],
  "meta": {
    "request_id": "11111111-1111-4111-8111-111111111111",
    "duration_ms": 12,
    "access": {
      "mode": "ip_trial",
      "reason": "api_key_missing"
    },
    "usage": {
      "charged_credits": 0,
      "remaining_credits": null,
      "billing_status": "not_charged",
      "resets_at": "2026-09-26T12:00:00.000Z",
      "limit": 10,
      "period_seconds": 86400
    }
  }
}

Felder der Fehlerantwort

FeldTypKann null seinBeispielBeschreibung
typestringNein"urn:genderapi:problem:validation_error"URI zur Kennzeichnung des Problemtyps.
titlestringNein"validation error"Kurzer, lesbarer Fehlertitel.
statusintegerNein422HTTP-Statuscode.
detailstringNein"The request does not match the schema."Erläuterung dieses konkreten Fehlers.
instancestringNein"urn:uuid:550e8400-e29b-41d4-a716-446655440000"Kennung der fehlgeschlagenen Anfrage.
codestringNein"validation_error"Stabiler, maschinenlesbarer Fehlercode.
request_idstringNein"550e8400-e29b-41d4-a716-446655440000"Eindeutige Kennung dieses HTTP-Versuchs; auch in X-Request-ID enthalten.
documentationstringNein"https://api.genderapi.io/api/v2/errors"Link zum Fehlerkatalog, sofern enthalten.
actionstringNein"correct_request"Empfohlene Abhilfemaßnahme, sofern im Fehlerkatalog definiert.
errorsarray<object>Nein[{"pointer":"/value","message":"must NOT have fewer than 1 characters"}]Validierungsprobleme, sofern verfügbar. Jeder Eintrag enthält pointer und message.
errors[].pointerstringNein"/value"JSON Pointer zur ungültigen Eingabe.
errors[].messagestringNein"must NOT have fewer than 1 characters"Erläuterung des Validierungsfehlers.

Zugang, Abrechnung und Anfragemetadaten

FeldTypKann null seinBeispielBeschreibung
meta.request_idstringNein"550e8400-e29b-41d4-a716-446655440000"Eindeutige Kennung dieses HTTP-Versuchs; auch in X-Request-ID enthalten.
meta.duration_msintegerNein42Bearbeitungszeit der Anfrage in Millisekunden.
meta.access.modestringNein"api_key"api_key, ip_trial oder unauthenticated. Prüfen Sie bei einem bezahlten Konto, ob api_key gemeldet wird.
meta.access.reasonstringJanullGrund für den Wechsel in den Testzugang: api_key_missing, api_key_invalid oder api_key_not_found; sonst null.
meta.usage.charged_creditsintegerJa1Netto abgebuchte Credits. 0 vor der Abbuchung oder nach einer bestätigten vollständigen Erstattung; null bei unbestätigter Abrechnung.
meta.usage.remaining_creditsintegerJa99Guthaben beim Abschluss des Vorgangs. Kann negativ sein; null, wenn nicht verfügbar oder die Abrechnung unbestätigt ist.
meta.usage.billing_statusstringNein"confirmed"not_charged, confirmed oder unconfirmed. Prüfen Sie dies, bevor Sie eine fehlgeschlagene Vorhersage wiederholen.
meta.usage.resets_atstringJa"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.limitintegerJa10Kontingent des IP-Testzugangs; null bei Konten mit API-Schlüssel.
meta.usage.period_secondsintegerJa86400Zeitfenster des IP-Testzugangs in Sekunden; null bei Konten mit API-Schlüssel.

Wiederholungen und Abrechnung

Jede Vorhersageanfrage ist ein neuer Vorgang, auch eine identische, erneut gesendete Anfrage. Für jede Anfrage gelten die normalen Credit-Regeln. Es gibt keinen Schutz vor doppelten Anfragen; vermeiden Sie daher automatische Wiederholungen nach einem Verbindungsabbruch oder einem ungeklärten Ausgang.

Warten Sie bei einer 429-Antwort die Zeit aus Retry-After ab, bevor Sie eine weitere Anfrage senden. Prüfen Sie bei fehlgeschlagenen Vorhersagen zuerst code, action und meta.usage.billing_status. Wenden Sie sich bei billing_reconciliation_required oder unbestätigter Abrechnung mit der request_id an den Support, bevor Sie die Anfrage wiederholen.

Ein teilweise erfolgreicher Batch kann HTTP 200 liefern. Prüfen Sie jeden Eintrag und senden Sie nach bestätigter Abrechnung nur die fehlgeschlagenen Einträge erneut; erneut gesendete erfolgreiche Einträge würden noch einmal berechnet.

X-Request-ID und meta.request_id kennzeichnen den aktuellen HTTP-Versuch. Lesen Sie das aktuelle Guthaben über /usage. HEAD startet keine kostenpflichtige Vorhersage. Vorhersage- und Kontoantworten sind nicht cachebar.

Clients sollten zusätzliche Antwortfelder tolerieren und null-Werte beibehalten, wenn Informationen nicht verfügbar sind.

Anfragelimits

Behandeln Sie HTTP 429 und Retry-After, statt davon auszugehen, dass Anfragen bis zu diesen Obergrenzen immer angenommen werden. Die Kapazität des Dienstes wird geteilt. Die angegebenen Werte sind die aktuellen Standardwerte des Dienstes. Antworten zur Ratenbegrenzung enthalten X-RateLimit-Limit, X-RateLimit-Remaining und X-RateLimit-Reset (Unix-Sekunden). Retry-After ist eine Wartezeit in Sekunden. Diese Header beschreiben Anfragelimits, nicht verbleibende Credits. Auch die kostenlose Abfrage von /usage zählt zu den Anfragelimits.

LimitWert
JSON-Anfrage-Bodymaximal 64 KiB
Wert für die Vorhersage1–254 Zeichen
Batch50 Einträge mit API-Schlüssel; 10 im IP-Testzugang
Rate pro Konto120 Anfragen pro Minute
Rate pro IP-Adresse600 Anfragen pro Minute
Gleichzeitige Vorgänge2 pro Konto; 16 im gesamten Dienst