openapi: 3.0.0 info: title: API para verificar números de teléfono description: "# API para verificar y validar números de teléfono en tiempo real\n\nAPI para verificar números de teléfono que también permite validar números móviles, comprobar si un número está activo y consultar información telefónica en tiempo real mediante HLR, MNP y validación sintáctica. Está orientada a quienes buscan una API para validar números de teléfono o una API para verificar números de teléfono con cobertura técnica y operativa completa.\n\nEsta documentación está pensada para desarrolladores y empresas que buscan una **API para verificar números de teléfono** o una **API para validar números de teléfono** antes de enviar SMS, realizar llamadas, registrar usuarios, depurar bases de datos o automatizar validaciones en formularios. También cubre búsquedas habituales como **comprobar número de teléfono móvil**, **cómo saber si un número está activo** o **consultar número de celular**.\n\n## ¿Qué puedes hacer con esta API?\n\n- Verificar números de teléfono en tiempo real\n\ - Validar números móviles automáticamente\n- Comprobar si un número de teléfono móvil está activo\n- Consultar información de un número de celular\n- Detectar operador y portabilidad\n- Validar el formato de números telefónicos\n\n## Intenciones de búsqueda que cubre esta documentación\n\nEsta API está optimizada para responder a búsquedas relacionadas con:\n- API para validar números de teléfono\n- API para verificar números de teléfono\n- comprobar número de teléfono móvil\n- cómo saber si un número está activo\n- consultar número de celular\n- verificación de números telefónicos\n- validación de números telefónicos\n- API HLR lookup / consulta HLR\n- validar número de celular\n- verificar número de teléfono\n\n## Casos de uso frecuentes\n\n- Verificar números antes de enviar SMS OTP\n- Validar teléfonos en formularios y procesos de registro\n- Comprobar si un número móvil está activo antes de contactar\n- Limpiar bases de datos de clientes\n- Reducir costes en campañas de marketing\ \ y atención al cliente\n- Enriquecer registros con información del operador y de la portabilidad\n\n## Preguntas frecuentes sobre validación y verificación de teléfonos\n\n### ¿Cómo saber si un número de teléfono está activo?\nPuedes usar esta API para verificar números de teléfono y comprobar su estado en tiempo real mediante consultas HLR y validaciones especializadas.\n\n### ¿Cómo validar un número de teléfono móvil?\nLa API permite validar números móviles automáticamente, comprobar si tienen un formato correcto y verificar si el número está activo cuando se usa HLR o MNP.\n\n### ¿Cómo comprobar un número de teléfono móvil?\nPuedes enviar el número en formato internacional y la API devolverá información sobre su validez, estado, tipo de línea y operador cuando el método lo permita.\n\n### ¿Qué diferencia hay entre validar y verificar un número?\nValidar un número implica comprobar su formato o consistencia. Verificar un número permite además consultar su estado y confirmar si está\ \ activo o si pertenece a un operador concreto.\n\n### ¿Se puede automatizar la validación de números de teléfono?\nSí. Puedes integrar la API en formularios, CRM, procesos de registro, herramientas internas o flujos automáticos para validar y verificar teléfonos en tiempo real.\n\nA continuación se mantiene la documentación original completa de la API, con los métodos HLR, MNP y validación sintáctica.\n\n---\n\n# Verificar Teléfonos ®\n\n La API de Verificar teléfonos permite validar en tiempo real la veracidad de un número de teléfono. \n Disponemos de 3 métodos para verificar los números de teléfono:\n - Verificación HLR\n - Verificación MNP\n - Verificación sintáctica\n \n Para las validaciones de teléfonos móviles (HLR, MNP) utilizamos un método que consulta las redes móviles para determinar el operador y ver si el número está activo. Ofrecemos información sobre la portabilidad (red actual y red emisora). \n \n Con nuestro servicio de verificación podrás mantener tu base\ \ de datos limpia eliminando todos los números inactivos, falsos y comunicarse con tus clientes de forma fiable. Todas estas verificaciones se realizan sin que el usuario reciba una llamada o SMS.\n \n El API es capaz de identificar el tipo de número diferenciando entre móvil y fijo. Mostrando el resultado para cada una de las verificaciones.\n \n Puedes verificar los números de teléfono en tu Web o aplicación con nuestra API, a través de nuestra aplicación Web, con las integraciones de Zapier o nuestro Widget. Todo en tiempo real.\n\n\n\n## Verificaciones Masivas\nPara verificar un volumen elevado de teléfonos, debemos agrupar los números en un fichero CSV, TXY o Excel. Cada fila debe contener un teléfono con el prefijo internacional.\n\n\n## Fácil Integración\nHablamos tu lenguaje de programación. Las llamadas a nuestra API están disponibles para PHP, Python,\nNode.js, y .net. Puedes utilizar **la integración con Zapier** para automatizar las validaciones de números de teléfono sin necesidad de programar. \n\nSi lo prefieres puedes utilizar **Postman con ejemplos de código** para la mayoría de los lenguajes de programación.\n\n# Empezar\nEn los siguientes puntos descubre como utilizar Validaremails para verificar de forma\nsencilla, económica y eficaz tus números de teléfono y obtener informes detallados de\ntus contactos.\n\n## Crear una cuenta en Verificaremails ®\nPara utilizar el servicio deberás **crear una cuenta gratuita en Verificaremails**.\n\n![Sign Up Page](static/images/signup.png)\n\n## Verificar Números de Teléfono\nUna vez hayas creado tu cuenta gratuita, debes iniciar sesión para empezar a utilizarla\nel servicio de *Verificaremails\ \ ®*. \n\nSi deseas verificar teléfonos de forma individual, solo debes introducir el número de teléfono en el campo **Petición Rápida**. \n\n ![Bulk Email Verification](static/images/telefonos_peticion_rapida.png)\n\nSi lo que deseas es verificar un listado de números de teléfono, lo más rápido es que utilices la verificación de ficheros. Solo tienes que arrastrar el fichero a la caja naranja que encontrarás en la pantalla principal y seleccionar en que columna se encuentran los mails. La primera columna es la 1 y así sucesivamente. \n\nPuedes subir ficheros en formato Excel, TXT y CSV. Lo importante es que la información este organizada en columnas. Antes de verificar un fichero asegúrate que la información esté organizada en columnas ya que por cada registro te descontaremos un crédito de tu cuenta independientemente del valor que verifiquemos.\nComo mecanismo de seguridad, si no hay más de un 50% de números de teléfono en la columna. **No lanzaremos la verificación**. \n\nSi durante\ \ la subida del fichero se muestra un error, en la mayoría de las ocasiones se debe a un error en el formato de los datos. Asegúrate que la información está bien tabulada. Si aun necesitas ayuda, puedes contactarnos por el chat que encontrarás en la parte inferior derecha.\n\n![Bulk Email Verification](static/images/bulk-email-verification.png)\n\n## Verificar Números de Teléfono utilizando el API para Validar Teléfono ®\nPuedes utilizar nuestra API para validar los números de teléfono de tus aplicaciones en tiempo real.\nUtilizar nuestra API solo requiere unas pocas líneas de código. Para más detalles\nvisita la sección [**API Desarrolladores**](#section/Empezar/API-Desarrolladores).\nAntes de poder utilizar el API debes crear una ;-) \n\nDirrigete a la sección **APIs** y selecciona **+Crear nueva API**. Asegúrate que estás en la sección del servicio que deseas utilizar.\nSeleccionando el icono del \"ojo\" verás los últimos registros validados. Seleccionando el icono de la \"rueda\"\ \ puedes cambiar la clave del API y limitar las peticiones totales, peticiones por minuto que puede recibir el API o el estado de la misma.\n\nRecuerda que puedes utilizar el API en tus desarrollos, en las integraciones con Zapier, nuestro Widget o la verificación con terceras aplicaciones como Excel o Google Sheets.\n\n\n\nNuestra API permite validar de forma individual direcciones de teléfonos o validar\nlistas de números subiendo ficheros a nuestra plataforma.\n\n# Como funciona Verificar Emails ®\nDisponemos de 3 mecanismos para verificar los números de teléfono. La verificación más precisa es la Verificación de números HLR, la que proporciona un grado intermedio de precisión es la verificación de números MNP. La verificación más simple es la que solo verifica de forma sintáctica el número de teléfono.\n\nLos 3 mecanismos, utilizan los mismos campos, la principal\ \ diferencia es en el número de campos devueltos y la precisión de la formación.\n\n**Verificación teléfonos HLR**\n\nEs el método de verificación de números de teléfono más preciso. Permite saber si un número está actualmente conectado a la red móvil. Validar el estado y los detalles de los números de móvil en tiempo real. El término «HLR» significa Home Location Register, una base de datos central que contiene detalles de cada abonado de telefonía móvil autorizado por una red GSM. La búsqueda en el HLR, por tanto, es una forma de acceder a esta información para garantizar la validez y disponibilidad de un número de móvil. Esta tecnología ofrece el grado más alto de precisión, como contra partida tiene el coste de verificación más alto.\n\n**Verificación teléfonos MNP**\n\n\nLa verificación de búsqueda de la portabilidad del número de móvil (MNP) es un proceso utilizado para validar los números y garantizar la identificación exacta de los proveedores de red.\n\nLa búsqueda MNP ayuda\ \ a determinar el operador actual de un número de móvil. Las empresas utilizan esta información para enrutar los mensajes SMS de forma precisa y rentable.\n\nLa verificación MNP ofrece un compromiso entre el grado de precisión y el coste de cada validación. Se puede utilizar como mecanismo indirecto para la verificación de teléfonos.\n\n**Verificación sintáctica de números de teléfono**\n\n\nLa verificación sintáctica de los números de teléfono garantiza la exactitud y coherencia de los números de teléfono.\n\nConsiste en comprobar la estructura y el formato del número de teléfono para asegurarse de que se ajusta a un patrón o conjunto de normas específico. Este proceso ayuda a identificar y corregir errores.\n\nEste tipo de verificación es la más económica, pero a costa de obtener menos información de los números verificados.\n\n\n ![Sign Up Page](static/images/tipos_verificacion_telefonos.png)\n\n\n# Verificar Ficheros\n*Verificar Emails ®* ofrece distintas formas de importar los ficheros\ \ de contactos \npara su verificación. Puedes subir ficheros CSV, XLS, XLSX y TXT \ndesde tu ordenador local.\n\n![File Upload](static/images/file-upload.png)\n\nPara subir un fichero desplázate a la sección **_Dashboard_** o **_Validación_**. Utilizando la caja naranja, selecciona los ficheros a verificar. También puedes arrastrar y soltar los ficheros\nde tu ordenador.\n\n\n\nUna vez los ficheros han sido subidos, se harán visibles en la sección **_FICHEROS SUBIDOS_**.\nLos nuevos ficheros iniciarán su validación de forma automática. **IMPORTANTE:** Una vez inicies el proceso de validación, no se puede cancelar. Asegúrate que los emails están correctamente tabulados en tu fichero. Una vez finalice el proceso de verificación recibirás un mensaje de emails para proceder a la descarga del fichero verificado.\n\n\nMientras subes un fichero asegura te que se cumplen las condiciones:\n\n* Los teléfonos están en una única columna columna.\n* Los teléfonos deben aparecer en la misma columna\ \ en las distintas filas.\n* Recomendamos que la lista sea inferior a 250.000 teléfonos. Para optimizar la velocidad recomendamos listas inferiores a 100.000 registros.\n* El nombre de los campos debe aparecer en la primera fila del fichero para poder\ncategorizar los distintos campos.\n* Por temas de confidencialidad los ficheros validados se eliminarán de nuestro servidor al cabo de 30 días, dejando solo un resumen de la verificación. Debes guardar los datos verificados en tu entorno.\n\nEn la imagen inferior dispones de un ejemplo de cómo debería ser el fichero a validar::\n\n![File Upload 4](static/images/file-upload4.png)\n\nSi no estás seguro de que tus datos están bien formateados, sube solo una parte de tus contactos y realiza una prueba con unos 5 mails. Los créditos que consumas en verificaciones con registros inválidos no pueden ser reembolsados.\n\nSi tu fichero no está bien formateado, copia la columna de los teléfonos en un bloc de notas o en una nueva hoja Excel y\ \ valida solo los emails.\nUna vez verificados, dispondrás de 2 columnas, una que contiene el teléfono y el resultado de la verificación. Estos valores los puedes volver a copiar en tu fichero Excel original.\n\n\n\n\nUna vez el fichero ha sido procesado por *Verificaremails ®*, aparece la columna **_Staus_**\npara categorizar el estado de los emails. Los únicos teléfonos 100% seguros son las \"connected\". En la columna \"Result\" podrás ver los detalles de la verificación. Puedes leer más sobre este tema en\nla sección [**Guia de Resultados**](#section/Guia-Resultados).\n\nLas listas procesadas tienen el siguiente aspecto:\n\n![File Upload 5](static/images/file-upload5.png)\n\n# Descargar y Exportar Resultados\nUna vez tu lista ha sido verificada, recibirás un correo. El formato del fichero será el mismo que has subido, pero con 2 columnas adicionales (\"status\" y \"result\").\n\n\n# Guía Resultados\n*Verificaremails ®* la respuesta de las llamadas, veien en formato JSON para\ \ poder explotar los datos de \nforma cómoda (Excel permite convertir el formato JSON en columnas para facilitar la explotación de los \ndatos).\n \n| id | Tipo |Valor Nulo | Description |\n|-----------------------------------|-------------|--------------------|----------------------------------------------------------------------------------------|\n| id | string | | ID único de la petición. |\n| cost | float | | Número de tokens utilizados en la verificación. |\n| phone_number | string | | Número de teléfono en formato E.164 format. |\n| number_type \ \ | string | | Tipo de número de teléfono (fijo o móvil) Number types |\n| timezone | string | | Zona horaria donde originalmente el número fue asignado. En ningún caso traza la zona horaria donde se encuentra el usuario en el momento de la verificación. |\n| is_ported | bool | ✓ | Indica si el número ha sido portado. Se muestra null en caso de que no se disponga de esta información. |\n| reachable | string | | Se indica la accesibilidad en el preciso momento de la verificación. Para más información ver Reachability State. |\n| imsi | string | ✓ | International Mobile Subscriber Identity (IMSI). Identificador único\ \ asociado a la tarjeta SIM. La disponibilidad del IMSI depende del operador móvil de la tarjeta. |\n| format.e164 | string | | El número en formato E.164 format. |\n| format.international | string | | El número en formato internacional. |\n| format.national | string | | El número en formato nacional. |\n| format.rfc3966 | string | | El número formateado en RFC3966 format. |\n| original_network.country_iso2 | string | | El Código de país (ISO2) donde originalmente el número fue asignado. \ \ |\n| original_network.country_prefix | string | | El prefijo internacional de llamada donde el número fue originalmente asignado. | \n| original_network.area | string | ✓ | El nombre del área donde el número fue asignado. |\n| original_network.mccmnc | string | ✓ | Cinco o seis caracteres MCCMNC (mobile country code + mobile network code tuple) identificando la red original que emitió el número. |\n| original_network.mcc | string | ✓ | Tres caracteres MCC (mobile country code) identificando donde la red donde fue emitido el número. |\n| original_network.mnc | string \ \ | ✓ | Dos o tres caracteres MNC (mobile network code) identificando la red donde fue emitido el número. |\n| original_network.network_name | string | ✓ | Nombre del operador que emitió el número, si se dispone de esta información. |\n| current_network.country_iso2 | string | ✓ | Código del país (ISO2) donde el numero actualmente este asignado. |\n| current_network.country_prefix | string | | El prefijo internacional donde actualmente el número este asignado. | \n| current_network.area | string | ✓ | Nombre del área donde actualmente el numero este asignado, si se dispone de esta información.\ \ |\n| current_network.mccmnc | string |✓ | Cinco o seis caracteres MCCMNC (mobile country code + mobile network code tuple) identificando la red donde actualmente pertenece el número. |\n| current_network.mcc | string | ✓ | Tres caracteres MCC (mobile country code) identificando el país donde actualmente pertenece el número. |\n| current_network.mnc | string | ✓ | Dos o tres caractres MNC (mobile network code) identificando la red donde actualmente el número pertenece. |\n| current_network.network_name | string | ✓ | El nombre del operador donde actualmente el número este asignado, si se dispone de esta información.\ \ |\n \nSi el número que tratamos de verificar es una línea fija, la respuesta que obtenemos es:\n \n| id | Tipo |Valor Nulo | Description |\n|-----------------|----------------|--------------------|----------------------------------------------------------------------------------------|\n| id | string | | ID único de la petición. |\n| cost | float | | Número de tokens utilizados en la verificación. |\n| phone_number | string | | Número de teléfono en formato E.164 format. |\n| number_type | string \ \ | | Tipo de número de teléfono (fijo o móvil) Number types |\n| timezone | string | | Zona horaria donde originalmente el número fue asignado. En ningún caso traza la zona horaria donde se encuentra el usuario en el momento de la verificación. |\n| format.e164 | string | | El número en formato E.164 format. |\n| format.international | string | | El número en formato internacional. |\n| format.national | string | | El número en formato nacional. |\n| format.rfc3966 | string | \ \ | El número formateado en RFC3966 format. |\n| original_network.country_iso2 | string | | El Código de país (ISO2) donde originalmente el número fue asignado. \n| original_network.country_prefix | string | | El prefijo internacional de llamada donde el número fue originalmente asignado. | \n| original_network.area | string |✓ | El nombre del área donde el número fue asignado. |\n| original_network.network_name | string |✓ | El operador original que asigno el número. |\n \nPor cada número válido procesado a través de la API de verificación de números, devolveremos información sobre el estado de accesibilidad actual del número. Con esta información, puede determinar\ \ si el número está actualmente activo y localizable.\n \n| Estado | Description |\n|----------------------------|----------------------------------------------------------------------------------------|\n| connected | Número móvil activo. |\n| absent | El número no esta accesible en este momento. Para más detalles revisar la table Suscritores Ausentes |\n| no-teleservice-provisioned | El número no puede recibir llamadas ni mensajes SMS. Suelen ser números asociados a una tarjeta SIM de datos. |\n| inconclusive | No podemos obtener una respuesta de la red para este número. La red no proporciona esta información. |\n| missing parameters | There are no validations remaining to complete this attempt. \ \ |\n| no-coverage failed | There are no validations remaining to complete this attempt. | \n \n \n ## Suscriptor Ausente\n \n Si su propiedad de accesibilidad devuelve que el número es “suscriptor ausente” (absent), entonces hay varias razones posibles para esto.\n

