Validar y formatear un número de teléfono
| Parámetro | Tipo | Obligatorio | Valor predeterminado | Descripción |
|---|---|---|---|---|
number | string | Sí | — | Obligatorio, entre 3 y 32 caracteres. Admite dígitos ASCII, espacios, paréntesis y guiones, con + inicial opcional. No acepta extensiones ni letras. |
country | string | Condicional | — | Código ISO 3166-1 alfa-2 en mayúsculas. Requerido para un número de teléfono nacional. Opcional cuando el valor number comienza con +. Omite este campo cuando no sea necesario. |
Envía number y country opcional a POST https://api.genderapi.io/api/v2/phone/validate. Utiliza un número internacional que empiece por + o proporciona un código ISO de país en mayúsculas para números nacionales. GenderAPI.io V2 devuelve data.valid, data.possible, data.e164, data.country y data.country_calling_code, además de meta para acceso y cobro. Esto valida la estructura del número, no la existencia del abonado. Cada validación completada cuesta 1 crédito, incluso si el resultado no es válido. La respuesta sintética siguiente ilustra un número no válido y es independiente del ejemplo de solicitud.
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
{
"data": {
"valid": false,
"possible": false,
"e164": null,
"country": null,
"country_calling_code": null
},
"meta": {
"request_id": "11111111-1111-4111-8111-111111111111",
"duration_ms": 12,
"access": {
"mode": "ip_trial",
"reason": "api_key_missing"
},
"usage": {
"charged_credits": 1,
"remaining_credits": 7,
"billing_status": "confirmed",
"resets_at": "2026-09-26T12:00:00.000Z",
"limit": 10,
"period_seconds": 86400
}
}
}Leer campos de validación del teléfono
La entrada con formato incorrecto se rechaza con HTTP 422 antes de la facturación. Si el formato de la solicitud es correcto pero el número de teléfono no se puede analizar, la operación puede devolver HTTP 200 con los campos de formato valid: false y null. Esta validación completa cuesta 1 crédito. Un número que se puede analizar pero que no es válido aún puede tener un valor e164. Comprueba valid; un número formateado por sí solo no es prueba de validez.
| Campo | Tipo | ¿Admite null? | Ejemplo | Descripción |
|---|---|---|---|---|
data.valid | boolean | No | false | Si el número coincide con las reglas de validación del plan de numeración. |
data.possible | boolean | No | false | Indica si la longitud es compatible con el plan de numeración; no equivale a valid: true. |
data.e164 | string | Sí | null | Número internacional formateado cuando el análisis se realiza correctamente; de lo contrario, null. |
data.country | string | Sí | null | Región derivada del número, o null cuando no esté disponible; no localiza al suscriptor. |
data.country_calling_code | integer | Sí | null | Código numérico de llamada internacional, o null cuando no esté disponible. |
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. |
Autenticación y reintentos
Envía tu clave actual mediante Authorization: Bearer YOUR_API_KEY y Content-Type: application/json. Los ejemplos leen GENDERAPI_API_KEY del entorno. country es obligatorio para números nacionales y opcional si number empieza por +.