Nombres de lotes, correos electrónicos y nombres de usuario
POST /gender/batch acepta una matriz items que contiene entre 1 y 50 entradas con acceso de clave API, o como máximo 10 entradas con la IP de prueba. Envíe nombres, direcciones de correo electrónico, nombres de usuario o una combinación de los tres. Cada entrada tiene campos country, forceToGenderize y options separados. Los ID son opcionales pero deben ser únicos dentro del lote.
Los resultados siguen el orden de entrada. Cada resultado contiene index, charged_credits y exactamente uno de data o error. Si proporcionó un id, también se devuelve. Una respuesta HTTP 200 puede contener errores para entradas individuales, así que verifique cada resultado. meta.summary incluye total, succeeded, identified, unknown y failed. Una predicción completa sin un género conocido todavía cuenta como exitosa y cuesta créditos.
Si la validación o la planificación de la solicitud falla, se rechaza todo el lote antes de deducir los créditos. Si todas las entradas fallan durante la ejecución, la API devuelve una respuesta de problema que no es 2xx con una matriz data y el alias heredado results. Las entradas fallidas cuestan cero créditos después de un reembolso confirmado. Si la facturación no está confirmada, no asuma que el costo informado para cada entrada es definitivo.
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.
Para las respuestas JSON HTTP 4xx y 5xx, los ejemplos conservan el cuerpo del error y salen con un estado distinto de cero. Verifique code, action y meta.usage.billing_status antes de volver a intentarlo. Para una respuesta por lotes HTTP 200, inspeccione también data o error en cada resultado.
Guía de errores y reintentos →cURL 7.76+ en un shell POSIX. Ejecuta en tu terminal. Documentación en tiempo de ejecución
Node.js 22+; búsqueda incorporada. Guarde como example.mjs y ejecute node example.mjs. Documentación en tiempo de ejecución
Python 3.10+; biblioteca estándar. Guarde como example.py y ejecute python3 example.py. Documentación en tiempo de ejecución
PHP 8+ con la extensión cURL. Guarde como example.php y ejecute php example.php. Documentación en tiempo de ejecución
Java 17+; cliente estándar HTTP. Guarde como GenderApiExample.java y ejecute java GenderApiExample.java. Documentación en tiempo de ejecución
Aplicación de consola .NET 8+. Úselo como Program.cs en un proyecto de consola, luego ejecute dotnet run. Documentación en tiempo de ejecución
Go 1.22+; biblioteca estándar. Guarde como main.go y ejecute go run main.go. Documentación en tiempo de ejecución
Leer una respuesta por lotes
Este ejemplo sintético independiente contiene una coincidencia de conjunto de datos, un resultado desconocido y una falla del proveedor. Ilustra una respuesta HTTP 200 de éxito parcial, no el resultado esperado de la solicitud por lotes anterior. Los dos elementos exitosos cuestan 1 crédito cada uno; el elemento fallido tiene un cargo cero confirmado.
{
"data": [
{
"index": 0,
"id": "known",
"charged_credits": 1,
"data": {
"input": {
"type": "name",
"value": "Onur",
"country": "TR"
},
"name": "onur",
"gender": "male",
"country": "TR",
"confidence": 0.9,
"confidence_kind": "observed_frequency",
"sample_count": 100,
"source": "dataset",
"result_status": "identified",
"reason": null,
"country_source": "dataset",
"match": {
"name": "onur",
"method": "normalized",
"scope": "country",
"country": "TR"
}
}
},
{
"index": 1,
"id": "missing",
"charged_credits": 1,
"data": {
"input": {
"type": "name",
"value": "zzzxxyy",
"country": null
},
"name": null,
"gender": null,
"country": null,
"confidence": null,
"confidence_kind": null,
"sample_count": null,
"source": "none",
"result_status": "unknown",
"reason": "not_found",
"country_source": null,
"match": {
"name": null,
"method": null,
"scope": null,
"country": null
}
}
},
{
"index": 2,
"id": "failed",
"charged_credits": 0,
"error": {
"type": "urn:genderapi:problem:ai_upstream_error",
"title": "ai upstream error",
"status": 502,
"detail": "The AI provider could not complete the request.",
"instance": "urn:uuid:11111111-1111-4111-8111-111111111111",
"code": "ai_upstream_error",
"request_id": "11111111-1111-4111-8111-111111111111",
"documentation": "https://api.genderapi.io/api/v2/errors",
"action": "inspect_billing_before_retry"
}
}
],
"meta": {
"request_id": "11111111-1111-4111-8111-111111111111",
"duration_ms": 12,
"access": {
"mode": "ip_trial",
"reason": "api_key_missing"
},
"usage": {
"charged_credits": 2,
"remaining_credits": 6,
"billing_status": "confirmed",
"resets_at": "2026-09-26T12:00:00.000Z",
"limit": 10,
"period_seconds": 86400
},
"summary": {
"total": 3,
"succeeded": 2,
"identified": 1,
"unknown": 1,
"failed": 1
}
}
}Planificar créditos y reintentos por lotes
Autentíquese con su clave Bearer API existente y envíe Content-Type: application/json. Cada lote enviado es una nueva operación. Si vuelve a intentar un error parcial, envíe solo los elementos fallidos después de verificar la facturación; reenviar elementos exitosos les cobra nuevamente.
De forma predeterminada, las entradas por lotes utilizan off y cuestan 1 crédito por predicción completa. Seleccionar fallback también cuesta 1 crédito en total, incluida la IA. Seleccionar always cuesta 2 créditos. Con forceToGenderize, un género encontrado en el conjunto de datos cuesta 1 crédito; Usar IA cuesta 2 créditos en total. Las predicciones completadas con un género desconocido también cuestan créditos. Un saldo inicial de 1 crédito es suficiente para comenzar un lote. La deducción final podrá dejar el saldo negativo.