Preguntas Frecuentes

Todo sobre geolocalización de IP, detección de VPN, búsquedas de ASN, límites de peticiones y el funcionamiento de la API.

Primeros pasos

Una API gratuita de inteligencia de IP. Busca cualquier dirección IPv4 o IPv6 y obtén el país, el ASN, el ISP, la detección de hosting, la detección de VPN, la identificación de nodos de salida Tor y la puntuación de redes abusivas. Una única respuesta JSON. Sin registro.
No. El nivel gratuito no necesita clave ni registro: basta con llamar al endpoint (los límites se controlan por dirección IP). Si quieres los límites Pro o Enterprise, envía tu clave en la cabecera X-API-Key o como ?api_key=. Puedes obtener una clave gratuita al instante con POST /v1/keys.
https://ipto.to. Todos los endpoints están bajo /v1/. CORS está habilitado en todos los endpoints.
GET https://ipto.to/v1/ip — no hace falta ningún parámetro. Devuelve tu IP junto con la ciudad, el estado o provincia, la zona horaria y la latitud/longitud. O ejecuta curl ipto.to en una terminal.
Sí. curl ipto.to detecta automáticamente el User-Agent de curl y devuelve un JSON compacto para tu propia IP, con campos como el país, la ciudad, el ASN y el tiempo en vivo. curl ipto.to/8.8.8.8 hace lo mismo para cualquier IP (sin el tiempo). Wget y HTTPie también funcionan.

Geolocalización por IP

La geolocalización por IP asocia los rangos de IP a la ubicación física de la infraestructura de red, no a la del usuario final. Los ISP enrutan el tráfico a través de puntos de intercambio regionales que pueden estar a cientos de millas de distancia. La precisión a nivel de país es alta. La precisión a nivel de ciudad se reduce en las IP residenciales y móviles.
Cuando estás conectado a una VPN, tu tráfico sale desde la dirección IP del servidor VPN. ipto informa de la ubicación de ese servidor de salida, no de tu ubicación física. En este caso, el indicador is_vpn será true.
La calidad de los datos depende de con qué precisión los ISP y las organizaciones registran sus bloques de IP en los registros WHOIS y de enrutamiento. Los grandes proveedores de nube e ISP tienen registros muy precisos. Las asignaciones más pequeñas o antiguas pueden ser imprecisas.
Sí. Las direcciones IPv6 devuelven ASN, organización y rangos de IP, además de ubicación a nivel de ciudad (ciudad, región, código postal, latitud/longitud) del conjunto de datos de MaxMind cuando el rango está cubierto, y se identifican los rangos bogon/privados. La única carencia: los indicadores de VPN, Tor y abuso son solo IPv4 por ahora, porque esas fuentes se publican como rangos IPv4; en una dirección IPv6 devuelven false en lugar de adivinar.
Una IP bogon (falsa) es cualquier dirección que no debería aparecer como origen en internet público: loopback (127.x.x.x), rangos privados RFC 1918 (10.x, 172.16–31.x, 192.168.x), link-local (169.254.x), multicast (224–239.x) y bloques reservados por la IANA. ipto detecta esto antes de cualquier consulta a la base de datos y devuelve bogon: true con un motivo bogon_type. Comprueba cualquier dirección en el comprobador de IP bogon.

Inteligencia de amenazas

