Avant d'envoyer la requête
Envoyez les requêtes de prédiction GenderAPI.io V2 à POST https://api.genderapi.io/api/v2/gender, avec type et value dans le corps JSON. Utilisez votre clé GenderAPI.io existante dans Authorization: Bearer YOUR_API_KEY et Content-Type: application/json. Lisez le résultat dans data et les informations d'accès et de facturation dans meta. Chaque requête est traitée indépendamment.
Choisissez votre langage dans l'exemple de code. Définissez GENDERAPI_API_KEY dans l'environnement du processus avant de l'exécuter. Une clé absente ou non reconnue peut utiliser l'essai partagé par IP ; vérifiez donc que meta.access.mode vaut api_key lorsque vous intégrez un compte.
Genre à partir d'un nom
| Paramètre | Type | Obligatoire | Valeur par défaut | Description |
|---|---|---|---|---|
type | string | Oui | — | Catégorie d'entrée : name, email ou username. |
value | string | Oui | — | Obligatoire. 1 à 254 caractères ; non vide et sans caractères de contrôle. Une valeur de type email doit respecter la syntaxe d'une adresse e-mail valide. |
country | string | Non | — | Code ISO 3166-1 alpha-2 facultatif, en majuscules, par exemple TR ou US. La recherche propre à un pays peut se rabattre sur le jeu de données global. |
forceToGenderize | boolean | Non | false | Consulte d'abord le jeu de données, puis l'IA adaptée aux surnoms si aucun résultat n'est trouvé. Compatible avec name, email et username. |
options | object | Non | — | Objet contenant les options d'IA propres à chaque entrée. |
options.ai_mode | string | Non | fallback | Valeurs autorisées : off, fallback, always. Avec forceToGenderize: true, omettez ce champ ou utilisez fallback. |
id | string | Non | — | Identifiant facultatif de 1 à 64 caractères dans le corps JSON POST. Renvoyé avec chaque résultat de lot et unique au sein d'un lot. Accepté mais non renvoyé pour les prédictions individuelles. Non pris en charge dans les requêtes GET. |
Pour un prénom ou un nom complet, envoyez type: name et l'entrée complète dans value à POST https://api.genderapi.io/api/v2/gender. GenderAPI.io V2 utilise les mêmes champs de requête pour les deux formats. Une réponse réussie peut tout de même contenir data.gender: null. Les requêtes individuelles consultent d'abord le jeu de données et, par défaut, font appel à l'IA lorsqu'il ne permet pas de déterminer un genre.
Choisissez un langage de programmation. Configurez votre clé API, puis exécutez l'exemple sur votre serveur.
Chaque requête de prédiction est une nouvelle opération facturable, y compris les nouvelles tentatives. Ces exemples ne réessaient pas automatiquement. Vérifiez le statut de facturation avant d'envoyer une autre requête.
Avant l'exécution : accès et gestion des erreurs
Exécutez ces exemples sur votre serveur. Définissez GENDERAPI_API_KEY dans l'environnement du processus avec votre clé API existante. Vérifiez que meta.access.mode vaut api_key : une clé non reconnue peut basculer vers l'essai par IP.
Pour les réponses JSON HTTP 4xx et 5xx, les exemples conservent le corps de l'erreur et renvoient un code de sortie non nul. Vérifiez code, action et meta.usage.billing_status avant de réessayer.
Guide des erreurs et des nouvelles tentatives →cURL 7.76+ dans un shell POSIX. À exécuter dans votre terminal. Documentation de l'environnement d'exécution
Node.js 22+ ; fetch intégré. Enregistrez sous example.mjs et exécutez node example.mjs. Documentation de l'environnement d'exécution
Python 3.10+ ; bibliothèque standard. Enregistrez sous example.py et exécutez python3 example.py. Documentation de l'environnement d'exécution
PHP 8+ avec l'extension cURL. Enregistrez sous example.php et exécutez php example.php. Documentation de l'environnement d'exécution
Java 17+ ; client HTTP standard. Enregistrez sous GenderApiExample.java et exécutez java GenderApiExample.java. Documentation de l'environnement d'exécution
Application console .NET 8+. Utilisez-le comme Program.cs dans un projet console, puis exécutez dotnet run. Documentation de l'environnement d'exécution
Go 1.22+ ; bibliothèque standard. Enregistrez sous main.go et exécutez go run main.go. Documentation de l'environnement d'exécution
Exemple de réponse
Il s'agit d'une réponse réelle obtenue le 1er octobre 2026 avec une clé API ; seul le solde du compte a été remplacé. Elle ne constitue pas une mesure de la précision, et une requête réelle peut renvoyer un résultat différent. Les requêtes avec clé API indiquent meta.access.mode: api_key et renvoient null dans les champs de quota propres à l'essai ; les requêtes en essai par IP indiquent ip_trial. Lisez data pour l'inférence et meta.usage pour le résultat de facturation de l'opération.
{
"data": {
"input": {
"type": "name",
"value": "Antoine",
"country": "FR"
},
"name": "antoine",
"gender": "male",
"country": "FR",
"confidence": 0.9968091895341417,
"confidence_kind": "observed_frequency",
"sample_count": 1567,
"source": "dataset",
"result_status": "identified",
"reason": null,
"country_source": "dataset",
"match": {
"name": "antoine",
"method": "normalized",
"scope": "country",
"country": "FR"
}
},
"meta": {
"request_id": "e1b6e741-9544-4b89-a4a0-c590bc682513",
"duration_ms": 28,
"access": {
"mode": "api_key",
"reason": null
},
"usage": {
"charged_credits": 1,
"remaining_credits": 49999,
"billing_status": "confirmed",
"resets_at": null,
"limit": null,
"period_seconds": null
}
}
}Champs de la réponse de prédiction
| Champ | Type | Peut valoir null | Exemple | Description |
|---|---|---|---|---|
data.input | object | Non | {"type":"name","value":"Antoine","country":"FR"} | Type d'entrée, valeur et pays. forceToGenderize est inclus lorsqu'il vaut true. |
data.name | string | Oui | "antoine" | Prénom correspondant ou extrait ; null si aucun n'est disponible. |
data.gender | string | Oui | "male" | male, female ou JSON null. Il s'agit d'une inférence, et non d'une identité personnelle vérifiée. |
data.result_status | string | Non | "identified" | identified si un genre est renvoyé ; unknown sinon. |
data.reason | string | Oui | null | null pour les résultats identified. Raisons d'un résultat inconnu : not_found, no_name_candidate, ambiguous ou insufficient_evidence. |
data.confidence | number | Oui | 0.95 | Score de 0 à 1 ou null. Un genre null a une confiance null. |
data.confidence_kind | string | Oui | "observed_frequency" | observed_frequency : effectif du genre dominant divisé par le total de la ligne du jeu de données sélectionnée. model_reported : score de l'IA, qui n'est pas une probabilité calibrée. null lorsqu'il n'est pas disponible. |
data.sample_count | integer | Oui | 1200 | Taille de l'échantillon du jeu de données ou null. L'IA n'invente pas d'effectif d'échantillon. |
data.source | string | Non | "dataset" | dataset, ai ou none. |
data.country | string | Oui | "FR" | Association à un pays issue de dataset ou ai_association, ou null. N'établit ni la nationalité, ni la résidence, ni l'origine ethnique. |
data.country_source | string | Oui | "dataset" | Origine de l'association au pays : dataset, ai_association ou null. |
data.match | object | Non | {"name":"antoine","method":"normalized","scope":"country","country":"FR"} | Nom correspondant dans le jeu de données, méthode (normalized, token, substring ou model_inference), portée country ou global et pays de la correspondance. Les informations indisponibles valent null. |
Accès, facturation et métadonnées de la requête
| Champ | Type | Peut valoir null | Exemple | Description |
|---|---|---|---|---|
meta.request_id | string | Non | "550e8400-e29b-41d4-a716-446655440000" | Identifiant unique de cette tentative HTTP ; également envoyé dans X-Request-ID. |
meta.duration_ms | integer | Non | 42 | Durée de traitement de la requête en millisecondes. |
meta.access.mode | string | Non | "api_key" | api_key, ip_trial ou unauthenticated. Vérifiez api_key lorsque vous utilisez un compte payant. |
meta.access.reason | string | Oui | null | Motif du passage à l'essai : api_key_missing, api_key_invalid ou api_key_not_found ; null sinon. |
meta.usage.charged_credits | integer | Oui | 1 | Crédits nets débités. Zéro avant débit ou après remboursement intégral confirmé ; null si la facturation n'est pas confirmée. |
meta.usage.remaining_credits | integer | Oui | 99 | Solde à la fin de l'opération. Peut être négatif ; null si indisponible ou si la facturation n'est pas confirmée. |
meta.usage.billing_status | string | Non | "confirmed" | not_charged, confirmed ou unconfirmed. Vérifiez ce champ avant de relancer une prédiction échouée. |
meta.usage.resets_at | string | Oui | "2026-09-27T12:00:00.000Z" | Réinitialisation de l'essai par IP en UTC (ISO 8601) ; null pour les comptes avec clé API ou si inconnue. |
meta.usage.limit | integer | Oui | 10 | Crédits de l'essai par IP ; null pour les comptes avec clé API. |
meta.usage.period_seconds | integer | Oui | 86400 | Durée de l'essai par IP en secondes ; null pour les comptes avec clé API. |
Contexte de pays et noms inconnus
Indiquez un pays uniquement si vous disposez d'un contexte pertinent. L'API peut sélectionner une ligne du jeu de données propre à ce pays ou se rabattre sur une ligne globale. data.match.scope indique laquelle a été retenue ; le pays renvoyé n'indique pas où vit la personne.
Par défaut, une requête individuelle utilise le repli sur l'IA pour 1 crédit au total. Pour n'utiliser que le jeu de données, envoyez options: {"ai_mode": "off"}. Les entrées non résolues peuvent renvoyer gender: null et restent facturables lorsque l'opération réussit. Un nom complet peut correspondre à l'un de ses composants ; data.match indique le candidat retenu et la méthode de correspondance.
Pour une valeur de nom qui ressemble à un surnom, forceToGenderize: true autorise l'inférence sans véritable prénom : un résultat résolu par le jeu de données coûte 1 crédit ; sinon, l'IA adaptée aux surnoms coûte 2 crédits au total. Un solde de départ positif suffit et le solde final peut devenir négatif.
Rechercher un nom complet sans supposer que le premier mot est retenu
Envoyez le nom avec ses caractères Unicode d'origine. La recherche dans le jeu de données applique une normalisation NFKC, une conversion en minuscules et une extraction des composants ; vous n'avez pas besoin de convertir le nom en ASCII. Parmi les candidats disponibles, l'API retient l'enregistrement dont le total stocké est le plus élevé. Ce candidat peut être un composant ultérieur du nom : ne supposez pas que le premier mot ou le prénom a été retenu.
Cette requête limitée au jeu de données permet d'examiner plus facilement la correspondance retenue. Lisez data.input.value pour le nom complet envoyé, data.match.name pour le candidat recherché et data.match.method pour la méthode de correspondance. L'exemple ne garantit ni un genre ni un composant particulier. Les candidats du jeu de données doivent comporter plus de deux caractères ; les entrées courtes peuvent rester non résolues. Activez le repli ordinaire sur l'IA si cette inférence supplémentaire convient à votre application.
Choisissez un langage de programmation. Configurez votre clé API, puis exécutez l'exemple sur votre serveur.
Chaque requête de prédiction est une nouvelle opération facturable, y compris les nouvelles tentatives. Ces exemples ne réessaient pas automatiquement. Vérifiez le statut de facturation avant d'envoyer une autre requête.
Avant l'exécution : accès et gestion des erreurs
Exécutez ces exemples sur votre serveur. Définissez GENDERAPI_API_KEY dans l'environnement du processus avec votre clé API existante. Vérifiez que meta.access.mode vaut api_key : une clé non reconnue peut basculer vers l'essai par IP.
Pour les réponses JSON HTTP 4xx et 5xx, les exemples conservent le corps de l'erreur et renvoient un code de sortie non nul. Vérifiez code, action et meta.usage.billing_status avant de réessayer.
Guide des erreurs et des nouvelles tentatives →cURL 7.76+ dans un shell POSIX. À exécuter dans votre terminal. Documentation de l'environnement d'exécution
Node.js 22+ ; fetch intégré. Enregistrez sous example.mjs et exécutez node example.mjs. Documentation de l'environnement d'exécution
Python 3.10+ ; bibliothèque standard. Enregistrez sous example.py et exécutez python3 example.py. Documentation de l'environnement d'exécution
PHP 8+ avec l'extension cURL. Enregistrez sous example.php et exécutez php example.php. Documentation de l'environnement d'exécution
Java 17+ ; client HTTP standard. Enregistrez sous GenderApiExample.java et exécutez java GenderApiExample.java. Documentation de l'environnement d'exécution
Application console .NET 8+. Utilisez-le comme Program.cs dans un projet console, puis exécutez dotnet run. Documentation de l'environnement d'exécution
Go 1.22+ ; bibliothèque standard. Enregistrez sous main.go et exécutez go run main.go. Documentation de l'environnement d'exécution
Vérifier quel contexte de pays a réellement été utilisé
N'envoyez un code pays ISO que si vous disposez d'un contexte pertinent ; ne le déduisez pas du résultat prédit. Pour chaque candidat, une ligne propre au pays est prioritaire sur la ligne globale. S'il n'existe pas de ligne pour le pays, le candidat peut utiliser la ligne globale. Une ligne de pays à égalité n'est pas remplacée par la ligne globale : si la ligne retenue est à égalité, le résultat du jeu de données est unknown et un repli sur l'IA activé peut s'exécuter.
| Indice dans la réponse | Interprétation | Action dans votre application |
|---|---|---|
| match.scope: country; match.country: TR | Le candidat retenu provient de la ligne du pays demandé. | Conservez le candidat retenu et la portée pays avec la prédiction. |
| match.scope: global; match.country: null | Le candidat retenu provient d'une ligne globale, même si la requête indiquait un pays. | Ne présentez pas le résultat comme une correspondance propre à ce pays. |
| country_source: dataset ou ai_association | Indique l'origine de data.country, et non la portée de la recherche ni la nationalité de la personne. | Interprétez-le séparément de match.country ; aucun de ces champs ne vérifie la résidence ou la nationalité. |
| source: ai; match.scope: null | La réponse finale provient de l'IA ; elle ne contient donc aucune ligne retenue du jeu de données. | Appliquez les règles de confiance propres à l'IA et conservez les résultats inconnus. |