Predice el género a partir de un nombre o nombre completo con GenderAPI v2. Vea ejemplos en siete idiomas, respuestas JSON, contexto del país, respaldo de IA y costos de crédito.
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.
Utilice type: name para enviar un nombre o un nombre completo. Una respuesta exitosa puede contener gender: null. Las solicitudes únicas primero buscan en el conjunto de datos. Si no se puede determinar el género, utilizan IA de forma predeterminada.
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.}
Esta respuesta sintética ilustra la forma del JSON, sin precisión medida ni resultado en vivo garantizado. Muestra el acceso de prueba IP; una operación autenticada informa los campos de cuota de solo prueba meta.access.mode: api_key y null. Lea los datos para la inferencia y meta.usage para el resultado de facturación de la operación.
Proporcione el país solo cuando tenga un contexto relevante. La API puede seleccionar una fila del conjunto de datos específica de un país o recurrir a una fila global. data.match.scope muestra cuál fue seleccionado; el país devuelto no establece dónde vive la persona.
De forma predeterminada, una sola solicitud utiliza IA cuando el conjunto de datos no puede determinar un género, para un total de 1 crédito. Para utilizar solo el conjunto de datos, envíe options: {"ai_mode": "off"}. Una solicitud completa todavía cuesta créditos si devuelve gender: null. Una búsqueda de nombre completo puede coincidir con una parte del nombre. data.match registra el candidato elegido y el método de coincidencia.
Para un apodo proporcionado como nombre, forceToGenderize: true permite la inferencia de IA sin un nombre real. Un género identificado en el conjunto de datos cuesta 1 crédito. Si se necesita IA, el coste total es de 2 créditos. Cualquier saldo inicial positivo es suficiente; el saldo final puede ser negativo.