Medir clics de un enlace
Un enlace corto que nadie mide es solo una redirección. Esta API recupera los números detrás de una URL corta —el total de clics, cuándo se creó y a dónde apunta— y lo entrega como datos estructurados que puede conectar directo a un panel, un reporte o un modelo de atribución, sin tener que raspar la interfaz de ningún panel de analítica.
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.
La pregunta que responde
Una vez que un enlace corto está activo, la siguiente pregunta es simple: ¿funcionó? Cuántas personas hicieron clic en él. Responder eso mirando un panel web no escala más allá de un puñado de enlaces, y la mayoría de los paneles no se diseñaron para consultarse mediante programación. dev.short_url_stats existe para convertir esa pregunta en una llamada de API: le da un enlace corto y le devuelve el número detrás de él.
Qué contiene realmente la respuesta
Envía el enlace corto (o su identificador) sobre el que quiere datos, y la tarea devuelve el total de clics que el enlace ha recibido, la fecha en que se creó y el destino al que apunta: la señal directa que necesita sin volverse invasiva. Como todos los endpoints de aquí, la llamada es asíncrona: recibe un task_id de inmediato, y las estadísticas llegan por webhook firmado o por un enlace firmado de 24 horas cuando están listas.
Quién necesita el conteo por enlace
Equipos de crecimiento y marketing que comparan el desempeño de canales en campañas con la misma oferta pero distintos enlaces cortos. Equipos de producto que validan si un enlace de referidos dentro de la app realmente se está usando antes de invertir más en esa función. Equipos de soporte y antifraude que revisan si un enlace con tráfico inusual está siendo mal utilizado. Cualquiera con un link-in-bio o un esquema de afiliados que necesita el rendimiento de cada enlace sin entrar a un panel distinto por cada uno.
Qué dice y qué no dice el conteo
Vale la pena decirlo con claridad: el número devuelto es un total agregado de clics, no un registro por visitante. No le dice quién hizo clic, desde qué país, en qué dispositivo ni a través de qué referente: cuenta cuántas veces se siguió el enlace. Eso lo mantiene simple y respetuoso con la privacidad, pero también significa que mide alcance, no audiencia: si quiere comparar canales, cree un enlace corto distinto por canal con dev.short_url, y la diferencia entre sus conteos es la comparación.
Cómo encaja en un pipeline de reportes
Como los resultados llegan como datos estructurados por webhook, puede programar una consulta de estadísticas al terminar una campaña, o pedirla bajo demanda cuando alguien pregunte '¿cómo va ese enlace?'. Combínela con dev.short_url para que la creación de enlaces y su rendimiento vivan en el mismo flujo en vez de en dos herramientas desconectadas.
Qué puede hacer con ella
Comparación de campañas
Consulte los clics de cada enlace corto en una campaña multicanal para ver qué canal realmente generó tráfico, no solo cuál tuvo más impresiones.
Validación de programa de referidos
Revise si los enlaces de referidos generados dentro de su app reciben clics antes de decidir si ampliar esa función.
Revisión de anomalías
Consulte el conteo de clics de un enlace con un pico de tráfico inusual para evaluar si el volumen parece orgánico o automatizado.
Reportes de afiliados y link-in-bio
Genere un resumen de rendimiento por enlace para creadores o socios sin darles acceso al panel completo de su cuenta.
Preguntas frecuentes
¿Qué datos devuelve la API de estadísticas de enlaces?
El total de clics que ha recibido un enlace corto, la fecha en que se creó y la URL de destino a la que apunta.
¿Rastrea usuarios individuales?
No: el dato que devuelve es un total agregado de clics, no un registro personal ligado a visitantes identificables.
¿Muestra desde dónde o desde qué dispositivo se hizo clic?
No: devuelve el total de clics, no geografía, referentes ni datos de dispositivo. Para comparar fuentes, cree un enlace corto distinto por canal con dev.short_url y compare sus conteos.
¿Puedo obtener estadísticas de cualquier enlace corto o solo de los míos?
Solo de los enlaces cortos creados en su cuenta; no puede consultar analítica de enlaces que no le pertenecen.
¿Hay alguna forma gratuita de probarla?
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.
¿Cómo recibo las estadísticas?
Por webhook firmado (recomendado) o por un enlace firmado válido por 24 horas, siguiendo el mismo patrón de entrega de toda la plataforma.
¿Cuánto cuesta cada solicitud de estadísticas?
0.002 dólares por solicitud, y nunca se cobra una solicitud que falla tras los reintentos.
¿Puedo pedir estadísticas de muchos enlaces a la vez?
Sí: envíe una solicitud por enlace de forma asíncrona y recolecte los resultados conforme llega cada webhook, sin necesidad de revisar un panel enlace por enlace.
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, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/dev/short-url-stats \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"id":"abc123"}'const res = await fetch("https://api.kit.forhosting.com/dev/short-url-stats", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"id": "abc123"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/short-url-stats",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"id": "abc123"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/short-url-stats", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"id":"abc123"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"id":"abc123"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/short-url-stats", 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
{
"id": "abc123"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.short_url_stats",
"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. |