Referencia de los campos type, value, country, forceToGenderize y ai_mode de GenderAPI V2, con las diferencias entre consultas GET y cuerpos JSON de POST.
Parámetros de predicción únicos
Los campos opcionales deben omitirse cuando no se utilicen; no envíe null ni cadenas vacías en lugar de country o options. Los booleanos JSON deben ser true o false, no cadenas. Se admite texto UTF-8; No es necesario transliterar los nombres a ASCII.
GET utiliza type, value, country, forceToGenderize y ai_mode directamente en la cadena de consulta, además de key opcional. Codifique valores con el codificador de parámetros URL de su cliente HTTP; por ejemplo @ se convierte en %40. Para valores booleanos GET, envíe true o false. Se rechazan los campos desconocidos y los valores no válidos.
Campo JSON
Tipo
Regla
type
string
Requerido para POST: name, email o username. GET tiene como valor predeterminado name.
value
string
Requerido. 1–254 caracteres; no en blanco, sin caracteres de control. Los valores de correo electrónico deben tener una sintaxis de correo electrónico válida.
country
string
Código ISO 3166-1 alpha-2 en mayúsculas opcional, por ejemplo TR o US. La búsqueda específica de un país puede recurrir al conjunto de datos global.
forceToGenderize
boolean
Opcional; el valor predeterminado es false. Primero, busque el conjunto de datos. Si no se puede determinar el género, utilice IA para interpretar el apodo. Compatible con los tres tipos de entrada.
options.ai_mode
string
off, fallback o always. El valor predeterminado es fallback para solicitudes individuales y off para elementos por lotes.
id
string
Identificador opcional con entre 1 y 64 caracteres en el cuerpo POST JSON. Debe ser único dentro de un lote y se devuelve con el resultado del lote. Las solicitudes únicas aceptan este identificador pero no lo incluyen en la respuesta. Las consultas GET no lo admiten.
Antes de enviar la solicitud
Enviar JSON a POST https://api.genderapi.io/api/v2/gender. Utilice su clave API existente en Authorization: Bearer YOUR_API_KEY y Content-Type: application/json. Cada solicitud se procesa de forma independiente.
Elija su idioma en el ejemplo de código. Configure GENDERAPI_API_KEY en el entorno del proceso antes de ejecutarlo. Las claves faltantes o no reconocidas pueden usar la versión de prueba compartida de IP, así que confirme que meta.access.mode es api_key al integrar una cuenta.
Este ejemplo utiliza los campos de solicitud compartidos para una búsqueda de nombres. Cambie type y value por un correo electrónico o nombre de usuario, o configure options.ai_mode y forceToGenderize como se describe anteriormente.
Elija un lenguaje de programación.Configura tu clave API, luego ejecute el ejemplo en su servidor.
Cada solicitud de predicción es una nueva operación facturable, incluidos los reintentos. Estos ejemplos no se reintentan automáticamente. Verifique el estado de facturación antes de enviar otra solicitud.
Antes de ejecutar: acceso y manejo de errores
Ejecute estos ejemplos en su servidor. Configure GENDERAPI_API_KEY en el entorno de proceso con su clave API existente. Confirme que meta.access.mode es api_key: una clave no reconocida puede recurrir a la prueba IP.
Las respuestas HTTP 4xx y 5xx JSON conservan el cuerpo del error y devuelven un estado de salida distinto de cero. Verifique code, action y meta.usage.billing_status antes de volver a intentarlo.
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\":\"Onur\",\"country\":\"TR\"}")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\":\"Onur\",\"country\":\"TR\"}", 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.}