Validar y formatear números telefónicos nacionales o internacionales con GenderAPI v2. Consulte el contexto obligatorio del país, los campos JSON y el cargo de un crédito.
Validar y formatear un número de teléfono
POST /phone/validate acepta number y el campo opcional country. Utilice un número de teléfono internacional que comience con +. Para un número de teléfono nacional, proporcione un código de país ISO en mayúsculas. La respuesta tiene valid, possible, e164, country y country_calling_code dentro de data, además del objeto compartido meta. Esto verifica la estructura del número de teléfono, no si el suscriptor existe. Cada validación completa cuesta 1 crédito, incluidos los resultados no válidos. La respuesta ilustrativa a continuación muestra un número no válido y es independiente del ejemplo de solicitud.
Campo JSON
Tipo
Regla
number
string
Obligatorio, entre 3 y 32 caracteres. ASCII dígitos, espacios, paréntesis y guiones, con un + inicial opcional. No se aceptan extensiones ni caracteres alfabéticos.
country
string
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 +. Omita este campo cuando no sea necesario.
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("{\"number\":\"+905321234567\"}")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/phone/validate", 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/phone/validate");request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);request.Content = new StringContent("{\"number\":\"+905321234567\"}", 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.}
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. Verifique valid; un número formateado por sí solo no es prueba de validez.
Campo dentro de data
Significado
valid
Si el número coincide con las reglas de validación del plan de numeración.
possible
Si el número tiene una longitud plausible para su plan de numeración; más débil que válido.
e164
Número internacional formateado cuando el análisis se realiza correctamente; de lo contrario, null.
country
Región derivada del número, o null cuando no esté disponible; no localiza al suscriptor.
country_calling_code
Código numérico de llamada internacional, o null cuando no esté disponible.
Autenticación y reintentos
Envíe su clave API existente usando autenticación de portador y tipo de contenido: aplicación/json. Los ejemplos leen GENDERAPI_API_KEY del entorno. El campo country es obligatorio para números de teléfono nacionales y opcional cuando el valor number comienza con +.