Envía type y value a GenderAPI.io V2. Compara los parámetros de GET con el JSON de POST, incluidos country, los modos de IA y forceToGenderize.
Parámetros JSON de POST
Parámetro
Tipo
Obligatorio
Valor predeterminado
Descripción
Parámetrotype
Tipostring
ObligatorioSí
Valor predeterminado—
DescripciónCategoría de entrada: name, email o username.
Parámetrovalue
Tipostring
ObligatorioSí
Valor predeterminado—
DescripciónRequerido. 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.
Parámetrocountry
Tipostring
ObligatorioNo
Valor predeterminado—
DescripciónCó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.
ParámetroforceToGenderize
Tipoboolean
ObligatorioNo
Valor predeterminadofalse
DescripciónConsulta primero el conjunto de datos y después la IA para apodos si no hay resultado. Compatible con name, email y username.
Parámetrooptions
Tipoobject
ObligatorioNo
Valor predeterminado—
DescripciónObjeto con las opciones de IA de cada entrada.
Parámetrooptions.ai_mode
Tipostring
ObligatorioNo
Valor predeterminadofallback
DescripciónValores permitidos: off, fallback, always. Con forceToGenderize: true, omite este campo o utiliza fallback.
Parámetroid
Tipostring
ObligatorioNo
Valor predeterminado—
DescripciónIdentificador 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 individuales aceptan este identificador pero no lo incluyen en la respuesta. Las consultas GET no lo admiten.
Un guion (—) indica que no hay valor predeterminado. Omite las entradas opcionales que no utiliza; no envíes null. Los ejemplos de respuesta son ilustrativos, no valores predeterminados. Admitir null significa aceptar JSON null; la ausencia de un campo se explica por separado.
Los campos opcionales deben omitirse cuando no se utilicen; no envíes 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.
Parámetros de consulta GET
Parámetro
Tipo
Obligatorio
Valor predeterminado
Descripción
Parámetrotype
Tipostring
ObligatorioNo
Valor predeterminadoname
DescripciónCategoría de entrada: name, email o username.
Parámetrovalue
Tipostring
ObligatorioSí
Valor predeterminado—
DescripciónRequerido. 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.
Parámetrocountry
Tipostring
ObligatorioNo
Valor predeterminado—
DescripciónCó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.
ParámetroforceToGenderize
Tipoboolean
ObligatorioNo
Valor predeterminadofalse
DescripciónConsulta primero el conjunto de datos y después la IA para apodos si no hay resultado. Compatible con name, email y username.
Parámetroai_mode
Tipostring
ObligatorioNo
Valor predeterminadofallback
DescripciónValores permitidos: off, fallback, always. Con forceToGenderize: true, omite este campo o utiliza fallback.
Parámetrokey
Tipostring
ObligatorioNo
Valor predeterminado—
DescripciónClave API existente para GET. Utiliza preferentemente la cabecera Authorization; las claves ausentes o desconocidas usan la prueba por IP.
GET utiliza type, value, country, forceToGenderize y ai_mode directamente en la cadena de consulta, además de key opcional. Codifica valores con el codificador de parámetros URL de tu cliente HTTP; por ejemplo @ se convierte en %40. Para valores booleanos GET, envía true o false. Se rechazan los campos desconocidos y los valores no válidos.
Antes de enviar la solicitud
Envía las consultas de GenderAPI.io V2 a POST https://api.genderapi.io/api/v2/gender con type y value en el cuerpo JSON. Utiliza tu clave actual en Authorization: Bearer YOUR_API_KEY y Content-Type: application/json. Lee el resultado en data y la información de acceso y cobro en meta. Cada solicitud se procesa de forma independiente.
Elige tu idioma en el ejemplo de código. Configura 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. Cambia type y value por un correo electrónico o nombre de usuario, o configura options.ai_mode y forceToGenderize como se describe anteriormente.
Elige un lenguaje de programación.Configura tu clave API, luego ejecuta el ejemplo en tu servidor.
Cada solicitud de predicción es una nueva operación facturable, incluidos los reintentos. Estos ejemplos no se reintentan automáticamente. Comprueba el estado de facturación antes de enviar otra solicitud.
Antes de ejecutar: acceso y manejo de errores
Ejecuta estos ejemplos en tu servidor. Configura GENDERAPI_API_KEY en el entorno de proceso con tu clave API existente. Confirma 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. Comprueba 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\":\"Javier\",\"country\":\"ES\"}")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\":\"Javier\",\"country\":\"ES\"}", 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.}