\n * El teléfono está apagado y se realizó una llamada al número durante este período. Cuando un intento de conectarse a un número falla porque está apagado, no tiene señal o está en modo avión, entonces la llamada al API se actualizará a un estado de Suscriptor ausente para reflejar que las llamadas no pueden conectarse actualmente o los SMS no pueden enviarse a ese número. Cuando el teléfono se vuelva a encender, se conectará a una torre celular y el API se actualizará y marcará que el número es accesible.\n

\n * Un largo período de inactividad en el número. Cada operador de red tiene diferentes umbrales al actualizar la base de datos del API\ \ para mostrar un número de móvil como “ausente”. Por lo general, si un número no se ha activado en un teléfono durante más de 4 días, se considerará como Ausente y una búsqueda lo reflejará.\n

\n * El número se ha asignado a una tarjeta SIM pero aún no se ha conectado (por ejemplo, un número de teléfono que todavía está en una tienda a la espera de ser vendido).\n\n## Tipos de Números\n \nPor cada número válido procesado a través de la API de verificación de números, devolveremos información sobre el \n estado de accesibilidad actual del número. Con esta información, puede determinar si el número está actualmente \n activo y localizable.\n \n | Tipo | Description |\n |-----------------------------|----------------------------------------------------------------------------------------|\n | landline | Número de teléfono fijo. \ \ |\n | mobile | Número de teléfono móvil. |\n | mobile_or_landline | Número fijo o móvil. |\n | toll_free | Número de teléfono gratuito. |\n | premium_rate | Número de teléfono Premium con cargos extra |\n | shared_cost | Número de teléfono de costo compartido. Por lo general, menos costoso que los números de teléfono de tarifa premium. | \n | personal_number | Un número personal está asociado con una persona en particular y puede enrutarse a un número de teléfono fijo o móvil. Se puede encontrar más información aquí.here \ \ |\n | voip | Número de teléfono de voz sobre IP. Incluye números de teléfono TSoIP (Servicio de Telefonía sobre IP). |\n | pager | Número de teléfono del buscapersonas. Por lo general, no hay funcionalidad de voz. |\n | uan | Número de Acceso Universal (Número de Empresa). Puede enrutarse a oficinas específicas, pero permite que se use un número para la empresa. |\n | voicemail | Número de teléfono del correo de voz (voicemail) |\n | unknown | El número no ha podido ser identificado. |\n\n \n\n\n\n\n\n\n# Autenticación API\nPara utilizar\ \ nuestra API necesitas unas credenciales. Puedes obtener tu\nAPI key visitando la sección **API** en tu dashboard.\n\n\n---\n\n## Preguntas frecuentes sobre verificación de números de teléfono\n\n### ¿Cómo saber si un número de teléfono está activo?\nPuedes usar esta API para verificar números de teléfono en tiempo real mediante HLR y comprobar si el número está activo en la red móvil.\n\n### ¿Cómo comprobar un número de teléfono móvil?\nLa API permite validar números móviles, identificar el operador y consultar si una línea parece activa antes de enviar comunicaciones.\n\n### ¿Se puede validar un número automáticamente?\nSí. Puedes integrar la API en cualquier aplicación, CRM, formulario o proceso batch para validar números telefónicos automáticamente.\n\n### ¿Qué diferencia hay entre validar el formato y verificar un número activo?\nLa validación sintáctica revisa el formato del teléfono. La verificación HLR y MNP añaden información real\ \ sobre la red, el operador y el posible estado del número.\n\n### ¿Qué es una API para verificar números de teléfono?\nEs un servicio que permite comprobar números de teléfono, validar números móviles y mejorar la calidad de los datos de contacto en tiempo real.\n" termsOfService: https://www.verificaremails.com/en/terms-of-use/ contact: name: Support url: https://www.verificaremails.com/#FAQ email: contactar@verificaremails.com version: 1.0.0 servers: - url: https://dashboard.verificaremails.com/myapi tags: - name: API de validación HLR description: 'API para verificar números de teléfono mediante HLR. Permite validar números móviles, comprobar si un número está activo y consultar información del operador en tiempo real. Ideal para: - API para verificar números de teléfono - API para validar números de teléfono - comprobar número de teléfono móvil - saber si un número está activo - consulta HLR para números móviles Este bloque responde especialmente a búsquedas orientadas a validar y verificar números de teléfono activos mediante API.' - name: API de validación MNP description: 'API para validar números de teléfono y detectar la portabilidad del operador. Permite consultar operador, verificar número telefónico y enriquecer datos de telefonía con una validación rápida y rentable. Ideal para: - consultar número de celular - validar número de teléfono - verificar números telefónicos - detectar portabilidad y operador actual Este bloque es útil para quienes buscan una API para validar números de teléfono y consultar operador actual.' - name: API de validación sintáctica description: 'API para validar el formato de números de teléfono. Permite comprobar rápidamente si un número telefónico tiene una estructura válida antes de procesarlo o combinar esta validación con otros métodos. Ideal para: - validación de números telefónicos - validar número de teléfono - comprobar formato de teléfono Este bloque complementa los procesos de validación de números de teléfono antes de hacer verificaciones más avanzadas.' x-tagGroups: - name: Developer API tags: - API de validación HLR - API de validación MNP - API de validación sintáctica paths: /phone/validate/single: get: security: - APIKey: [] tags: - API de validación HLR summary: API para verificar números de teléfono | validar número móvil y comprobar si está activo description: "Endpoint para verificar números de teléfono en tiempo real mediante HLR.\n\nPermite validar números móviles, comprobar si un número de teléfono está activo y consultar información del operador. Está orientado a quienes buscan una API para verificar números de teléfono o una API para validar números de teléfono con información de red.\n\nSubmits a phone number for verification. Always use international prefix.\n\n\n\nThe response will be returned in the form JSON containing validations details. The field \"reachable\" provides information regarding the connection status. \n| id | string | | Unique record ID for further reference (i.e.: status query). |\n| term | string | | The phone number. |\n| request_id | string \ \ | | Unique request ID for further reference (i.e.: status query). |\n| result_code | string | | Status code of the processing result. Search for it in result type reference. |\n| result_type | string | | The main classfication of the result. Search for it in result type reference. |\n| result.phone_number | string |✓ | The phone number. |\n| result.number_type | string |✓ | The phone number type. mobile, fixed_line, fixed_line_or_mobile, toll_free, premium_rate, personal_number, voip, pager, uan, voicemail, unknown \ \ |\n| timezone | string |✓ | Time zone identifier (TZDB). |\n| is_ported | string | | Indicate whether the number has been ported. |\n| reachable | string | | Accessibility information at the precise time of verification. See Reachability State. |\n| imsi | string |✓ | International Mobile Subscriber Identity (IMSI). Unique identifier linked to the SIM card. Availability depends on the mobile operator. |\n| format.e164 | string | | Number in E.164 format. \ \ |\n| format.international | string | | Number in international format. |\n| format.national | string | | Number in national format. |\n| format.rfc3966 | string | | Number in RFC3966 format. |\n| original_network.country_iso2 | string | | ISO2 country code where the number was originally assigned. |\n| original_network.country_prefix | string | | International calling prefix where the number was originally assigned. | \n| original_network.area | string \ \ |✓ | Area name where the number was originally assigned. |\n| original_network.mccmnc | string |✓ | Five or six MCCMNC characters identifying the original issuing network. |\n| original_network.mcc | string |✓ | Three MCC characters identifying the country of the original issuing network. |\n| original_network.mnc | string |✓ | Two or three MNC characters identifying the original issuing network. |\n| original_network.network_name | string |✓ | Name of the operator that originally issued the number, when available. |\n| current_network.country_iso2 | string\ \ |✓ | ISO2 country code where the number is currently assigned. |\n| current_network.country_prefix | string | | International calling prefix where the number is currently assigned. | \n| current_network.area | string |✓ | Area name where the number is currently assigned, when available. |\n| current_network.mccmnc | string |✓ | Five or six MCCMNC characters identifying the network to which the number currently belongs. |\n| current_network.mcc | string |✓ | Three MCC characters identifying the country where the number currently belongs. \ \ |\n| current_network.mnc | string |✓ | Two or three MNC characters identifying the network to which the number currently belongs. |\n| current_network.network_name | string |✓ | Name of the operator where the number is currently assigned, when available. |\n\nTambién responde a búsquedas como comprobar número de teléfono móvil, cómo saber si un número está activo y consultar número de celular." operationId: d587e44e9cd0459714670331256ceaf9 parameters: - name: auth-token in: query description: Token de autenticación de la API. required: true schema: type: string - name: term in: query description: Número de teléfono a verificar en formato internacional. Permite comprobar si está activo y validar números móviles. required: true schema: type: string responses: '200': description: Resultado correcto de la verificación del número de teléfono o de la consulta realizada. content: application/json: schema: description: JSON result Resultado de la validación del número de teléfono. required: - id - term - request_id - result_code - result_type properties: id: type: string example: '364637' term: type: string example: '34677934019' description: Número de teléfono consultado o validado. request_id: type: string example: '364637' description: ID único de la petición de verificación del número de teléfono. result_code: type: string example: '114' description: Código del resultado de la verificación. result_type: type: string example: Inconclusive description: Tipo de resultado de la validación del número de teléfono. result: type: object example: id: '364215' term: '34677934019' request_id: '364215' result_code: '101' result_type: Conectado result: phone_number: '+34677934019' number_type: mobile timezone: Atlantic/Canary format: e164: '+34677934019' international: +34 677 93 40 19 national: 677 93 40 19 rfc3966: tel:+34-677-93-40-19 is_ported: true reachable: connected processing_status: completed imsi: '214040000000000' current_network: country_iso2: ES country_prefix: '34' country_name: Spain mccmnc: '21404' mcc: '214' mnc: '04' area: ES network_name: Yoigo original_network: country_iso2: ES country_prefix: '34' country_name: Spain mccmnc: '21401' mcc: '214' mnc: '01' area: ES network_name: Vodafone description: Resultado detallado de la validación del número de teléfono, incluyendo estado, formato y datos de red cuando estén disponibles. type: object '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' x-codeSamples: - lang: PHP source: "$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n CURLOPT_URL => 'https://dashboard.verificaremails.com/myapi/phone/validate/single?term=34677934019&auth-token={{api_token}}',\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => '',\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 0,\n CURLOPT_FOLLOWLOCATION => true,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => 'GET',\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;\n" - lang: Python source: 'import requests url = "https://dashboard.verificaremails.com/myapi/phone/validate/single?term=34677934019&auth-token={{api_token}}" payload = {} headers = {} response = requests.request("GET", url, headers=headers, data=payload) print(response.text) ' - lang: Ruby source: 'require "uri" require "net/http" url = URI("https://dashboard.verificaremails.com/myapi/phone/validate/single?term=34677934019&auth-token={{api_token}}") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Get.new(url) response = https.request(request) puts response.read_body ' - lang: C# source: 'var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://dashboard.verificaremails.com/myapi/phone/validate/single?term=34677934019&auth-token={{api_token}}"); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ' /phone/validate/multiple: post: security: - APIKey: [] tags: - API de validación HLR summary: API para verificar números de teléfono en lote | validar listados y comprobar números activos description: 'Endpoint para verificar números de teléfono en lote. Permite validar ficheros con números móviles, comprobar si los números están activos y automatizar verificaciones masivas para limpieza de bases de datos, campañas SMS y procesos de onboarding. Endpoint para verificar números de teléfono en lote. Permite validar ficheros con números móviles, comprobar números activos y depurar bases de datos de contacto. Submit a list of phone numbers for verification. Upload a file containing your list of phone numbers and it will be returned with an additional field that assigns each record verification status. This endpoint expects the file to be in the same format as described in our [**File Verification**](#section/File-Verification) section. The updated file will have an additional field attached as described in our [**Result Guide**](#section/Result-Guide) section. The response will be returned in the form of a plain text string: | Response | Description | |--------------------|----------------------------------------------------------------------------------------| | <upload-id> | A number representing the file being processed. | | no_credit | Your current account balance is $0. | | cannot_upload_file | The uploaded file could not be processed due to incorrect formatting or broken upload. | | key_not_valid | No api key was provided in the request or it was invalid. | | missing parameters | There are no validations remaining to complete this attempt. | After receiving the `upload-id`, you can check the processing status and retrieve the finished results using the [**/getApiFileInfo**](#operation/getApiFileInfo) endpoint. Ideal para validar bases de datos, depurar listados y verificar números de teléfono antes de campañas SMS o procesos de registro.' operationId: 593fa14b20a2ee749a8b335c93aed646 parameters: - name: auth-token in: query description: Token de autenticación de la API. required: true schema: type: string requestBody: required: true content: multipart/form-data: schema: required: - file - column properties: file: description: The file to upload (xls, xlsx, cvs, or txt) type: string format: binary column: description: The column number or letter type: string send_email: description: Send an email to notify when the file is processed (1) or not (0, default) type: integer default: 0 enum: - 0 - 1 callback_url: description: URL for the callback type: string format: url type: object responses: '200': description: Resultado correcto de la verificación del número de teléfono o de la consulta realizada. content: application/json: schema: description: Message successfully sent to the platform. Resultado de la validación del número de teléfono. properties: request_id: type: string example: '368228' description: ID único de la petición de verificación del número de teléfono. type: object '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' x-codeSamples: - lang: PHP source: "$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n CURLOPT_URL => 'https://dashboard.verificaremails.com/myapi/phone/validate/multiple?auth-token={{api_token}}',\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => '',\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 0,\n CURLOPT_FOLLOWLOCATION => true,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => 'POST',\n CURLOPT_POSTFIELDS => array('file'=> new CURLFILE('/C:/Users/antxo/Downloads/test_phone_validation.txt'),'column' => '1','send_email' => '1','callback_url' => 'https://webhook.site/7f0ec9da-6274-4b9c-98d6-2b0f4eb61ed9'),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;\n" - lang: Python source: "import requests\n\nurl = \"https://dashboard.verificaremails.com/myapi/phone/validate/multiple?auth-token={{api_token}}\"\n\npayload = {'column': '1',\n'send_email': '1',\n'callback_url': 'https://webhook.site/7f0ec9da-6274-4b9c-98d6-2b0f4eb61ed9'}\nfiles=[\n ('file',('test_email_validation.txt',open('/C:/Users/antxo/Downloads/test_phone_validation.txt','rb'),'text/plain'))\n]\nheaders = {}\n\nresponse = requests.request(\"POST\", url, headers=headers, data=payload, files=files)\n\nprint(response.text)\n" - lang: Ruby source: 'require "uri" require "net/http" url = URI("https://dashboard.verificaremails.com/myapi/phone/validate/multiple?auth-token={{api_token}}") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Post.new(url) form_data = [[''file'', File.open(''/C:/Users/antxo/Downloads/test_phone_validation.txt'')],[''column'', ''1''],[''send_email'', ''1''],[''callback_url'', ''https://webhook.site/7f0ec9da-6274-4b9c-98d6-2b0f4eb61ed9'']] request.set_form form_data, ''multipart/form-data'' response = https.request(request) puts response.read_body ' - lang: C# source: 'var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Post, "https://dashboard.verificaremails.com/myapi/phone/validate/multiple?auth-token={{api_token}}"); var content = new MultipartFormDataContent(); content.Add(new StreamContent(File.OpenRead("/C:/Users/antxo/Downloads/test_phone_validation.txt")), "file", "/C:/Users/antxo/Downloads/test_phone_validation.txt"); content.Add(new StringContent("1"), "column"); content.Add(new StringContent("1"), "send_email"); content.Add(new StringContent("https://webhook.site/7f0ec9da-6274-4b9c-98d6-2b0f4eb61ed9"), "callback_url"); request.Content = content; var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ' /myapi/phone/status/{requestId}: get: tags: - API de validación HLR summary: Consultar el estado de una validación masiva de números de teléfono description: 'Endpoint para consultar el estado de una validación masiva de números de teléfono y automatizar la recepción de resultados procesados. Permite hacer seguimiento de verificaciones de números telefónicos enviadas en lote y descargar el resultado final cuando el proceso termina. It allows you to automate the entire process of receiving processed files. The notification can be made by request to the API, Webhoock, knowing at all times the available and consumed credits. The service work for **HLR, MNP and Syntax verification**' operationId: 5bc566aa55569519c6c8580fe84b2933 parameters: - name: requestId in: path description: Identificador de la petición de validación masiva. required: true schema: type: integer - name: auth-token in: query description: Token de autenticación de la API. required: true schema: type: string responses: '200': description: Resultado correcto de la verificación del número de teléfono o de la consulta realizada. content: application/json: schema: description: JSON result Resultado de la validación del número de teléfono. required: - status - items - credits - name - date_created - date_updated properties: status: type: string example: Status items: type: object properties: total: type: string example: '50' processed: type: string example: '50' pending: type: string example: '0' credits: type: object properties: billed: type: string example: '45' not_billed: type: string example: '5' description: Créditos disponibles para esta API. name: type: string example: File name date_created: type: string format: date-time example: '2025-01-15 13:58:14' date_updated: type: string format: date-time example: '2025-01-15 13:59:54' download: type: string example: https://dashboard.verificaremails.com/myapi/apiName/download/1234?auth-token=abcd1234 type: object '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' /phone/credits: get: security: - APIKey: [] tags: - API de validación HLR summary: Consultar créditos de la API de verificación de teléfonos HLR description: 'Endpoint para consultar los créditos disponibles del servicio HLR de verificación de números de teléfono. Retrieve the number of available credits for that service.' operationId: 5bc566aa55569519c6c8580fe84b2932 parameters: - name: auth-token in: query description: Token de autenticación de la API. required: true schema: type: string responses: '200': description: Resultado correcto de la verificación del número de teléfono o de la consulta realizada. content: application/json: schema: description: Success JSON Resultado de la validación del número de teléfono. properties: credits: type: string example: '1000' description: Créditos disponibles para esta API. type: object '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' x-codeSamples: - lang: PHP source: "$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n CURLOPT_URL => 'https://dashboard.verificaremails.com/myapi/phone/credits?auth-token={{api_token}}',\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => '',\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 0,\n CURLOPT_FOLLOWLOCATION => true,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => 'GET',\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;\n" - lang: Python source: 'import requests url = "https://dashboard.verificaremails.com/myapi/phone/credits?auth-token={{api_token}}" payload = {} headers = {} response = requests.request("GET", url, headers=headers, data=payload) print(response.text) ' - lang: Ruby source: 'require "uri" require "net/http" url = URI("https://dashboard.verificaremails.com/myapi/phone/credits?auth-token={{api_token}}") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Get.new(url) response = https.request(request) puts response.read_body ' - lang: C# source: 'var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://dashboard.verificaremails.com/myapi/phone/credits?auth-token={{api_token}}"); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ' /all/credits: get: security: - APIKey: [] tags: - API de validación HLR summary: Consultar créditos disponibles de todas las APIs description: 'Endpoint para consultar los créditos disponibles en todas las APIs de verificación. Retrieve the number of available credits related to all APIss services.' operationId: 0b525866e73e0650eceaabb0f892dd6f parameters: - name: auth-token in: query description: Token de autenticación de la API. required: true schema: type: string responses: '200': description: Resultado correcto de la verificación del número de teléfono o de la consulta realizada. content: application/json: schema: description: Success JSON Resultado de la validación del número de teléfono. type: array items: required: - api_service - credits - api_service_alias properties: api_service: type: string example: email credits: type: string example: '1000' api_service_alias: type: string example: Email Verification type: object examples: example: value: - api_service: phone credits: '5' api_service_alias: Phone Number Verification - HLR - api_service: email credits: '6' api_service_alias: Email Verification '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' x-codeSamples: - lang: PHP source: "$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n CURLOPT_URL => 'https://dashboard.verificaremails.com/myapi/all/credits?auth-token={{api_token}}',\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => '',\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 0,\n CURLOPT_FOLLOWLOCATION => true,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => 'GET',\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;\n" - lang: Python source: 'import requests url = "https://dashboard.verificaremails.com/myapi/all/credits?auth-token={{api_token}}" payload = {} headers = {} response = requests.request("GET", url, headers=headers, data=payload) print(response.text) ' - lang: Ruby source: 'require "uri" require "net/http" url = URI("https://dashboard.verificaremails.com/myapi/all/credits?auth-token={{api_token}}") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Get.new(url) response = https.request(request) puts response.read_body ' - lang: C# source: 'var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://dashboard.verificaremails.com/myapi/all/credits?auth-token={{api_token}}"); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ' /phonemnp/validate/single: get: security: - APIKey: [] tags: - API de validación MNP summary: API para validar números de teléfono y consultar operador actual description: "Endpoint MNP para validar números de teléfono, consultar el operador actual y enriquecer datos de red de un número móvil.\n\nThe response will be returned in the form JSON containing validations details\n | id | Tipo |Valor Nulo | Description |\n |-----------------------------------|----------------------------------------------------------------------------------------|--------------------|----------------------------------------------------------------------------------------|\n | id | string | | ID único de la petición. |\n | cost | float | | Número de tokens utilizados en la verificación.\ \ |\n | phone_number | string | | Número de teléfono en formato E.164 format. |\n | number_type | string | | Tipo de número de teléfono (fijo o móvil) Number types |\n | timezone | string | | Zona horaria donde originalmente el número fue asignado. En ningún caso traza la zona horaria donde se encuentra el usuario en el momento de la verificación. |\n | processing_status | string | | Indicates the final processing status for the MNP lookup operation. Please see the Processing Statuses section for all possible values. \ \ |\n | imsi | string |✓ | International Mobile Subscriber Identity (IMSI). Identificador único asociado a la tarjeta SIM. La disponibilidad del IMSI depende del operador móvil de la tarjeta. |\n | format.e164 | string | | El número en formato E.164 format. |\n | format.international | string | | El número en formato internacional. |\n | format.national | string | | El número en formato nacional. |\n | format.rfc3966 | string | | El número formateado en RFC3966 format. \ \ |\n | current_network.country_iso2 | string | | El Código de país (ISO2) donde originalmente el número fue asignado. |\n | current_network.country_prefix | string | | El prefijo internacional de llamada donde el número fue originalmente asignado. | \n | current_network.area | string |✓ | El nombre del área donde el número fue asignado. |\n | current_network.mccmnc | string |✓ | Cinco o seis caracteres MCCMNC (mobile country code + mobile network code tuple) identificando la red original que emitió el número. |\n | current_network.mcc | string |✓ \ \ | Tres caracteres MCC (mobile country code) identificando donde la red donde fue emitido el número. |\n | current_network.mnc | string |✓ | Dos o tres caracteres MNC (mobile network code) identificando la red donde fue emitido el número. |\n | current_network.network_name | string |✓ | Nombre del operador que emitió el número, si se dispone de esta información. |\n\nResulta útil para validar números de teléfono, consultar número de celular y detectar cambios de operador mediante MNP." operationId: d587e44e9cd0459014670331256ceaf9 parameters: - name: auth-token in: query description: Token de autenticación de la API. required: true schema: type: string - name: term in: query description: Número de teléfono a verificar en formato internacional. Permite comprobar si está activo y validar números móviles. required: true schema: type: string responses: '200': description: Resultado correcto de la verificación del número de teléfono o de la consulta realizada. content: application/json: schema: description: JSON result Resultado de la validación del número de teléfono. required: - id - term - request_id - result_code - result_type properties: id: type: string example: '364637' term: type: string example: '34677934019' description: Número de teléfono consultado o validado. request_id: type: string example: '364637' description: ID único de la petición de verificación del número de teléfono. result_code: type: string example: '114' description: Código del resultado de la verificación. result_type: type: string example: Inconclusive description: Tipo de resultado de la validación del número de teléfono. result: type: object example: id: '364214' term: '34677934019' request_id: '364214' result_code: '118' result_type: Móvil result: phone_number: '+34677934019' number_type: mobile timezone: Atlantic/Canary format: e164: '+34677934019' international: +34 677 93 40 19 national: 677 93 40 19 rfc3966: tel:+34-677-93-40-19 processing_status: completed imsi: '214040000000000' current_network: country_iso2: ES country_prefix: '34' country_name: Spain mccmnc: '21404' mcc: '214' mnc: '04' area: ES network_name: Yoigo description: Resultado detallado de la validación del número de teléfono, incluyendo estado, formato y datos de red cuando estén disponibles. type: object '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' x-codeSamples: - lang: PHP source: "$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n CURLOPT_URL => 'https://dashboard.verificaremails.com/myapi/phonemnp/validate/single?term=34677934019&auth-token={{api_token}}',\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => '',\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 0,\n CURLOPT_FOLLOWLOCATION => true,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => 'GET',\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;\n" - lang: Python source: 'import requests url = "https://dashboard.verificaremails.com/myapi/phonemnp/validate/single?term=34677934019&auth-token={{api_token}}" payload = {} headers = {} response = requests.request("GET", url, headers=headers, data=payload) print(response.text) ' - lang: Ruby source: 'require "uri" require "net/http" url = URI("https://dashboard.verificaremails.com/myapi/phonemnp/validate/single?term=34677934019&auth-token={{api_token}}") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Get.new(url) response = https.request(request) puts response.read_body ' - lang: C# source: 'var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://dashboard.verificaremails.com/myapi/phonemnp/validate/single?term=34677934019&auth-token={{api_token}}"); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ' /phonemnp/validate/multiple: post: security: - APIKey: [] tags: - API de validación MNP summary: API para validar números de teléfono en lote y consultar operador description: 'Endpoint MNP para validar números de teléfono en lote, consultar operador y procesar ficheros de forma masiva. Submit a list of phone numbers for verification. Upload a file containing your list of phone numbers and it will be returned with an additional field that assigns each record verification status. This endpoint expects the file to be in the same format as described in our [**File Verification**](#section/File-Verification) section. The updated file will have an additional field attached as described in our [**Result Guide**](#section/Result-Guide) section. The response will be returned in the form of a plain text string: | Response | Description | |--------------------|----------------------------------------------------------------------------------------| | <upload-id> | A number representing the file being processed. | | no_credit | Your current account balance is $0. | | cannot_upload_file | The uploaded file could not be processed due to incorrect formatting or broken upload. | | key_not_valid | No api key was provided in the request or it was invalid. | | missing parameters | There are no validations remaining to complete this attempt. | After receiving the `upload-id`, you can check the processing status and retrieve the finished results using the [**/getApiFileInfo**](#operation/getApiFileInfo) endpoint. Permite enriquecer ficheros con datos de operador y portabilidad dentro de procesos masivos de validación.' operationId: 583fa14b20a2ee749a8b335c93aed646 parameters: - name: auth-token in: query description: Token de autenticación de la API. required: true schema: type: string requestBody: required: true content: multipart/form-data: schema: required: - file - column properties: file: description: The file to upload (xls, xlsx, cvs, or txt) type: string format: binary column: description: The column number or letter type: string send_email: description: Send an email to notify when the file is processed (1) or not (0, default) type: integer default: 0 enum: - 0 - 1 callback_url: description: URL for the callback type: string format: url type: object responses: '200': description: Resultado correcto de la verificación del número de teléfono o de la consulta realizada. content: application/json: schema: description: Message successfully sent to the platform. Resultado de la validación del número de teléfono. properties: request_id: type: string example: '368228' description: ID único de la petición de verificación del número de teléfono. type: object '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' x-codeSamples: - lang: PHP source: "$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n CURLOPT_URL => 'https://dashboard.verificaremails.com/myapi/phonemnp/validate/multiple?auth-token={{api_token}}',\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => '',\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 0,\n CURLOPT_FOLLOWLOCATION => true,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => 'POST',\n CURLOPT_POSTFIELDS => array('file'=> new CURLFILE('/C:/Users/antxo/Downloads/test_phone_validation.txt'),'column' => '1','send_email' => '1','callback_url' => 'https://webhook.site/7f0ec9da-6274-4b9c-98d6-2b0f4eb61ed9'),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;\n" - lang: Python source: "import requests\n\nurl = \"https://dashboard.verificaremails.com/myapi/phonemnp/validate/multiple?auth-token={{api_token}}\"\n\npayload = {'column': '1',\n'send_email': '1',\n'callback_url': 'https://webhook.site/7f0ec9da-6274-4b9c-98d6-2b0f4eb61ed9'}\nfiles=[\n ('file',('test_email_validation.txt',open('/C:/Users/antxo/Downloads/test_phone_validation.txt','rb'),'text/plain'))\n]\nheaders = {}\n\nresponse = requests.request(\"POST\", url, headers=headers, data=payload, files=files)\n\nprint(response.text)\n" - lang: Ruby source: 'require "uri" require "net/http" url = URI("https://dashboard.verificaremails.com/myapi/phonemnp/validate/multiple?auth-token={{api_token}}") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Post.new(url) form_data = [[''file'', File.open(''/C:/Users/antxo/Downloads/test_phone_validation.txt'')],[''column'', ''1''],[''send_email'', ''1''],[''callback_url'', ''https://webhook.site/7f0ec9da-6274-4b9c-98d6-2b0f4eb61ed9'']] request.set_form form_data, ''multipart/form-data'' response = https.request(request) puts response.read_body ' - lang: C# source: 'var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Post, "https://dashboard.verificaremails.com/myapi/phonemnp/validate/multiple?auth-token={{api_token}}"); var content = new MultipartFormDataContent(); content.Add(new StreamContent(File.OpenRead("/C:/Users/antxo/Downloads/test_phone_validation.txt")), "file", "/C:/Users/antxo/Downloads/test_phone_validation.txt"); content.Add(new StringContent("1"), "column"); content.Add(new StringContent("1"), "send_email"); content.Add(new StringContent("https://webhook.site/7f0ec9da-6274-4b9c-98d6-2b0f4eb61ed9"), "callback_url"); request.Content = content; var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ' /phonemnp/credits: get: security: - APIKey: [] tags: - API de validación MNP summary: Consultar créditos de la API MNP de teléfonos description: 'Endpoint para consultar los créditos disponibles del servicio MNP de validación de números de teléfono. Retrieve the number of available credits.' operationId: 7bc563aa75569519c6c8580fe84b2932 parameters: - name: auth-token in: query description: Token de autenticación de la API. required: true schema: type: string responses: '200': description: Resultado correcto de la verificación del número de teléfono o de la consulta realizada. content: application/json: schema: description: Success JSON Resultado de la validación del número de teléfono. properties: credits: type: string example: '1000' description: Créditos disponibles para esta API. type: object '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' x-codeSamples: - lang: PHP source: "$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n CURLOPT_URL => 'https://dashboard.verificaremails.com/myapi/phonemnp/credits?auth-token={{api_token}}',\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => '',\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 0,\n CURLOPT_FOLLOWLOCATION => true,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => 'GET',\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;\n" - lang: Python source: 'import requests url = "https://dashboard.verificaremails.com/myapi/phonemnp/credits?auth-token={{api_token}}" payload = {} headers = {} response = requests.request("GET", url, headers=headers, data=payload) print(response.text) ' - lang: Ruby source: 'require "uri" require "net/http" url = URI("https://dashboard.verificaremails.com/myapi/phonemnp/credits?auth-token={{api_token}}") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Get.new(url) response = https.request(request) puts response.read_body ' - lang: C# source: "var client = new HttpClient();\nvar request = new HttpRequestMessage(HttpMethod.Get, \"https://dashboard.verificaremails.com/myapi/phonemnp/credits?auth-token={{api_token}}\");\nvar response = await client.SendAsync(request);\nresponse.EnsureSuccessStatusCode();\nConsole.WriteLine(await response.Content.ReadAsStringAsync());\n \n" /phonesyntactic/validate/single: get: security: - APIKey: [] tags: - API de validación sintáctica summary: API para validar el formato de números de teléfono description: "Endpoint para validar el formato de un número de teléfono. Permite comprobar rápidamente si un teléfono tiene una estructura válida antes de continuar con otras verificaciones.\n\nSubmit the phone number with international prefix.\n\n The response will be returned in the form JSON containing validations details\n\n| id | Tipo |Valor Nulo | Description |\n|-----------------------------------|----------------------------------------------------------------------------------------|--------------------|----------------------------------------------------------------------------------------|\n| id | string | | ID único de la petición. |\n| phone_number \ \ | string | | Número de teléfono en formato E.164 format. |\n| number_type | string | | Tipo de número de teléfono (fijo o móvil) Number types |\n| timezone | string | | Zona horaria donde originalmente el número fue asignado. En ningún caso traza la zona horaria donde se encuentra el usuario en el momento de la verificación. |\n| format.e164 | string | | El número en formato E.164 format. |\n| format.international | string | | El número en formato internacional. |\n| format.national\ \ | string | | El número en formato nacional. |\n| format.rfc3966 | string | | El número formateado en RFC3966 format. |\n| original_network.country_iso2 | string | | El Código de país (ISO2) donde originalmente el número fue asignado. |\n| original_network.country_prefix | string | | El prefijo internacional de llamada donde el número fue originalmente asignado. | \n| original_network.area | string |✓ | El nombre del área donde el número fue asignado. |\n| original_network.name | string \ \ |✓ | Cinco o seis caracteres MCCMNC (mobile country code + mobile network code tuple) identificando la red original que emitió el número. |\n| original_network.network_name | string |✓ | Nombre del operador que emitió el número, si se dispone de esta información. |\n\nEs una primera capa útil para validar números de teléfono antes de comprobar si un número está activo con métodos más avanzados." operationId: d587e46e9cd0459014670331256ceaf9 parameters: - name: auth-token in: query description: Token de autenticación de la API. required: true schema: type: string - name: term in: query description: Número de teléfono a verificar en formato internacional. Permite comprobar si está activo y validar números móviles. required: true schema: type: string responses: '200': description: Resultado correcto de la verificación del número de teléfono o de la consulta realizada. content: application/json: schema: description: JSON result Resultado de la validación del número de teléfono. required: - id - term - request_id - result_code - result_type properties: id: type: string example: '364637' term: type: string example: '34677934019' description: Número de teléfono consultado o validado. request_id: type: string example: '364637' description: ID único de la petición de verificación del número de teléfono. result_code: type: string example: '114' description: Código del resultado de la verificación. result_type: type: string example: Inconclusive description: Tipo de resultado de la validación del número de teléfono. result: type: object example: id: '364220' term: '34677934019' request_id: '364220' result_code: '137' result_type: Móvil result: phone_number: '+34677934019' number_type: mobile timezone: Atlantic/Canary format: e164: '+34677934019' international: +34 677 93 40 19 national: 677 93 40 19 rfc3966: tel:+34-677-93-40-19 original_network: country_iso2: ES country_prefix: '34' country_name: Spain area: ES network_name: Vodafone description: Resultado detallado de la validación del número de teléfono, incluyendo estado, formato y datos de red cuando estén disponibles. type: object '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' x-codeSamples: - lang: PHP source: "$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n CURLOPT_URL => 'https://dashboard.verificaremails.com/myapi/phonesyntactic/validate/single?term=34677934019&auth-token={{api_token}}',\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => '',\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 0,\n CURLOPT_FOLLOWLOCATION => true,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => 'GET',\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;\n" - lang: Python source: 'import requests url = "https://dashboard.verificaremails.com/myapi/phonesyntactic/validate/single?term=34677934019&auth-token={{api_token}}" payload = {} headers = {} response = requests.request("GET", url, headers=headers, data=payload) print(response.text) ' - lang: Ruby source: 'require "uri" require "net/http" url = URI("https://dashboard.verificaremails.com/myapi/phonesyntactic/validate/single?term=34677934019&auth-token={{api_token}}") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Get.new(url) response = https.request(request) puts response.read_body ' - lang: C# source: 'var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://dashboard.verificaremails.com/myapi/phonesyntactic/validate/single?term=34677934019&auth-token={{api_token}}"); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ' /phonesyntactic/validate/multiple: post: security: - APIKey: [] tags: - API de validación sintáctica summary: API para validar el formato de números de teléfono en lote description: 'Endpoint para validar el formato de números de teléfono en lote y detectar errores de estructura en ficheros de contactos. Submit the phone number with international prefix. list of phone numbers and it will be returned with an additional field that assigns each record verification status. This endpoint expects the file to be in the same format as described in our [**File Verification**](#section/File-Verification) section. The updated file will have an additional field attached as described in our [**Result Guide**](#section/Result-Guide) section. The response will be returned in the form of a plain text string: | Response | Description | |--------------------|----------------------------------------------------------------------------------------| | <upload-id> | A number representing the file being processed. | | no_credit | Your current account balance is $0. | | cannot_upload_file | The uploaded file could not be processed due to incorrect formatting or broken upload. | | key_not_valid | No api key was provided in the request or it was invalid. | | missing parameters | There are no validations remaining to complete this attempt. | After receiving the `upload-id`, you can check the processing status and retrieve the finished results using the [**/getApiFileInfo**](#operation/getApiFileInfo) endpoint. Ayuda a depurar listados y preparar bases de datos antes de procesos de verificación o validación HLR y MNP.' operationId: 583fa14b20a2ee749a8b355c93aed646 parameters: - name: auth-token in: query description: Token de autenticación de la API. required: true schema: type: string requestBody: required: true content: multipart/form-data: schema: required: - file - column properties: file: description: The file to upload (xls, xlsx, cvs, or txt) type: string format: binary column: description: The column number or letter type: string send_email: description: Send an email to notify when the file is processed (1) or not (0, default) type: integer default: 0 enum: - 0 - 1 callback_url: description: URL for the callback type: string format: url type: object responses: '200': description: Resultado correcto de la verificación del número de teléfono o de la consulta realizada. content: application/json: schema: description: Message successfully sent to the platform. Resultado de la validación del número de teléfono. properties: request_id: type: string example: '368228' description: ID único de la petición de verificación del número de teléfono. type: object '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' x-codeSamples: - lang: PHP source: "$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n CURLOPT_URL => 'https://dashboard.verificaremails.com/myapi/phonesyntactic/validate/multiple?auth-token={{api_token}}',\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => '',\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 0,\n CURLOPT_FOLLOWLOCATION => true,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => 'POST',\n CURLOPT_POSTFIELDS => array('file'=> new CURLFILE('/C:/Users/antxo/Downloads/test_phone_validation.txt'),'column' => '1','send_email' => '1','callback_url' => 'https://webhook.site/7f0ec9da-6274-4b9c-98d6-2b0f4eb61ed9'),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;\n" - lang: Python source: "import requests\n\nurl = \"https://dashboard.verificaremails.com/myapi/phonesyntactic/validate/multiple?auth-token={{api_token}}\"\n\npayload = {'column': '1',\n'send_email': '1',\n'callback_url': 'https://webhook.site/7f0ec9da-6274-4b9c-98d6-2b0f4eb61ed9'}\nfiles=[\n ('file',('test_email_validation.txt',open('/C:/Users/antxo/Downloads/test_phone_validation.txt','rb'),'text/plain'))\n]\nheaders = {}\n\nresponse = requests.request(\"POST\", url, headers=headers, data=payload, files=files)\n\nprint(response.text)\n" - lang: Ruby source: 'require "uri" require "net/http" url = URI("https://dashboard.verificaremails.com/myapi/phonesyntactic/validate/multiple?auth-token={{api_token}}") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Post.new(url) form_data = [[''file'', File.open(''/C:/Users/antxo/Downloads/test_phone_validation.txt'')],[''column'', ''1''],[''send_email'', ''1''],[''callback_url'', ''https://webhook.site/7f0ec9da-6274-4b9c-98d6-2b0f4eb61ed9'']] request.set_form form_data, ''multipart/form-data'' response = https.request(request) puts response.read_body ' - lang: C# source: 'var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Post, "https://dashboard.verificaremails.com/myapi/phonesyntactic/validate/multiple?auth-token={{api_token}}"); var content = new MultipartFormDataContent(); content.Add(new StreamContent(File.OpenRead("/C:/Users/antxo/Downloads/test_phone_validation.txt")), "file", "/C:/Users/antxo/Downloads/test_phone_validation.txt"); content.Add(new StringContent("1"), "column"); content.Add(new StringContent("1"), "send_email"); content.Add(new StringContent("https://webhook.site/7f0ec9da-6274-4b9c-98d6-2b0f4eb61ed9"), "callback_url"); request.Content = content; var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ' /phonesyntactic/credits: get: security: - APIKey: [] tags: - API de validación sintáctica summary: Consultar créditos de la API sintáctica de teléfonos description: 'Endpoint para consultar los créditos disponibles del servicio de validación sintáctica de números de teléfono. Retrieve the number of available credits.' operationId: 7bc563aa75569549c6c8580fe84b2932 parameters: - name: auth-token in: query description: Token de autenticación de la API. required: true schema: type: string responses: '200': description: Resultado correcto de la verificación del número de teléfono o de la consulta realizada. content: application/json: schema: description: Success JSON Resultado de la validación del número de teléfono. properties: credits: type: string example: '1000' description: Créditos disponibles para esta API. type: object '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' x-codeSamples: - lang: PHP source: "$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n CURLOPT_URL => 'https://dashboard.verificaremails.com/myapi/phonesyntactic/credits?auth-token={{api_token}}',\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => '',\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 0,\n CURLOPT_FOLLOWLOCATION => true,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => 'GET',\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;\n" - lang: Python source: 'import requests url = "https://dashboard.verificaremails.com/myapi/phonesyntactic/credits?auth-token={{api_token}}" payload = {} headers = {} response = requests.request("GET", url, headers=headers, data=payload) print(response.text) ' - lang: Ruby source: 'require "uri" require "net/http" url = URI("https://dashboard.verificaremails.com/myapi/phonesyntactic/credits?auth-token={{api_token}}") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Get.new(url) response = https.request(request) puts response.read_body ' - lang: C# source: 'var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://dashboard.verificaremails.com/myapi/phonesyntactic/credits?auth-token={{api_token}}"); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); ' components: securitySchemes: APIKey: type: apiKey name: auth-token in: query schemas: ErrorResponse: required: - error properties: error: required: - code - msg properties: code: description: Internal error code type: integer example: 100001 msg: description: Error description type: string example: Error description type: object type: object responses: '400': description: Error en la validación o verificación del número de teléfono por formato incorrecto o parámetros no válidos. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: No autorizado. Token no válido para usar la API de verificación de números de teléfono. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '402': description: Créditos insuficientes para realizar la validación o verificación del número de teléfono. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Acceso denegado a la API de validación de números de teléfono. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Recurso o petición de verificación de número de teléfono no encontrada. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '429': description: Demasiadas peticiones a la API de verificación de números de teléfono. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Error interno durante la validación o verificación del número de teléfono. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse'