DOCUMENTACIÓN API V2

GenderAPI.io V2: errores, límites y reintentos

Gestiona Problem Details, los límites de solicitudes y los cobros inciertos de GenderAPI.io V2. Comprueba cada error antes de repetir una solicitud que se cobra de forma independiente.

Errores y códigos de estado HTTP

Los errores de la aplicación usan application/problem+json (RFC 9457). Gestiona los errores mediante code y action, cuyos valores son estables, y no mediante el texto de detail. En los errores de validación, errors incluye ubicaciones JSON Pointer de los campos afectados. Facilita request_id al contactar con soporte. Los fallos de conexión o proxy pueden devolver otro contenido; compruebe Content-Type antes de interpretarlo como JSON.

El siguiente ejemplo sintético 422 muestra una sintaxis de correo electrónico no válida antes de la facturación. El catálogo público de errores enumera todos los códigos, estados, explicaciones y acciones sugeridas.

Estado HTTPSignificado típicoSiguiente paso
400 / 413 / 415JSON con formato incorrecto, cuerpo de gran tamaño o tipo de medio no compatible.Corrige la solicitud.
401 / 403Acceso rechazado, restricción de cuenta o créditos insuficientes.Consulta code y corrige el acceso, añade créditos o espera a que se renueve la prueba, según corresponda.
422Entrada no válida u opciones incompatibles.Corrige los campos identificados en errors.
404 / 405Ruta desconocida o método HTTP no compatible.Comprueba la ruta del endpoint y la cabecera de respuesta Allow.
429Límite de frecuencia o de solicitudes simultáneas.Espera el tiempo indicado en Retry-After antes de enviar otra solicitud.
500Fallo inesperado del servidor.Contacta a soporte con request_id; comprueba la facturación antes de volver a intentarlo.
502 / 503 / 504Fallo de proveedor, dependencia, facturación o tiempo de espera.Revisa code, action y billing_status antes de volver a intentarlo.
Respuesta JSON ilustrativa
{
  "type": "urn:genderapi:problem:validation_error",
  "title": "validation error",
  "status": 422,
  "detail": "A valid email address is required.",
  "instance": "urn:uuid:11111111-1111-4111-8111-111111111111",
  "code": "validation_error",
  "request_id": "11111111-1111-4111-8111-111111111111",
  "documentation": "https://api.genderapi.io/api/v2/errors",
  "action": "correct_request",
  "errors": [
    {
      "pointer": "/value",
      "message": "Invalid email address."
    }
  ],
  "meta": {
    "request_id": "11111111-1111-4111-8111-111111111111",
    "duration_ms": 12,
    "access": {
      "mode": "ip_trial",
      "reason": "api_key_missing"
    },
    "usage": {
      "charged_credits": 0,
      "remaining_credits": null,
      "billing_status": "not_charged",
      "resets_at": "2026-09-26T12:00:00.000Z",
      "limit": 10,
      "period_seconds": 86400
    }
  }
}

Campos de la respuesta de error

CampoTipo¿Admite null?EjemploDescripción
typestringNo"urn:genderapi:problem:validation_error"URI que identifica el tipo de problema.
titlestringNo"validation error"Título breve del error, legible para personas.
statusintegerNo422Código de estado HTTP.
detailstringNo"The request does not match the schema."Explicación de este fallo concreto.
instancestringNo"urn:uuid:550e8400-e29b-41d4-a716-446655440000"Identificador de la solicitud fallida.
codestringNo"validation_error"Código de error estable, legible por software.
request_idstringNo"550e8400-e29b-41d4-a716-446655440000"Identificador único de este intento HTTP; también se envía en X-Request-ID.
documentationstringNo"https://api.genderapi.io/api/v2/errors"Enlace al catálogo de errores, si se incluye.
actionstringNo"correct_request"Acción de recuperación sugerida, cuando está definida en el catálogo de errores.
errorsarray<object>No[{"pointer":"/value","message":"must NOT have fewer than 1 characters"}]Problemas de validación, si existen. Cada elemento contiene pointer y message.
errors[].pointerstringNo"/value"JSON Pointer que identifica la entrada no válida.
errors[].messagestringNo"must NOT have fewer than 1 characters"Explicación del problema de validación.

Acceso, facturación y metadatos de la solicitud

CampoTipo¿Admite null?EjemploDescripción
meta.request_idstringNo"550e8400-e29b-41d4-a716-446655440000"Identificador único de este intento HTTP; también se envía en X-Request-ID.
meta.duration_msintegerNo42Tiempo de procesamiento de la solicitud en milisegundos.
meta.access.modestringNo"api_key"api_key, ip_trial o unauthenticated. Comprueba api_key para cualquier integración de cuenta, gratuita o de pago.
meta.access.reasonstringSínullMotivo del acceso de prueba: api_key_missing, api_key_invalid o api_key_not_found; null en otros casos.
meta.usage.charged_creditsintegerSí1Créditos netos cobrados. Cero antes del cobro o tras un reembolso completo confirmado; null si el cobro no está confirmado.
meta.usage.remaining_creditsintegerSí99Saldo al finalizar la operación. Puede ser negativo; null si no está disponible o el cobro no está confirmado.
meta.usage.billing_statusstringNo"confirmed"not_charged, confirmed o unconfirmed. Compruébelo antes de reintentar una predicción fallida.
meta.usage.resets_atstringSí"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.limitintegerSí10Créditos de la prueba por IP; null para cuentas con clave API.
meta.usage.period_secondsintegerSí86400Duración de la prueba por IP en segundos; null para cuentas con clave API.

Reintentos y facturación

Cada solicitud de predicción es una nueva operación, incluida una solicitud idéntica enviada nuevamente. Se aplican reglas de crédito normales a cada solicitud. No existe protección contra solicitudes duplicadas, así que evite los reintentos automáticos después de una pérdida de conexión o de un resultado desconocido.

Ante HTTP 429, espera el tiempo indicado en Retry-After. Si falla una predicción, revisa primero code, action y meta.usage.billing_status. Ante billing_reconciliation_required o un cobro unconfirmed, contacta con soporte e incluye request_id antes de repetir la solicitud.

Un lote parcialmente exitoso puede devolver HTTP 200. Comprueba cada elemento y vuelva a enviar solo los elementos fallidos después de confirmar la facturación; Los elementos exitosos se facturarán nuevamente si se vuelven a enviar.

X-Request-ID y meta.request_id identifican el intento actual de HTTP. Lee /usage para conocer el saldo actual. HEAD no inicia una predicción facturable. Las predicciones y las respuestas de la cuenta no se pueden almacenar en caché.

Los clientes deben tolerar campos de respuesta aditivos y preservar los valores null cuando la información no está disponible.

Límites de solicitudes

Gestiona HTTP 429 y Retry-After en lugar de asumir que las solicitudes siempre se aceptarán en estos límites máximos. La capacidad de servicio es compartida. Los valores mostrados son los valores predeterminados del servicio actual. Las respuestas de límite de velocidad incluyen X-RateLimit-Limit, X-RateLimit-Remaining y X-RateLimit-Reset (segundos Unix). Retry-After es un retraso en segundos. Estos encabezados describen los límites de solicitud, no los créditos restantes. Incluso la lectura gratuita de /usage cuenta para los límites de velocidad.

LímiteValor
Cuerpo de solicitud JSON64 KiB máximo
Valor de predicción1–254 caracteres
Lote50 elementos con una clave API; 10 con la prueba IP
Frecuencia por cuenta120 solicitudes por minuto
Frecuencia por IP600 solicitudes por minuto
Operaciones simultáneas2 por cuenta; 16 en todo el servicio