ΤΕΚΜΗΡΙΩΣΗ API V2

GenderAPI.io V2: σφάλματα, όρια και νέες προσπάθειες

Χειριστείτε τα Problem Details, τα όρια αιτημάτων και τις αβέβαιες χρεώσεις στο GenderAPI.io V2. Εξετάστε κάθε σφάλμα πριν επαναλάβετε ένα αίτημα, το οποίο χρεώνεται ανεξάρτητα.

Σφάλματα και κωδικοί κατάστασης HTTP

Τα σφάλματα της εφαρμογής χρησιμοποιούν application/problem+json (RFC 9457). Βασίστε τη λογική σας στα σταθερά πεδία code και action, όχι στο κείμενο του detail που προορίζεται για ανθρώπους. Στα σφάλματα επικύρωσης, το errors περιέχει τους δείκτες JSON Pointer των πεδίων που επηρεάζονται. Αναφέρετε το request_id όταν επικοινωνείτε με την υποστήριξη. Σε σφάλματα διακομιστή μεσολάβησης ή μετάδοσης το σώμα της απόκρισης μπορεί να διαφέρει, γι' αυτό ελέγξτε το Content-Type πριν αναλύσετε το JSON.

Το παρακάτω συνθετικό παράδειγμα 422 δείχνει μη έγκυρη σύνταξη email, που εντοπίστηκε πριν από τη χρέωση. Ο δημόσιος κατάλογος σφαλμάτων περιέχει όλους τους κωδικούς, τις καταστάσεις, τις εξηγήσεις και τις προτεινόμενες ενέργειες.

Κατάσταση HTTPΣυνήθης σημασίαΕπόμενο βήμα
400 / 413 / 415Μη έγκυρο JSON, υπερβολικά μεγάλο σώμα ή μη υποστηριζόμενος τύπος περιεχομένου.Διορθώστε το αίτημα.
401 / 403Απόρριψη πρόσβασης, περιορισμός λογαριασμού ή ανεπαρκείς πιστώσεις.Ελέγξτε το code. Διορθώστε την πρόσβαση, προσθέστε πιστώσεις ή περιμένετε την επαναφορά της δοκιμαστικής πρόσβασης IP.
422Μη έγκυρη είσοδος ή ασύμβατες επιλογές.Διορθώστε τα πεδία που αναφέρονται στο errors.
404 / 405Άγνωστη διαδρομή ή μη υποστηριζόμενη μέθοδος HTTP.Ελέγξτε τη διαδρομή του endpoint και την κεφαλίδα απόκρισης Allow.
429Όριο ρυθμού αιτημάτων ή ταυτόχρονων λειτουργιών.Περιμένετε όσο ορίζει το Retry-After πριν στείλετε άλλο αίτημα.
500Απρόβλεπτο σφάλμα διακομιστή.Επικοινωνήστε με την υποστήριξη και αναφέρετε το request_id. Ελέγξτε τη χρέωση πριν δοκιμάσετε ξανά.
502 / 503 / 504Σφάλμα παρόχου, εξάρτησης ή χρέωσης ή λήξη χρονικού ορίου.Ελέγξτε τα code, action και billing_status πριν δοκιμάσετε ξανά.
Παράδειγμα απόκρισης JSON
{
  "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
    }
  }
}

Πεδία απόκρισης σφάλματος

ΠεδίοΤύποςΜπορεί να είναι nullΠαράδειγμαΠεριγραφή
typestringΌχι"urn:genderapi:problem:validation_error"URI που προσδιορίζει τον τύπο του προβλήματος.
titlestringΌχι"validation error"Σύντομος τίτλος του σφάλματος, κατανοητός από ανθρώπους.
statusintegerΌχι422Κωδικός κατάστασης HTTP.
detailstringΌχι"The request does not match the schema."Εξήγηση του συγκεκριμένου σφάλματος.
instancestringΌχι"urn:uuid:550e8400-e29b-41d4-a716-446655440000"Αναγνωριστικό του αιτήματος που απέτυχε.
codestringΌχι"validation_error"Σταθερός κωδικός σφάλματος, αναγνώσιμος από μηχανές.
request_idstringΌχι"550e8400-e29b-41d4-a716-446655440000"Μοναδικό αναγνωριστικό αυτής της απόπειρας HTTP. Αποστέλλεται και στο X-Request-ID.
documentationstringΌχι"https://api.genderapi.io/api/v2/errors"Σύνδεσμος προς τον κατάλογο σφαλμάτων, όταν υπάρχει.
actionstringΌχι"correct_request"Προτεινόμενη ενέργεια αποκατάστασης, όταν ορίζεται στον κατάλογο σφαλμάτων.
errorsarray<object>Όχι[{"pointer":"/value","message":"must NOT have fewer than 1 characters"}]Προβλήματα επικύρωσης, όταν είναι διαθέσιμα. Κάθε στοιχείο περιέχει pointer και message.
errors[].pointerstringΌχι"/value"JSON Pointer που προσδιορίζει τη μη έγκυρη είσοδο.
errors[].messagestringΌχι"must NOT have fewer than 1 characters"Εξήγηση του προβλήματος επικύρωσης.

Μεταδεδομένα πρόσβασης, χρέωσης και αιτήματος

