Noms de lots, e-mails et noms d'utilisateur
POST /gender/batch accepte un tableau items contenant 1 à 50 entrées avec accès par clé API, ou au plus 10 entrées avec l'essai IP. Envoyez des noms, des adresses e-mail, des noms d'utilisateur ou un mélange des trois. Chaque entrée comporte des champs country, forceToGenderize et options distincts. Les identifiants sont facultatifs mais doivent être uniques au sein du lot.
Les résultats suivent l'ordre de saisie. Chaque résultat contient index, charged_credits et exactement un parmi data ou error. Si vous avez fourni un id, il est également renvoyé. Une réponse HTTP 200 peut contenir des échecs pour des entrées individuelles, alors vérifiez chaque résultat. meta.summary comprend total, succeeded, identified, unknown et failed. Une prédiction terminée sans genre connu compte toujours comme réussie et coûte des crédits.
Si la validation ou la planification de la demande échoue, l'ensemble du lot est rejeté avant que les crédits ne soient déduits. Si toutes les entrées échouent pendant l'exécution, l'API renvoie une réponse de problème non-2xx avec un tableau data et l'alias hérité results. Les entrées échouées ne coûtent aucun crédit après un remboursement confirmé. Si la facturation n’est pas confirmée, ne présumez pas que le coût déclaré pour chaque entrée est définitif.
Choisissez un langage de programmation. Configurez votre clé API, puis exécutez l'exemple sur votre serveur.
Chaque demande de prédiction est une nouvelle opération facturable, y compris les nouvelles tentatives. Ces exemples ne réessayent pas automatiquement. Vérifiez l'état de facturation avant d'envoyer une autre demande.
Avant d'exécuter : accès et gestion des erreurs
Exécutez ces exemples sur votre serveur. Définissez GENDERAPI_API_KEY dans l’environnement de processus sur votre clé API existante. Confirmez que meta.access.mode est api_key : une clé non reconnue peut revenir à l'essai IP.
Pour les réponses HTTP 4xx et 5xx JSON, les exemples conservent le corps de l'erreur et quittent avec un statut différent de zéro. Vérifiez code, action et meta.usage.billing_status avant de réessayer. Pour une réponse par lots HTTP 200, inspectez également data ou error dans chaque résultat.
Guide d'erreur et de nouvelle tentative →cURL 7.76+ dans un shell POSIX. Exécutez dans votre terminal. Documentation d'exécution
Node.js 22+ ; récupération intégrée. Enregistrez sous example.mjs et exécutez node example.mjs. Documentation d'exécution
Python 3.10+ ; bibliothèque standard. Enregistrez sous example.py et exécutez python3 example.py. Documentation d'exécution
PHP 8+ avec l'extension cURL. Enregistrez sous example.php et exécutez php example.php. Documentation d'exécution
Java 17+ ; client standard HTTP. Enregistrez sous GenderApiExample.java et exécutez java GenderApiExample.java. Documentation d'exécution
Application console .NET 8+. Utilisez comme Program.cs dans un projet de console, puis exécutez dotnet run. Documentation d'exécution
Go 1.22+ ; bibliothèque standard. Enregistrez sous main.go et exécutez go run main.go. Documentation d'exécution
Lire une réponse par lots
Cet exemple synthétique indépendant contient une correspondance d'ensemble de données, un résultat inconnu et un échec du fournisseur. Il illustre une réponse HTTP 200 de réussite partielle, et non le résultat attendu de la demande par lots ci-dessus. Les deux objets réussis coûtent 1 crédit chacun ; l'article défaillant a une charge confirmée nulle.
{
"data": [
{
"index": 0,
"id": "known",
"charged_credits": 1,
"data": {
"input": {
"type": "name",
"value": "Onur",
"country": "TR"
},
"name": "onur",
"gender": "male",
"country": "TR",
"confidence": 0.9,
"confidence_kind": "observed_frequency",
"sample_count": 100,
"source": "dataset",
"result_status": "identified",
"reason": null,
"country_source": "dataset",
"match": {
"name": "onur",
"method": "normalized",
"scope": "country",
"country": "TR"
}
}
},
{
"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
}
}
}Planifier des crédits et des tentatives par lots
Authentifiez-vous avec votre clé Bearer API existante et envoyez Content-Type: application/json. Chaque lot soumis est une nouvelle opération. Si vous réessayez avec un échec partiel, soumettez uniquement les éléments ayant échoué après avoir vérifié la facturation ; le renvoi des éléments réussis les facture à nouveau.
Par défaut, les entrées par lots utilisent off et coûtent 1 crédit par prédiction terminée. La sélection de fallback coûte également 1 crédit au total, IA comprise. La sélection de always coûte 2 crédits. Avec forceToGenderize, un genre trouvé dans l’ensemble de données coûte 1 crédit ; l'utilisation de l'IA coûte 2 crédits au total. Les prédictions terminées avec un genre inconnu coûtent également des crédits. Un solde de départ de 1 crédit suffit pour démarrer un lot. La déduction finale peut laisser le solde négatif.