Envoyez type et value à GenderAPI.io V2. Comparez les paramètres de requête GET et le corps JSON POST, y compris country, les modes d'IA et forceToGenderize.
Paramètres JSON POST
Paramètre
Type
Obligatoire
Valeur par défaut
Description
Paramètretype
Typestring
ObligatoireOui
Valeur par défaut—
DescriptionCatégorie d'entrée : name, email ou username.
Paramètrevalue
Typestring
ObligatoireOui
Valeur par défaut—
DescriptionObligatoire. 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.
Paramètrecountry
Typestring
ObligatoireNon
Valeur par défaut—
DescriptionCode 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.
ParamètreforceToGenderize
Typeboolean
ObligatoireNon
Valeur par défautfalse
DescriptionConsulte 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.
Paramètreoptions
Typeobject
ObligatoireNon
Valeur par défaut—
DescriptionObjet contenant les options d'IA propres à chaque entrée.
Paramètreoptions.ai_mode
Typestring
ObligatoireNon
Valeur par défautfallback
DescriptionValeurs autorisées : off, fallback, always. Avec forceToGenderize: true, omettez ce champ ou utilisez fallback.
Paramètreid
Typestring
ObligatoireNon
Valeur par défaut—
DescriptionIdentifiant 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.
Un tiret (—) indique l'absence de valeur par défaut. Omettez les entrées facultatives inutilisées ; n'envoyez pas null. Les exemples de réponse sont illustratifs, pas des valeurs par défaut. Accepter null signifie accepter JSON null ; l'absence d'un champ est expliquée séparément.
Omettez les champs facultatifs inutilisés ; n'envoyez ni null ni chaîne vide à la place de country ou options. Les booléens JSON doivent valoir true ou false, et non des chaînes. Le texte UTF-8 est pris en charge ; il n'est pas nécessaire de translittérer les noms en ASCII.
Paramètres de requête GET
Paramètre
Type
Obligatoire
Valeur par défaut
Description
Paramètretype
Typestring
ObligatoireNon
Valeur par défautname
DescriptionCatégorie d'entrée : name, email ou username.
Paramètrevalue
Typestring
ObligatoireOui
Valeur par défaut—
DescriptionObligatoire. 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.
Paramètrecountry
Typestring
ObligatoireNon
Valeur par défaut—
DescriptionCode 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.
ParamètreforceToGenderize
Typeboolean
ObligatoireNon
Valeur par défautfalse
DescriptionConsulte 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.
Paramètreai_mode
Typestring
ObligatoireNon
Valeur par défautfallback
DescriptionValeurs autorisées : off, fallback, always. Avec forceToGenderize: true, omettez ce champ ou utilisez fallback.
Paramètrekey
Typestring
ObligatoireNon
Valeur par défaut—
DescriptionClé API existante pour GET. Préférez l'en-tête Authorization ; les clés absentes ou inconnues utilisent l'essai par IP.
GET utilise type, value, country, forceToGenderize et ai_mode directement dans la chaîne de requête, ainsi que key en option. Encodez les valeurs avec l'encodeur de paramètres d'URL de votre client HTTP ; par exemple, @ devient %40. Pour les booléens en GET, envoyez true ou false. Les champs inconnus et les valeurs non valides sont rejetés.
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.
Cet exemple utilise les champs de requête communs pour une recherche de nom. Modifiez type et value pour une adresse e-mail ou un nom d'utilisateur, ou définissez options.ai_mode et forceToGenderize comme indiqué ci-dessus.
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.
import jsonimport osimport sysimport urllib.errorimport urllib.requestapi_key = os.environ.get("GENDERAPI_API_KEY")if not api_key: raise RuntimeError("Set GENDERAPI_API_KEY")body = json.loads("{\"type\":\"name\",\"value\":\"Antoine\",\"country\":\"FR\"}")class NoRedirect(urllib.request.HTTPRedirectHandler): def redirect_request(self, req, fp, code, msg, headers, newurl): return Nonerequest = urllib.request.Request( "https://api.genderapi.io/api/v2/gender", method="POST", data=json.dumps(body).encode("utf-8"), headers={ "Authorization": "Bearer " + api_key, "Content-Type": "application/json", },)opener = urllib.request.build_opener(NoRedirect())try: response = opener.open(request, timeout=30)except urllib.error.HTTPError as error: response = error # Keep the Problem Details body on non-2xx responses.with response: status = response.status raw = response.read().decode("utf-8") if "json" not in response.headers.get("Content-Type", ""): raise RuntimeError(f"HTTP {status}: expected a JSON response") result = json.loads(raw)print(json.dumps(result, indent=2), file=sys.stderr if status >= 300 else sys.stdout)if not 200 <= status < 300: sys.exit(1) # Inspect code, action and billing before retrying.# For batches, inspect every item even when HTTP status is 200.
using System;using System.Net.Http;using System.Net.Http.Headers;using System.Text;using System.Text.Json;string RequiredEnv(string name) => !string.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable(name)) ? Environment.GetEnvironmentVariable(name)! : throw new InvalidOperationException($"Set {name}");var apiKey = RequiredEnv("GENDERAPI_API_KEY");using var handler = new HttpClientHandler { AllowAutoRedirect = false };using var client = new HttpClient(handler) { Timeout = TimeSpan.FromSeconds(30) };using var request = new HttpRequestMessage(HttpMethod.Post, "https://api.genderapi.io/api/v2/gender");request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);request.Content = new StringContent("{\"type\":\"name\",\"value\":\"Antoine\",\"country\":\"FR\"}", Encoding.UTF8, "application/json");using var response = await client.SendAsync(request);var raw = await response.Content.ReadAsStringAsync();if (!(response.Content.Headers.ContentType?.MediaType?.Contains("json") ?? false)) throw new InvalidOperationException($"HTTP {(int)response.StatusCode}: expected JSON");using var result = JsonDocument.Parse(raw);if (!response.IsSuccessStatusCode){ Console.Error.WriteLine(result.RootElement); // Preserve Problem Details. Environment.ExitCode = 1;}else{ Console.WriteLine(result.RootElement); // For batches, inspect every item even on HTTP 200.}