Ονόματα, διευθύνσεις email και ονόματα χρήστη σε παρτίδες
| Παράμετρος | Τύπος | Υποχρεωτικό | Προεπιλογή | Περιγραφή |
|---|---|---|---|---|
items | array<object> | Ναι | — | Από 1 έως 50 στοιχεία πρόβλεψης, έως 10 με τη δοκιμαστική πρόσβαση IP. Τα αποτελέσματα διατηρούν τη σειρά εισόδου. |
items[].type | string | Ναι | — | Κατηγορία εισόδου: name, email ή username. |
items[].value | string | Ναι | — | Υποχρεωτικό. 1–254 χαρακτήρες, όχι κενό και χωρίς χαρακτήρες ελέγχου. Οι τιμές email πρέπει να έχουν έγκυρη σύνταξη email. |
items[].country | string | Όχι | — | Προαιρετικός κωδικός ISO 3166-1 alpha-2 με κεφαλαία γράμματα, για παράδειγμα TR ή US. Μια αναζήτηση για συγκεκριμένη χώρα μπορεί να καταφύγει στο καθολικό σύνολο δεδομένων. |
items[].forceToGenderize | boolean | Όχι | false | Ελέγχει πρώτα το σύνολο δεδομένων και, αν δεν υπάρξει αποτέλεσμα, χρησιμοποιεί AI με ανάλυση ψευδωνύμων. Υποστηρίζεται για name, email και username. |
items[].options | object | Όχι | — | Πεδίο με τις επιλογές AI για κάθε είσοδο. |
items[].options.ai_mode | string | Όχι | off | Επιτρεπόμενες τιμές: off, fallback, always. Με forceToGenderize: true, παραλείψτε αυτό το πεδίο ή χρησιμοποιήστε fallback. |
items[].id | string | Όχι | — | Προαιρετικό αναγνωριστικό 1–64 χαρακτήρων στο JSON του POST. Επιστρέφεται δίπλα στο αντίστοιχο αποτέλεσμα της παρτίδας και πρέπει να είναι μοναδικό μέσα στην παρτίδα. Στις μεμονωμένες προβλέψεις γίνεται δεκτό, αλλά δεν επιστρέφεται. Δεν υποστηρίζεται στα ερωτήματα GET. |
Το GenderAPI.io V2 δέχεται μαζί ονόματα, διευθύνσεις email και ονόματα χρήστη στο POST https://api.genderapi.io/api/v2/gender/batch. Στείλτε έναν πίνακα items με 1–50 στοιχεία αν χρησιμοποιείτε κλειδί API ή έως 10 με τη δοκιμαστική πρόσβαση IP. Κάθε στοιχείο χρησιμοποιεί type και value και μπορεί να έχει δικές του τιμές για country, forceToGenderize και options. Τα αναγνωριστικά είναι προαιρετικά και πρέπει να είναι μοναδικά μέσα στην παρτίδα.
Τα αποτελέσματα διατηρούν τη σειρά εισόδου και περιέχουν index, το προαιρετικό id σας, charged_credits και ακριβώς ένα από τα data και error. Μια απόκριση HTTP 200 μπορεί να περιέχει σφάλματα μεμονωμένων στοιχείων, γι' αυτό ελέγξτε κάθε στοιχείο. Το meta.summary αναφέρει τα total, succeeded, identified, unknown και failed. Μια άγνωστη πρόβλεψη είναι επιτυχές στοιχείο που χρεώνεται.
Αν η επικύρωση ή ο προγραμματισμός του αιτήματος αποτύχει, η παρτίδα απορρίπτεται πριν από τη χρέωση. Αν όλα τα στοιχεία που εκτελέστηκαν αποτύχουν, το API επιστρέφει μια απόκριση Problem με κατάσταση εκτός 2xx, έναν πίνακα data και το παλαιό ψευδώνυμο πεδίου results. Τα στοιχεία που απέτυχαν δεν κοστίζουν τίποτα μετά από επιβεβαιωμένη επιστροφή πιστώσεων. Αν η χρέωση δεν έχει επιβεβαιωθεί, μη θεωρείτε οριστικό το κόστος των μεμονωμένων στοιχείων.
Επιλέξτε γλώσσα προγραμματισμού. Ρυθμίστε το κλειδί API σας, και έπειτα εκτελέστε το παράδειγμα στον διακομιστή σας.
Κάθε αίτημα πρόβλεψης είναι μια νέα χρεώσιμη λειτουργία, ακόμη και όταν πρόκειται για νέα προσπάθεια. Αυτά τα παραδείγματα δεν επαναλαμβάνουν αυτόματα το αίτημα. Ελέγξτε την κατάσταση χρέωσης πριν στείλετε άλλο αίτημα.
Πριν από την εκτέλεση: πρόσβαση και χειρισμός σφαλμάτων
Εκτελέστε αυτά τα παραδείγματα στον διακομιστή σας. Ορίστε στο περιβάλλον της διεργασίας το GENDERAPI_API_KEY με το υπάρχον κλειδί API σας. Ελέγξτε ότι το meta.access.mode έχει την τιμή api_key, επειδή ένα κλειδί που δεν αναγνωρίζεται μπορεί να οδηγήσει στη δοκιμαστική πρόσβαση IP.
Στις αποκρίσεις JSON με HTTP 4xx και 5xx διατηρείται το σώμα του σφάλματος και το παράδειγμα τερματίζει με μη μηδενικό κωδικό εξόδου. Ελέγξτε τα code, action και meta.usage.billing_status πριν δοκιμάσετε ξανά. Στις αποκρίσεις παρτίδας με HTTP 200 ελέγξτε επίσης το data ή το error κάθε στοιχείου.
Οδηγός για σφάλματα και νέες προσπάθειες →cURL 7.76+ σε κέλυφος POSIX. Εκτελέστε το στο τερματικό. Τεκμηρίωση του περιβάλλοντος εκτέλεσης
Node.js 22+ με ενσωματωμένο fetch. Αποθηκεύστε ως example.mjs και εκτελέστε node example.mjs. Τεκμηρίωση του περιβάλλοντος εκτέλεσης
Python 3.10+ με την τυπική βιβλιοθήκη. Αποθηκεύστε ως example.py και εκτελέστε python3 example.py. Τεκμηρίωση του περιβάλλοντος εκτέλεσης
PHP 8+ με την επέκταση cURL. Αποθηκεύστε ως example.php και εκτελέστε php example.php. Τεκμηρίωση του περιβάλλοντος εκτέλεσης
Java 17+ με τον τυπικό πελάτη HTTP. Αποθηκεύστε ως GenderApiExample.java και εκτελέστε java GenderApiExample.java. Τεκμηρίωση του περιβάλλοντος εκτέλεσης
Εφαρμογή κονσόλας .NET 8+. Χρησιμοποιήστε το ως Program.cs σε ένα έργο κονσόλας και έπειτα εκτελέστε dotnet run. Τεκμηρίωση του περιβάλλοντος εκτέλεσης
Go 1.22+ με την τυπική βιβλιοθήκη. Αποθηκεύστε ως main.go και εκτελέστε go run main.go. Τεκμηρίωση του περιβάλλοντος εκτέλεσης
Ανάγνωση απόκρισης παρτίδας
Αυτό το παράδειγμα συνδυάζει δύο πραγματικά αποτελέσματα που λήφθηκαν την 1η Οκτωβρίου 2026, μια αντιστοίχιση στο σύνολο δεδομένων και ένα άγνωστο αποτέλεσμα, με ένα ενδεικτικό σφάλμα παρόχου. Δείχνει μια απόκριση HTTP 200 με μερική επιτυχία, όχι την αναμενόμενη έξοδο του παραπάνω αιτήματος παρτίδας. Τα δύο επιτυχή στοιχεία κοστίζουν 1 πίστωση το καθένα. Για το στοιχείο που απέτυχε έχει επιβεβαιωθεί μηδενική χρέωση.
{
"data": [
{
"index": 0,
"id": "known",
"charged_credits": 1,
"data": {
"input": {
"type": "name",
"value": "Eleni",
"country": "GR"
},
"name": "eleni",
"gender": "female",
"country": "GR",
"confidence": 0.9965940054495913,
"confidence_kind": "observed_frequency",
"sample_count": 1468,
"source": "dataset",
"result_status": "identified",
"reason": null,
"country_source": "dataset",
"match": {
"name": "eleni",
"method": "normalized",
"scope": "country",
"country": "GR"
}
}
},
{
"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
}
}
}Πεδία αποτελεσμάτων παρτίδας
| Πεδίο | Τύπος | Μπορεί να είναι null | Παράδειγμα | Περιγραφή |
|---|---|---|---|---|
data | array<object> | Όχι | […] | Αποτελέσματα με τη σειρά εισόδου. Κάθε στοιχείο περιέχει μια πρόβλεψη ή ένα σφάλμα, γι' αυτό ελέγξτε όλα τα στοιχεία. |
data[].index | integer | Όχι | 0 | Θέση στον πίνακα items που στάλθηκε, με αρίθμηση από το μηδέν. |
data[].id | string | Όχι | "contact-1" | Το αναγνωριστικό εισόδου σας. Υπάρχει μόνο αν το δώσατε. |
data[].charged_credits | integer | Όχι | 1 | Καθαρή χρέωση του στοιχείου μετά τις επιβεβαιωμένες επιστροφές πιστώσεων. Μην τη θεωρείτε οριστική αν η συνολική χρέωση δεν έχει επιβεβαιωθεί. |
data[].data | object | Όχι | {…} | Υπάρχει για ένα επιτυχές στοιχείο, και για άγνωστα αποτελέσματα. Χρησιμοποιεί τα πεδία πρόβλεψης που περιγράφονται στον οδηγό αποκρίσεων. |
data[].error | object | Όχι | {…} | Υπάρχει αντί του data για ένα στοιχείο που απέτυχε. Χρησιμοποιεί τα πεδία Problem Details που περιγράφονται στον οδηγό σφαλμάτων. |
Πεδία σύνοψης παρτίδας
| Πεδίο | Τύπος | Μπορεί να είναι null | Παράδειγμα | Περιγραφή |
|---|---|---|---|---|
meta.summary.total | integer | Όχι | 3 | Συνολικός αριθμός στοιχείων στην παρτίδα. |
meta.summary.succeeded | integer | Όχι | 2 | Επιτυχή στοιχεία, μαζί με τις άγνωστες προβλέψεις. |
meta.summary.identified | integer | Όχι | 1 | Επιτυχή στοιχεία με φύλο διαφορετικό από null. |
meta.summary.unknown | integer | Όχι | 1 | Επιτυχή στοιχεία με gender null. Αυτά τα αποτελέσματα χρεώνονται. |
meta.summary.failed | integer | Όχι | 1 | Στοιχεία που απέτυχαν. Ισχύει total = succeeded + failed και succeeded = identified + unknown. |
Μεταδεδομένα πρόσβασης, χρέωσης και αιτήματος
| Πεδίο | Τύπος | Μπορεί να είναι null | Παράδειγμα | Περιγραφή |
|---|---|---|---|---|
meta.request_id | string | Όχι | "550e8400-e29b-41d4-a716-446655440000" | Μοναδικό αναγνωριστικό αυτής της απόπειρας HTTP. Αποστέλλεται και στο X-Request-ID. |
meta.duration_ms | integer | Όχι | 42 | Χρόνος επεξεργασίας του αιτήματος σε χιλιοστά του δευτερολέπτου. |
meta.access.mode | string | Όχι | "api_key" | api_key, ip_trial ή unauthenticated. Με λογαριασμό επί πληρωμή ελέγξτε ότι επιστρέφεται api_key. |
meta.access.reason | string | Ναι | null | Λόγος μετάβασης στη δοκιμαστική πρόσβαση IP: api_key_missing, api_key_invalid ή api_key_not_found. Διαφορετικά null. |
meta.usage.charged_credits | integer | Ναι | 1 | Καθαρές πιστώσεις που χρεώθηκαν. Μηδέν πριν από τη χρέωση ή μετά από πλήρη επιβεβαιωμένη επιστροφή πιστώσεων. null όταν η χρέωση δεν έχει επιβεβαιωθεί. |
meta.usage.remaining_credits | integer | Ναι | 99 | Υπόλοιπο κατά την ολοκλήρωση της λειτουργίας. Μπορεί να είναι αρνητικό. null αν δεν είναι διαθέσιμο ή αν η χρέωση δεν έχει επιβεβαιωθεί. |
meta.usage.billing_status | string | Όχι | "confirmed" | not_charged, confirmed ή unconfirmed. Ελέγξτε το πριν επαναλάβετε μια πρόβλεψη που απέτυχε. |
meta.usage.resets_at | string | Ναι | "2026-09-27T12:00:00.000Z" | Χρονική στιγμή επαναφοράς της δοκιμαστικής πρόσβασης IP σε UTC (ISO 8601). null για λογαριασμούς με κλειδί API ή όταν είναι άγνωστη. |
meta.usage.limit | integer | Ναι | 10 | Όριο πιστώσεων της δοκιμαστικής πρόσβασης IP. null για λογαριασμούς με κλειδί API. |
meta.usage.period_seconds | integer | Ναι | 86400 | Διάρκεια της περιόδου της δοκιμαστικής πρόσβασης IP σε δευτερόλεπτα. null για λογαριασμούς με κλειδί API. |
Προγραμματισμός πιστώσεων και νέων προσπαθειών για παρτίδες
Πραγματοποιήστε έλεγχο ταυτότητας με το υπάρχον κλειδί API σας στην κεφαλίδα Bearer και στείλτε Content-Type: application/json. Κάθε παρτίδα που αποστέλλεται είναι νέα λειτουργία. Αν δοκιμάσετε ξανά μετά από μερικό σφάλμα, στείλτε μόνο τα στοιχεία που απέτυχαν, αφού ελέγξετε τη χρέωση. Τα επιτυχή στοιχεία που αποστέλλονται ξανά χρεώνονται για δεύτερη φορά.
Στα στοιχεία μιας παρτίδας το AI είναι από προεπιλογή off και κάθε επιτυχές στοιχείο κοστίζει 1 πίστωση. Και το ρητό fallback κοστίζει συνολικά 1 πίστωση, μαζί με το AI. Το always κοστίζει 2 πιστώσεις. Το forceToGenderize κοστίζει 1 πίστωση για αποτέλεσμα από το σύνολο δεδομένων ή 2 αν χρησιμοποιηθεί AI. Τα επιτυχή άγνωστα αποτελέσματα χρεώνονται. Για να ξεκινήσει η παρτίδα αρκεί ένα θετικό αρχικό υπόλοιπο 1 πίστωσης. Η τελική χρέωση μπορεί να αφήσει αρνητικό υπόλοιπο.
Επεξεργασία μιας λίστας επαφών χωρίς να χαθεί καμία γραμμή
Το endpoint παρτίδας χειρίζεται λίστες μόνο με ονόματα, λίστες μόνο με διευθύνσεις email και μικτές εισόδους. Με κλειδί API χωρίστε την εργασία σε παρτίδες έως 50 στοιχείων. Η δοκιμαστική πρόσβαση IP επιτρέπει έως 10 ανά αίτημα. Καταγράφετε σε ποιο σημείο της εργασίας βρίσκεστε και δώστε σε κάθε στοιχείο ένα id μοναδικό μέσα στην παρτίδα. Το index που επιστρέφεται ξεκινά από το μηδέν μέσα στην παρτίδα που στάλθηκε, όχι μέσα σε ολόκληρη τη λίστα επαφών.
| Βήμα | Τι να αποθηκεύσετε ή να ελέγξετε | Γιατί έχει σημασία |
|---|---|---|
| 1. Προετοιμάστε κάθε παρτίδα | Κρατήστε τη γραμμή προέλευσης και το id του στοιχείου. Ορίστε country και επιλογές AI για κάθε στοιχείο. | Μη θεωρείτε δεδομένο ότι ένα όνομα είναι μοναδικό σε όλες τις επαφές. |
| 2. Διαβάστε ολόκληρη την απόκριση | Αποθηκεύστε το meta.request_id και αντιστοιχίστε κάθε στοιχείο του data[] μέσω του id ή του index. | Μια απόκριση HTTP 200 μπορεί να περιέχει τόσο επιτυχείς προβλέψεις όσο και σφάλματα μεμονωμένων στοιχείων. |
| 3. Αποθηκεύστε τα επιτυχή αποτελέσματα | Διατηρήστε τις προβλέψεις identified και unknown, μαζί με τις τιμές JSON null και τα πεδία των τεκμηρίων. | Ένα άγνωστο αποτέλεσμα έχει ολοκληρωθεί και χρεωθεί. Δεν είναι γραμμή που απέτυχε και πρέπει να σταλεί ξανά αυτόματα. |
| 4. Συμφωνήστε σφάλματα και πιστώσεις | Ελέγξτε κάθε error και το meta.usage.billing_status πριν αποφασίσετε αν θα στείλετε νέο αίτημα. | Αφού επιβεβαιωθεί η χρέωση, δοκιμάστε ξανά μόνο τα στοιχεία που απέτυχαν και των οποίων το σφάλμα το δικαιολογεί. Τα επιτυχή στοιχεία θα χρεώνονταν ξανά. |
| 5. Αναβάλετε τις αβέβαιες νέες προσπάθειες | Αποθηκεύστε το αναγνωριστικό του αιτήματος αν η χρέωση δεν έχει επιβεβαιωθεί ή αν ένα σφάλμα δικτύου αφήνει άγνωστη την έκβαση. | Μη στέλνετε ξανά στα τυφλά ολόκληρη την παρτίδα. Ακολουθήστε πρώτα τις οδηγίες για σφάλματα και χρεώσεις. |
Επιλογή λειτουργίας πρόβλεψης για κάθε επαφή
Αυτό το εκτελέσιμο αίτημα χρησιμοποιεί τρεις διαφορετικούς κανόνες: μόνο σύνολο δεδομένων για ένα πλήρες όνομα, κανονική εφεδρική χρήση AI για μια διεύθυνση email και εφεδρική χρήση AI με ανάλυση ψευδωνύμων για ένα όνομα χρήστη. Πρόκειται για παραδείγματα εισόδων, όχι για υπόσχεση ότι και οι τρεις επαφές θα λάβουν φύλο. Επιλέξτε μια γλώσσα προγραμματισμού πάνω από τον κώδικα και ορίστε το GENDERAPI_API_KEY πριν εκτελέσετε το παράδειγμα.
Χωρίς το forceToGenderize, το AI είναι από προεπιλογή off στα στοιχεία μιας παρτίδας, σε αντίθεση με τις μεμονωμένες αναζητήσεις. Ορίστε ρητά fallback αν θέλετε την κανονική εφεδρική χρήση AI. Τόσο το off όσο και το κανονικό fallback κοστίζουν 1 πίστωση ανά επιτυχές στοιχείο. Το always παραλείπει το σύνολο δεδομένων και κοστίζει 2. Το forceToGenderize κοστίζει 1 για αποτέλεσμα από το σύνολο δεδομένων ή 2 συνολικά αν χρησιμοποιηθεί AI. Και τα επιτυχή άγνωστα αποτελέσματα χρεώνονται. Μη συνδυάζετε το forceToGenderize με off ή always.
Επιλέξτε γλώσσα προγραμματισμού. Ρυθμίστε το κλειδί API σας, και έπειτα εκτελέστε το παράδειγμα στον διακομιστή σας.
Κάθε αίτημα πρόβλεψης είναι μια νέα χρεώσιμη λειτουργία, ακόμη και όταν πρόκειται για νέα προσπάθεια. Αυτά τα παραδείγματα δεν επαναλαμβάνουν αυτόματα το αίτημα. Ελέγξτε την κατάσταση χρέωσης πριν στείλετε άλλο αίτημα.
Πριν από την εκτέλεση: πρόσβαση και χειρισμός σφαλμάτων
Εκτελέστε αυτά τα παραδείγματα στον διακομιστή σας. Ορίστε στο περιβάλλον της διεργασίας το GENDERAPI_API_KEY με το υπάρχον κλειδί API σας. Ελέγξτε ότι το meta.access.mode έχει την τιμή api_key, επειδή ένα κλειδί που δεν αναγνωρίζεται μπορεί να οδηγήσει στη δοκιμαστική πρόσβαση IP.
Στις αποκρίσεις JSON με HTTP 4xx και 5xx διατηρείται το σώμα του σφάλματος και το παράδειγμα τερματίζει με μη μηδενικό κωδικό εξόδου. Ελέγξτε τα code, action και meta.usage.billing_status πριν δοκιμάσετε ξανά. Στις αποκρίσεις παρτίδας με HTTP 200 ελέγξτε επίσης το data ή το error κάθε στοιχείου.
Οδηγός για σφάλματα και νέες προσπάθειες →cURL 7.76+ σε κέλυφος POSIX. Εκτελέστε το στο τερματικό. Τεκμηρίωση του περιβάλλοντος εκτέλεσης
Node.js 22+ με ενσωματωμένο fetch. Αποθηκεύστε ως example.mjs και εκτελέστε node example.mjs. Τεκμηρίωση του περιβάλλοντος εκτέλεσης
Python 3.10+ με την τυπική βιβλιοθήκη. Αποθηκεύστε ως example.py και εκτελέστε python3 example.py. Τεκμηρίωση του περιβάλλοντος εκτέλεσης
PHP 8+ με την επέκταση cURL. Αποθηκεύστε ως example.php και εκτελέστε php example.php. Τεκμηρίωση του περιβάλλοντος εκτέλεσης
Java 17+ με τον τυπικό πελάτη HTTP. Αποθηκεύστε ως GenderApiExample.java και εκτελέστε java GenderApiExample.java. Τεκμηρίωση του περιβάλλοντος εκτέλεσης
Εφαρμογή κονσόλας .NET 8+. Χρησιμοποιήστε το ως Program.cs σε ένα έργο κονσόλας και έπειτα εκτελέστε dotnet run. Τεκμηρίωση του περιβάλλοντος εκτέλεσης
Go 1.22+ με την τυπική βιβλιοθήκη. Αποθηκεύστε ως main.go και εκτελέστε go run main.go. Τεκμηρίωση του περιβάλλοντος εκτέλεσης