ipto mantiene una base de datos de rangos de IP de servidores VPN conocidos, construida a partir del análisis de enrutamiento BGP y la enumeración activa. Cada IP se contrasta con esta base de datos en cada búsqueda. La atribución del proveedor se deriva de la titularidad del ASN: cuando un ASN está registrado exclusivamente a un operador de VPN, se identifica el proveedor. Prueba cualquier IP en el comprobador de VPN y proxy.
La lista de nodos de salida Tor procede de la lista oficial de nodos de salida masiva del Tor Project en check.torproject.org. Es la lista de referencia de las IP que actualmente pueden originar tráfico de salida Tor. Se actualiza cada 6 horas.
La IP se encuentra dentro de un rango de red que ha sido marcado por varios feeds independientes de inteligencia de amenazas como alojamiento de infraestructura abusiva: fuentes de spam, servidores de mando y control de malware, repetidores de botnets o herramientas de explotación masiva. Una puntuación de abuso más alta significa que más feeds han coincidido de forma independiente.
is_datacenter significa que la IP pertenece a un proveedor de hosting, una plataforma en la nube o una CDN. is_residential significa que la IP está clasificada como una conexión de banda ancha de consumidor. La mayoría de las IP no son ni una cosa ni la otra — pertenecen a infraestructura de ISP que no es ni hosting ni residencial.
Marca puntos de salida de proxy conocidos que no están categorizados como VPN o Tor. Actualmente se limita a los datos del pipeline de feeds de amenazas. La cobertura es menor que la detección de VPN y Tor.

ASN y red

Un Número de Sistema Autónomo (ASN) es un identificador único para una red que gestiona de forma independiente sus propias políticas de enrutamiento de IP en internet. Ejemplos: Google es AS15169, Amazon es AS16509. Cada bloque de IP lo anuncia exactamente un ASN. Busca cualquier ASN directamente en la herramienta de búsqueda de ASN.
La categoría de la organización que opera el ASN. Valores: hosting (hosting en la nube o de servidores), isp (proveedor de servicios de internet), business (red empresarial), education (universidad o investigación), government (gobierno), mobile (operador móvil), residential (residencial).
El bloque de IP está registrado a nombre de un operador móvil. Las IP móviles suelen reasignarse entre usuarios y a menudo aparecen en ubicaciones geográficas distintas de la sede del operador.
Sí — GET /v1/asn/:asn/ranges?limit=&offset= devuelve los rangos reales (cada uno con el código de país y las marcas hosting/mobile/residential/bot/blacklist), paginados hasta 200 por solicitud. La consulta principal GET /v1/asn/:asn también incluye ip_range_count y un rank — la posición del ASN por tamaño dentro de su país, según el número de rangos — sin necesidad del endpoint de rangos. Consulta la herramienta de búsqueda de ASN.
GET /v1/asn/:asn/whois devuelve el registro del RIR (nombre, estado, país, fechas de registro/última modificación, contactos) vía RDAP. GET /v1/asn/:asn/relationships devuelve los peers, proveedores upstream y clientes downstream conocidos, a partir del conjunto de datos AS-Relationships de CAIDA; en cambio, GET /v1/asn/:asn/related encuentra otros ASN probablemente operados por la misma organización. Los tres aparecen juntos en la página de búsqueda de ASN.
Sí — Todos los rangos de IP (GET /v1/ip-ranges) es un directorio navegable de los 256 bloques /8 posibles, que permite bajar hasta /16 y ver los rangos realmente asignados y el ASN al que pertenece cada uno.

Uso de la API

El plan gratuito permite 1000 peticiones/día por dirección IP, sin necesidad de registro ni de clave. Las claves Pro elevan eso a 100 000/día; Enterprise no tiene límite. Superar tu límite devuelve HTTP 429. Consulta los precios para más detalles.
Envía mediante POST un array JSON de cadenas de IP a /v1/ip/bulk — hasta 100 por petición, solo Pro/Enterprise (consulta los precios). La respuesta es un objeto indexado por IP. Las lecturas de caché en paralelo hacen que esto sea más rápido que llamadas secuenciales. Cada IP cuenta contra tu presupuesto diario, igual que una búsqueda individual.
Añade ?fields=field1,field2 a cualquier petición de una sola IP. Ejemplo: /v1/ip/1.1.1.1?fields=ip,country_code,is_vpn,is_tor. El campo ip siempre se incluye.
JSON (por defecto), CSV, texto plano, XML y YAML. Añade ?format=csv, ?format=text, ?format=xml o ?format=yaml a cualquier petición de una sola IP. CSV y texto devuelven pares clave/valor planos; XML y YAML conservan objetos anidados como flags.
Todavía no hay un SDK oficial. La API es un endpoint HTTP JSON estándar — funciona con cualquier cliente HTTP. Consulta la documentación para ver ejemplos en curl, JavaScript, Python, PHP y Go.
Sí: https://ipto.to/mcp es un servidor Model Context Protocol (MCP) que expone las mismas consultas como herramientas invocables por JSON-RPC (IP individual y masiva, ASN con sus rangos/whois/relaciones, whois de IP, RPKI, empresa, operador, dominios alojados, búsqueda unificada, lugares cercanos, país, DNS inverso, user-agent, teléfono, correo, puntuación de fraude, idioma, divisa, clima, marcas y patentes), de modo que un cliente compatible con MCP puede llamarlas directamente en lugar de hacer peticiones HTTP en bruto. Usa el mismo X-API-Key y las mismas reglas de límite que la API REST.

