Geolocalizar una IP
Una dirección IP por sí sola no dice casi nada útil hasta que se resuelve, y resolverla bien significa mucho más que mostrar una bandera. Este endpoint convierte una IP en un lugar concreto — país, región, ciudad y el operador de red detrás de ella — para que la lógica de precios, cumplimiento y fraude trabaje con datos reales y no con suposiciones.
Ejecútela online
Ejecute esto en nuestros servidores con su cuenta. Las herramientas gratuitas corren en su navegador; esta cobra de su saldo del KIT según el precio de arriba.
Una dirección sin lugar es solo un número
Las direcciones IP se asignan en bloques a proveedores de internet, empresas de hosting y organizaciones, y esos bloques quedan registrados ante autoridades regionales que publican quién los administra. La geolocalización funciona comparando una IP contra esos datos de registro más señales de enrutamiento de red, y produce una estimación razonable de dónde se origina realmente la conexión.
Qué le entrega la respuesta
La respuesta incluye país, región o estado, ciudad cuando es posible resolverla, y el número de sistema autónomo (ASN) que identifica al operador de red — la diferencia entre un proveedor residencial, un operador móvil, una red corporativa o un proveedor de hosting. Los resultados a nivel de ciudad son naturalmente menos precisos que los de país, porque dependen de qué tan detallados sean los datos de registro y enrutamiento para ese bloque.
Por qué el ASN importa tanto como el punto en el mapa
Dos IPs pueden estar en la misma ciudad y significar cosas muy distintas según su ASN. Una puede pertenecer a un proveedor de banda ancha residencial, otra a un rango de hosting en la nube con miles de clientes sin relación entre sí detrás. Mostrar el ASN junto a la ubicación permite construir reglas que un campo de país por sí solo no puede sostener.
De los registros regionales al enrutamiento en tiempo real
Los registros regionales de internet que asignan los bloques de IP existen desde los inicios de la red, originalmente para evitar que el espacio de direcciones se agotara de forma desordenada. Esa misma estructura de registro, combinada con cómo se enruta el tráfico hoy, es lo que permite geolocalizar de forma automática en el momento de la solicitud, sin consultas manuales.
Pensado para integrarse en flujos existentes
Llama el endpoint, recibe un task_id, y el resultado llega por su webhook firmado o por un enlace firmado válido por 24 horas. Está diseñado para insertarse en flujos de registro, checkout o registros de tráfico sin convertirse en el cuello de botella de ninguno.
Qué puede hacer con ella
Precios y moneda localizados
Muestre precios en la moneda y el idioma del visitante resolviendo su país y región antes de renderizar el contenido.
Restricciones de contenido por región
Aplique reglas de acceso geográfico para contenido u ofertas que solo tienen licencia en ciertos países.
Contexto para prevención de fraude
Compare la dirección de envío con la ubicación resuelta de la IP para marcar pedidos que merecen una segunda revisión.
Analítica de tráfico por red
Segmente la analítica por ASN para separar visitantes residenciales del tráfico proveniente de hosting o redes corporativas.
Preguntas frecuentes
¿Qué tan precisa es la geolocalización de IP?
Los resultados a nivel de país suelen ser confiables porque los bloques de IP están registrados por país; los resultados a nivel de ciudad son una estimación y pueden fallar, sobre todo en redes móviles y VPN, ya que las IPs cambian de mano y los registros no siempre están al día.
¿Esta api de geolocalizacion de ip es gratuita?
No hay capa gratuita: las capas gratis se abusan y ralentizan a todos. El acceso funciona con un saldo prepago de ForHosting KIT: se recarga desde $10.00 (no caduca) y cada solicitud se cobra a su precio publicado, así que una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
¿Funciona con direcciones IPv6?
Sí, tanto IPv4 como IPv6 se resuelven a través del mismo endpoint.
¿Qué es el ASN y por qué se incluye?
El ASN identifica al operador de red dueño del bloque de IP, lo que indica si el tráfico viene de una conexión residencial, un operador móvil, una red empresarial o un proveedor de hosting — contexto útil que el nombre de una ciudad por sí solo no ofrece.
¿Puedo geolocalizar muchas IPs en bloque?
Cada llamada resuelve una IP; para volúmenes grandes, envíe una solicitud por IP y deje que el modelo asíncrono procese el volumen en paralelo.
¿Cómo recibo el resultado?
Obtiene un task_id de inmediato, y la ubicación resuelta llega por su webhook firmado o por un enlace firmado válido por 24 horas.
¿Guardan las IPs que envío?
No. Los datos se eliminan al vencer el periodo de retención y nunca se usan para entrenar modelos.
¿Qué pasa si una consulta falla?
Se reintenta automáticamente hasta tres veces antes de devolver un error claro, y nunca se cobra una solicitud que no se completó.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/verify/ip-geo \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/verify/ip-geo", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/verify/ip-geo",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/verify/ip-geo", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/verify/ip-geo", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"items": [
"valor-1",
"valor-2"
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "verify.ip_geo",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |