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.
Género de un nombre de usuario o apodo
| Parámetro | Tipo | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|---|
type | string | Sí | — | Categoría de entrada: name, email o username. |
value | string | Sí | — | 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 | No | — | 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 | No | false | Consulta primero el conjunto de datos y después la IA para apodos si no hay resultado. Compatible con name, email y username. |
options | object | No | — | Objeto con las opciones de IA de cada entrada. |
options.ai_mode | string | No | fallback | Valores permitidos: off, fallback, always. Con forceToGenderize: true, omite este campo o utiliza fallback. |
id | string | No | — | 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 individuales aceptan este identificador pero no lo incluyen en la respuesta. Las consultas GET no lo admiten. |
Envía type: username y el usuario o alias en value a POST https://api.genderapi.io/api/v2/gender. Activa forceToGenderize para intentar una predicción basada en el significado de un alias, como prenses, aunque no se extraiga un nombre real. GenderAPI.io V2 consulta primero el conjunto de datos. La respuesta puede contener data.gender distinto de null junto con data.name: null.
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.
Guía de errores y reintentos →cURL 7.76+ en un shell POSIX. Ejecuta en tu terminal. Documentación del entorno de ejecución
Node.js 22+; fetch integrado. Guarda como example.mjs y ejecuta node example.mjs. Documentación del entorno de ejecución
Python 3.10+; biblioteca estándar. Guarda como example.py y ejecuta python3 example.py. Documentación del entorno de ejecución
PHP 8+ con la extensión cURL. Guarda como example.php y ejecuta php example.php. Documentación del entorno de ejecución
Java 17+; cliente estándar HTTP. Guarda como GenderApiExample.java y ejecuta java GenderApiExample.java. Documentación del entorno de ejecución
Aplicación de consola .NET 8+. Úsalo como Program.cs en un proyecto de consola, luego ejecuta dotnet run. Documentación del entorno de ejecución
Go 1.22+; biblioteca estándar. Guarda como main.go y ejecuta go run main.go. Documentación del entorno de ejecución
Ejemplo de respuesta
Esta es una respuesta real capturada el 1 de octubre de 2026 con una clave de API; solo se sustituyó el saldo de la cuenta. No es una medida de precisión, y una consulta real puede devolver un resultado distinto. Las solicitudes con clave de API indican meta.access.mode: api_key y null en los campos exclusivos de la prueba; las solicitudes de prueba por IP indican ip_trial. Lee data para la predicción y meta.usage para el resultado del cobro.
{
"data": {
"input": {
"type": "username",
"value": "prenses",
"country": "TR",
"forceToGenderize": true
},
"name": "prenses",
"gender": "female",
"country": "TR",
"confidence": 0.9456521739130435,
"confidence_kind": "observed_frequency",
"sample_count": 184,
"source": "dataset",
"result_status": "identified",
"reason": null,
"country_source": "dataset",
"match": {
"name": "prenses",
"method": "normalized",
"scope": "country",
"country": "TR"
}
},
"meta": {
"request_id": "a799faa4-bc1a-4537-90b3-2c1b60205499",
"duration_ms": 15,
"access": {
"mode": "api_key",
"reason": null
},
"usage": {
"charged_credits": 1,
"remaining_credits": 49999,
"billing_status": "confirmed",
"resets_at": null,
"limit": null,
"period_seconds": null
}
}
}Campos de la respuesta de predicción
| Campo | Tipo | ¿Admite null? | Ejemplo | Descripción |
|---|---|---|---|---|
data.input | object | No | {"type":"name","value":"Javier","country":"ES"} | Tipo de entrada, valor y país. forceToGenderize se incluye cuando true. |
data.name | string | Sí | "javier" | Nombre de pila coincidente o extraído; null cuando no hay ninguno disponible. |
data.gender | string | Sí | "male" | male, female o JSON null. Esta es una predicción, no una prueba de la identidad de una persona. |
data.result_status | string | No | "identified" | identified si se devuelve un género; unknown en caso contrario. |
data.reason | string | Sí | null | null en resultados identified. Para unknown: not_found, no_name_candidate, ambiguous o insufficient_evidence. |
data.confidence | number | Sí | 0.95 | Puntuación entre 0 y 1, o null. Si gender es null, confidence también lo es. |
data.confidence_kind | string | Sí | "observed_frequency" | observed_frequency: el recuento de género dominante dividido por el recuento total en el conjunto de datos seleccionado. model_reported: una puntuación de IA, no una probabilidad calibrada. El valor es null cuando no está disponible. |
data.sample_count | integer | Sí | 1200 | Tamaño de muestra del conjunto de datos o null. La IA no inventa un recuento de muestras. |
data.source | string | No | "dataset" | dataset, ai o none. |
data.country | string | Sí | "ES" | Asociación de país del conjunto de datos o ai_association, o null. No establece nacionalidad, residencia ni etnia. |
data.country_source | string | Sí | "dataset" | Origen de la asociación de país: dataset, ai_association o null. |
data.match | object | No | {"name":"javier","method":"normalized","scope":"country","country":"ES"} | Nombre coincidente en el conjunto de datos, método (normalized, token, substring o model_inference), ámbito (country o global) y país de la coincidencia. La información no disponible se representa con null. |
Acceso, facturación y metadatos de la solicitud
| Campo | Tipo | ¿Admite null? | Ejemplo | Descripción |
|---|---|---|---|---|
meta.request_id | string | No | "550e8400-e29b-41d4-a716-446655440000" | Identificador único de este intento HTTP; también se envía en X-Request-ID. |
meta.duration_ms | integer | No | 42 | Tiempo de procesamiento de la solicitud en milisegundos. |
meta.access.mode | string | No | "api_key" | api_key, ip_trial o unauthenticated. Comprueba api_key para cualquier integración de cuenta, gratuita o de pago. |
meta.access.reason | string | Sí | null | Motivo del acceso de prueba: api_key_missing, api_key_invalid o api_key_not_found; null en otros casos. |
meta.usage.charged_credits | integer | Sí | 1 | Créditos netos cobrados. Cero antes del cobro o tras un reembolso completo confirmado; null si el cobro no está confirmado. |
meta.usage.remaining_credits | integer | Sí | 99 | Saldo al finalizar la operación. Puede ser negativo; null si no está disponible o el cobro no está confirmado. |
meta.usage.billing_status | string | No | "confirmed" | not_charged, confirmed o unconfirmed. Compruébelo antes de reintentar una predicción fallida. |
meta.usage.resets_at | string | Sí | "2026-09-27T12:00:00.000Z" | Reinicio de la prueba por IP en UTC (ISO 8601); null para cuentas con clave API o si se desconoce. |
meta.usage.limit | integer | Sí | 10 | Créditos de la prueba por IP; null para cuentas con clave API. |
meta.usage.period_seconds | integer | Sí | 86400 | Duración de la prueba por IP en segundos; null para cuentas con clave API. |
Leer una predicción de apodo
Este ejemplo utiliza forceToGenderize: true. Si el conjunto de datos identifica un género, el costo es 1 crédito. De lo contrario, la IA interpreta el alias y una solicitud completa cuesta 2 créditos en total, incluso si el género sigue siendo desconocido. Omite ai_mode o configúrelo en fallback. El uso de off o always junto con forceToGenderize devuelve HTTP 422.
En modo apodo, se permite una predicción de género con name: null. Significa que no se extrajo ningún nombre real, no que el análisis haya fallado. Si IA devuelve un género, se devuelven sample_count: null y confidence_kind: model_reported. La puntuación no es una probabilidad calibrada y no verifica la identidad personal.
Sin forceToGenderize, una consulta individual por usuario utiliza fallback estándar por 1 crédito en total, pero requiere un nombre real utilizable. Envía options.ai_mode: off para consultar solo el conjunto de datos.