Datos

El conjunto de datos de ASN/rangos de IP se actualiza a diario a las 04:00 UTC. La geolocalización a nivel de ciudad combina dos fuentes independientes con sus propios calendarios — IP2Location mensualmente, MaxMind semanalmente — por lo que la precisión puede mejorar entre actualizaciones del ASN. Los feeds de amenazas (VPN, Tor, abuso) se sincronizan cada 6 horas. El TTL de la caché de borde es de 5 minutos.
Recopilamos información de varios proveedores clave de datos del sector, actualizada a diario. La detección de VPN usa inteligencia de rangos derivada de BGP. Los datos de nodos Tor proceden del registro oficial del Tor Project y de listas de repetidores verificados. Las redes de abuso usan inteligencia de listas negras corroborada entre varias fuentes.
La detección de VPN y Tor tiene una alta cobertura para los grandes proveedores y todos los nodos de salida confirmados. Los servicios de VPN más pequeños o recientes que arriendan espacio de IP de ASN de hosting genéricos pueden no identificarse por el nombre del proveedor. La puntuación de abuso usa corroboración entre varios feeds — una red necesita 3 o más fuentes independientes para aparecer en el nivel Medio, y 8 o más para el nivel Crítico.

Nuevas funciones

abuse_score es una puntuación de gravedad de 1 a 10 basada en la corroboración entre varios feeds: cuántas fuentes de amenazas independientes señalan la misma red. threat_type indica qué categoría activó el aviso — tor_exit, vpn o abuser. risk_tier agrupa la puntuación en crítico (8–10), alto (5–7) o medio (3–4). Prueba una comprobación en vivo en el comprobador de abuso de IP.
Sí. Cualquier respuesta con un país resuelto incluye currency_code y exchange_rate_usd — un tipo de referencia diario que cubre 154 monedas del mundo. Las monedas fuera de esa lista devuelven null en el tipo de cambio.
Cada respuesta con datos de país incluye languages (idiomas oficiales hablados), tld (dominios de nivel superior del código de país), capital y borders (códigos ISO de los países vecinos) — útil para localizar contenido o crear formularios sensibles al país sin una segunda llamada a la API.
GET /v1/ip/:ip/hostname realiza una búsqueda PTR en vivo mediante DNS-over-HTTPS y devuelve { ip, hostname }. Es una única búsqueda bajo demanda, no una base de datos en caché de enumeración de dominios — hostname es null si no existe ningún registro PTR. También hay una herramienta de navegador en /reverse-dns-lookup.
Sí. GET /v1/datasets/:kind devuelve exportaciones CSV para asn, ranges y geo-city — los mismos conjuntos de datos que consulta internamente la API, actualizados según el mismo calendario. geo-city admite un parámetro opcional ?source=primary (por defecto) o ?source=secondary, ya que los datos a nivel de ciudad se combinan de dos fuentes independientes con distinta cobertura.
Una clave Pro desbloquea un límite de 100 000 peticiones/día y la búsqueda masiva (POST /v1/ip/bulk, hasta 100 IPs por petición) — la búsqueda masiva no está disponible en absoluto en el plan gratuito. Enterprise (peticiones ilimitadas) añade un SLA personalizado y soporte dedicado. La precisión de ciudad/código postal/lat-lon se incluye en todos los planes, incluido el gratuito. POST /v1/keys emite una clave del plan gratuito (1000 peticiones/día, seguimiento de uso mediante GET /v1/keys/usage?key=X) — consulta los precios para mejorar tu plan.
Ambas cosas, cuando geo_precision lo permite. Tu propia IP (GET /v1/ip) siempre obtiene datos a nivel de ciudad de la red de borde a través de la que te conectas. Las búsquedas explícitas de IP (GET /v1/ip/:ip) obtienen datos a nivel de ciudad cuando esa IP está dentro de la cobertura del conjunto de datos a nivel de ciudad; en caso contrario, geo_precision baja a country y ciudad/estado/lat/lon devuelven null.
Add ?lang= to any request with one of: pt, fr, de, zh-TW, ko, zh-CN, ja-JP, es-ES, ar-SA, hi-IN (en is the default). This localizes country_name and continent into the target language. Field names and threat data stay in English regardless of locale.