ΠεδίοΤύποςΜπορεί να είναι nullΠαράδειγμαΠεριγραφή
meta.request_idstringΌχι"550e8400-e29b-41d4-a716-446655440000"Μοναδικό αναγνωριστικό αυτής της απόπειρας HTTP. Αποστέλλεται και στο X-Request-ID.
meta.duration_msintegerΌχι42Χρόνος επεξεργασίας του αιτήματος σε χιλιοστά του δευτερολέπτου.
meta.access.modestringΌχι"api_key"api_key, ip_trial ή unauthenticated. Με λογαριασμό επί πληρωμή ελέγξτε ότι επιστρέφεται api_key.
meta.access.reasonstringΝαιnullΛόγος μετάβασης στη δοκιμαστική πρόσβαση IP: api_key_missing, api_key_invalid ή api_key_not_found. Διαφορετικά null.
meta.usage.charged_creditsintegerΝαι1Καθαρές πιστώσεις που χρεώθηκαν. Μηδέν πριν από τη χρέωση ή μετά από πλήρη επιβεβαιωμένη επιστροφή πιστώσεων. null όταν η χρέωση δεν έχει επιβεβαιωθεί.
meta.usage.remaining_creditsintegerΝαι99Υπόλοιπο κατά την ολοκλήρωση της λειτουργίας. Μπορεί να είναι αρνητικό. null αν δεν είναι διαθέσιμο ή αν η χρέωση δεν έχει επιβεβαιωθεί.
meta.usage.billing_statusstringΌχι"confirmed"not_charged, confirmed ή unconfirmed. Ελέγξτε το πριν επαναλάβετε μια πρόβλεψη που απέτυχε.
meta.usage.resets_atstringΝαι"2026-09-27T12:00:00.000Z"Χρονική στιγμή επαναφοράς της δοκιμαστικής πρόσβασης IP σε UTC (ISO 8601). null για λογαριασμούς με κλειδί API ή όταν είναι άγνωστη.
meta.usage.limitintegerΝαι10Όριο πιστώσεων της δοκιμαστικής πρόσβασης IP. null για λογαριασμούς με κλειδί API.
meta.usage.period_secondsintegerΝαι86400Διάρκεια της περιόδου της δοκιμαστικής πρόσβασης IP σε δευτερόλεπτα. null για λογαριασμούς με κλειδί API.

Νέες προσπάθειες και χρεώσεις

Κάθε αίτημα πρόβλεψης είναι νέα λειτουργία, ακόμη και όταν στέλνετε ξανά ένα πανομοιότυπο αίτημα. Σε κάθε αίτημα ισχύουν οι κανονικοί κανόνες πιστώσεων. Δεν υπάρχει προστασία από διπλά αιτήματα, επομένως αποφύγετε τις αυτόματες νέες προσπάθειες μετά από διακοπή της σύνδεσης ή άγνωστη έκβαση.

Σε απόκριση 429, περιμένετε όσο ορίζει το Retry-After πριν στείλετε άλλο αίτημα. Σε προβλέψεις που απέτυχαν, ελέγξτε πρώτα τα code, action και meta.usage.billing_status. Σε περίπτωση billing_reconciliation_required ή μη επιβεβαιωμένης χρέωσης, επικοινωνήστε με την υποστήριξη και αναφέρετε το request_id πριν δοκιμάσετε ξανά.

Μια παρτίδα που ολοκληρώθηκε εν μέρει επιτυχώς μπορεί να επιστρέψει HTTP 200. Ελέγξτε κάθε στοιχείο και, αφού επιβεβαιωθεί η χρέωση, στείλτε ξανά μόνο τα στοιχεία που απέτυχαν. Τα επιτυχή στοιχεία θα χρεώνονταν για δεύτερη φορά.

Τα X-Request-ID και meta.request_id προσδιορίζουν την τρέχουσα απόπειρα HTTP. Διαβάστε το τρέχον υπόλοιπο μέσω του /usage. Το HEAD δεν ξεκινά χρεώσιμη πρόβλεψη. Οι αποκρίσεις προβλέψεων και λογαριασμού δεν αποθηκεύονται στην κρυφή μνήμη.

Τα προγράμματα-πελάτες πρέπει να ανέχονται νέα πεδία που προστίθενται στην απόκριση και να διατηρούν τις τιμές null όταν μια πληροφορία δεν είναι διαθέσιμη.

Όρια αιτημάτων

Χειριστείτε το HTTP 429 και το Retry-After αντί να υποθέτετε ότι τα αιτήματα γίνονται πάντα δεκτά μέχρι αυτές τις μέγιστες τιμές. Η χωρητικότητα της υπηρεσίας είναι κοινόχρηστη. Οι τιμές που εμφανίζονται είναι οι τρέχουσες προεπιλογές της υπηρεσίας. Οι αποκρίσεις περιορισμού περιλαμβάνουν X-RateLimit-Limit, X-RateLimit-Remaining και X-RateLimit-Reset (δευτερόλεπτα Unix). Το Retry-After είναι χρόνος αναμονής σε δευτερόλεπτα. Αυτές οι κεφαλίδες περιγράφουν τα όρια αιτημάτων, όχι το υπόλοιπο πιστώσεων. Ακόμη και η δωρεάν ανάγνωση του /usage υπολογίζεται στα όρια αιτημάτων.

ΌριοΤιμή
Σώμα αιτήματος JSONΈως 64 KiB
Τιμή για πρόβλεψη1–254 χαρακτήρες
Παρτίδα50 στοιχεία με κλειδί API, 10 με τη δοκιμαστική πρόσβαση IP
Ρυθμός ανά λογαριασμό120 αιτήματα ανά λεπτό
Ρυθμός ανά διεύθυνση IP600 αιτήματα ανά λεπτό
Ταυτόχρονες λειτουργίες2 ανά λογαριασμό, 16 σε ολόκληρη την υπηρεσία