Más allá de la IP: identidad, fraude y datos de referencia

Sí — GET /v1/email/:email comprueba la sintaxis, busca en vivo un registro MX y contrasta el dominio con una lista de bloqueo de correos desechables/temporales sincronizada. Gratis, sin registro. Prueba el Comprobador de Email.
Sí — GET /v1/phone/:number analiza cualquier número en formato E.164 o nacional para comprobar su validez, país, región y tipo de línea (móvil, fijo o VoIP) frente a un conjunto de datos de operadores MCC/MNC sincronizado. Prueba el Comprobador de Número de Teléfono.
GET /v1/fraud-score combina señales de amenaza de IP, capacidad de entrega de correo, validez de teléfono y detección de bots por User-Agent en una única puntuación de riesgo fusionada de 0 a 100 — lo único que ninguna de las principales API de inteligencia de IP independientes ofrece. Los cuatro parámetros son opcionales; una señal que no envíes simplemente está ausente, no se puntúa como limpia. Prueba el Comprobador de Puntuación de Fraude.
Sí — GET /v1/language identifica el idioma de cualquier texto entre 76 idiomas mediante análisis local de frecuencia de trigramas. No se envía ningún texto a un proveedor externo ni a un modelo de IA, y no se registra nada. Prueba el Detector de Idioma.
Sí — GET /v1/currency/convert y GET /v1/currency/rates exponen el mismo feed diario de tipos de cambio que ya alimenta exchange_rate_usd en cada búsqueda de IP/país, cubriendo 154 monedas, además de GET /v1/currency/history para el historial de 90 días. Prueba el Conversor de Divisas.
Sí — GET /v1/weather devuelve las condiciones actuales para cualquier nombre de lugar, código postal o par de coordenadas; añade &detail=1 para obtener una previsión horaria y una previsión a 3 días. Tanto el widget del tiempo de tu propia IP en la página de inicio como la herramienta de Consulta del Tiempo lo usan.
Sí — GET /v1/trademark/:serial actúa de proxy de la API TSDR de la USPTO para consultar el estado en vivo del expediente mediante el número de serie de 8 dígitos. El texto del estado del expediente es una obra del gobierno de EE. UU. y de dominio público, así que cada respuesta incluye un campo source/attribution; los datos de logotipo/imagen de la marca quedan deliberadamente fuera de alcance. No se admite la búsqueda por número de registro — hoy la USPTO solo documenta la ruta por número de serie. Prueba la herramienta de Búsqueda de Marcas.
Sí — GET /v1/patent/:number actúa de proxy de la API en vivo Patent File Wrapper de la USPTO para consultar el estado de concesión mediante el número de patente de utilidad de 7-8 dígitos. La cobertura empieza en las solicitudes presentadas en 2001, y los datos son de tramitación/bibliográficos (fecha de presentación, estado, inventores, abogado registrado) — no un grafo de citas, una familia de patentes ni un campo de estado legal como muestran Lens.org, Espacenet o Google Patents. Las patentes de diseño, de planta y de reedición todavía no están admitidas. Prueba la herramienta de Búsqueda de Patentes.

Titularidad, enrutamiento y lugares

Una única petición — GET /v1/search/:query. Detecta si has escrito una IP, un ASN, un código de país, un email o un número de teléfono, y luego reparte la consulta en el servidor entre todas las comprobaciones relevantes (búsqueda de IP, RPKI, empresa, whois, operador, dominios alojados, lugares) en paralelo. Una sola búsqueda solo consume una petición de tu presupuesto diario de límite de peticiones, no una por función.
Sí — GET /v1/ip/:ip/rpki (y la forma explícita GET /v1/rpki?asn=&prefix=) resuelve la validación de origen de ruta en vivo mediante RIPEstat, que agrega datos de ROA de los cinco RIR. El estado solo puede ser valid, invalid o unknown — nunca se infiere de ninguna otra señal. Prueba el Validador RPKI.
GET /v1/ip/:ip/company combina los datos del titular en RDAP con el propio nombre de la organización del ASN de la IP en una única confianza categórica (alta/media/baja/ninguna) — un único veredicto de "quién es el titular". GET /v1/ip/:ip/whois devuelve en su lugar el propio registro RDAP subyacente: el bloque de red, el tipo de asignación, las fechas de registro y todos los contactos de registrante/administrador/abuso disponibles, más cercano a la salida clásica de WHOIS. Prueba IP a Empresa o IP Whois.
De forma orientativa, y solo para IPs ya clasificadas como redes de operador móvil. GET /v1/ip/:ip/carrier compara de forma aproximada el nombre de la organización del ASN con un directorio de operadores MCC/MNC limitado al país de la IP. Deliberadamente no hay un único campo carrier: "X" — un nombre desnudo se leería como una afirmación en vivo por abonado que los datos no pueden respaldar honestamente. Prueba la herramienta de IP a Operador Móvil.
GET /v1/ip/:ip/hosted-domains encuentra dominios a través del nombre de host de DNS inversa de la IP y de los registros de transparencia de certificados (crt.sh) — no es una búsqueda genérica de IP inversa. El propio campo limitations de la respuesta detalla lo que estructuralmente no puede ver: IPs sin registro PTR, dominios no relacionados en hosting compartido y dominios que nunca se registraron en un log de CT. Prueba Dominios Alojados.
GET /v1/places/:ip geocodifica de forma inversa la ubicación a nivel de ciudad ya existente de una IP, y luego devuelve puntos de interés cercanos (restaurantes, parques, colegios, transporte), lugares emblemáticos, datos locales de delincuencia donde exista una fuente (solo Reino Unido y EE. UU.), y una estimación opcional del trayecto en coche bajo demanda cuando indicas un destino. Prueba Lugares.
connection_type en GET /v1/ip/:ip es una única etiqueta orientativa — mobile, datacenter o unknown — derivada de la misma clasificación de ASN que el objeto flags. Sustituye a la detección de conexión basada en recuento de dispositivos/NAT, algo que un Cloudflare Worker no puede observar (sin acceso a paquetes TCP/IP en bruto) — así que, en lugar de simularlo, los ASN sin clasificar devuelven honestamente unknown.

Inteligencia telefónica premium (consulta de operador y portabilidad)

Sí, como una capa premium sobre la comprobación local siempre gratuita. GET /v1/phone/:number sigue ejecutando primero la validación local gratuita (formato, región, tipo de línea — sin cambios, ver la pregunta anterior) y, si el presupuesto lo permite, añade en tiempo real carrier, original_carrier, is_ported, una clasificación phone_type, y un phone_region y country_prefix a nivel de localidad de nuestro proveedor de consulta de operadores en tiempo real. Se incluye un nombre completo country_name independientemente del nivel, y está localizado mediante ?lang=/Accept-Language exactamente igual que el campo country_name de cualquier otro endpoint — consulta lang/lang_source en la respuesta para ver qué idioma se aplicó realmente. El campo source de la respuesta indica qué nivel respondió: "premium" o "local".
100 consultas premium por dirección IP al mes en el plan Free, 1.000/mes por clave de API en Pro, y 5.000/mes en Enterprise — ver precios. Esto es adicional al presupuesto local gratuito existente para teléfonos (100/día en Free), que no tiene límite mensual propio.
Nada se rompe. GET /v1/phone/:number vuelve sin problemas al motor local gratuito durante el resto del mes — seguirás recibiendo una respuesta 200 completa con datos de formato, región y tipo de línea, solo sin los campos en vivo carrier/is_ported (que entonces devuelven null y source: "local"). Sin errores, sin necesidad de registrarte para seguir usando el plan gratuito.
Son dos clasificaciones independientes de dos motores distintos, mantenidas separadas a propósito en lugar de combinadas. line_type proviene de la comprobación local siempre gratuita (el propio enum de esa comprobación, p. ej. MOBILE, FIXED_LINE, PREMIUM_RATE). phone_type solo aparece cuando source es "premium" y usa las propias categorías del proveedor de consulta de operadores: mobile, fixed_line, voip, toll_free, premium_rate, shared_cost, personal_number, pager, uan, voicemail, o unknown. premium_rate merece especial atención si usas esto como señal de fraude — los números de tarificación especial (facturados a una tarifa por minuto más alta que una línea normal) son un vector habitual de fraude internacional de reparto de ingresos (IRSF), y este endpoint expone esa clasificación directamente en lugar de solo marcar VoIP.
Solo cuando realmente se ejecuta una consulta premium (es decir, tu presupuesto mensual de la pregunta anterior no está agotado) — la comprobación local gratuita nunca sale de los propios Cloudflare Workers de ipto.to. Cuando sí se ejecuta una consulta premium, el número se envía a nuestro proveedor de consulta de operadores únicamente para responder esa solicitud; no almacenamos la clave de API del proveedor en ningún lugar accesible públicamente, y según la política de registro estándar de ipto.to (ver Acerca de) tampoco registramos nosotros mismos el historial de consultas.

Cuenta, límites y privacidad

Todos los días a las 00:00 UTC. Una petición por encima del límite devuelve HTTP 429 con una cabecera Retry-After y un campo retry_after_seconds que indica exactamente cuánto falta para el restablecimiento.
Llama a POST /v1/keys para una clave gratuita instantánea, o inicia sesión: al iniciar sesión se crea automáticamente una cuenta en el nivel gratuito y se muestran tu clave y tu uso en el panel. Pro y Enterprise se contratan desde precios.
En la cabecera X-API-Key (preferible, porque las cadenas de consulta pueden acabar en los registros) o como ?api_key= en la URL. Las peticiones con clave se cuentan contra el presupuesto de esa clave y no contra el de tu IP. Consulta el uso de una clave con GET /v1/keys/usage?key=X.
Casi siempre. Una búsqueda en la barra de búsqueda o una llamada a una herramienta MCP cuenta como una petición aunque se ramifique en varias comprobaciones en el servidor. Las llamadas masivas se cobran por elemento: cada IP de POST /v1/ip/bulk y cada número de una consulta telefónica masiva cuenta individualmente. Los lugares cercanos y las consultas telefónicas premium también tienen presupuestos propios además del general.
No. ipto no registra las direcciones IP que consultas, no guarda historial de consultas ni crea perfiles; solo se conservan recuentos agregados de peticiones para planificar la capacidad. El historial de búsqueda y las consultas destacadas de la página de inicio viven solo en tu navegador. Más detalles en la página de privacidad.
Sí. La API admite CORS, está versionada bajo /v1/ y devuelve JSON estable. El nivel gratuito está pensado para particulares y uso ligero (1.000 peticiones/día); para tráfico de producción usa una clave Pro (100.000/día) o Enterprise (ilimitado, con SLA personalizado). Consulta precios y la página de estado para ver la salud en directo.