/api/v6/urlshortener/links/{domain}/{code}/statsEstadísticas del enlace
Totales del rango, serie por día o por hora y desgloses por país, dispositivo, sistema, navegador u origen.
Alcance y límites
API key con el servicio urlshortener habilitado
120 solicitudes por minuto
- Ventanas de hasta 366 días por día, y de hasta 31 días por hora.
- Hasta 100 valores por dimensión.
- Además, cada consulta gasta unidades de un cupo de 120 por minuto de tu organización, según su costo: 2 por la consulta y 3 por cada 31 días del rango. 30 días gastan 5; un año, 38. Sin unidades,
429conRetry-After.
Analítica de un enlace en una ventana de días: los totales del rango, una serie por día o por hora y los valores con más visitas de cada dimensión. Los días y las horas son de Colombia (America/Bogota).
totals.clicksytotals.uniqueClicksson los del rango;firstClickAtylastClickAt, los de toda la vida del enlace.- La serie es dispersa: los días u horas sin visitas no vienen. Complétalos en cero si vas a graficar.
- Cada dimensión trae los
topvalores con más visitas y, si queda resto, una fila__other. Una visita sin dato para una dimensión (sin país, o llegada sin origen) no aparece en ella: sus filas pueden sumar menos que el total. referreres solo el dominio de origen (www.facebook.com), sin la ruta. Las visitas directas no tienen fila: sontotals.clicksmenos la suma dereferrer.deviceesmobile,tabletodesktop;os,Android,iOS,Windows,macOS,Linux,ChromeOSuOther;browser,Chrome,Safari,Firefox,Edge,Opera,Samsung Internet,UC BrowseruOther.countryes el código ISO (CO).
uniqueClicks cuenta la primera visita del día desde cada navegador. En un rango de varios días es la suma de cada día, no personas distintas. Las respuestas pueden tener hasta un minuto de antigüedad (cabecera X-Cache).
Parámetros de ruta
domaindomain. Se compara en minúsculas. Nombra al enlace que hoy responde en esa URL corta; para uno de un dominio que ya no es de tu organización (domainStatus: released), añade domainStatus=released.codeParámetros de consulta
domainStatusreleased, el enlace es el de un dominio que ya no es de tu organización (el que la lista devuelve con domainStatus: released), aunque ese nombre sea hoy el de otro dominio con el mismo código. Sin él, domain nombra al dominio que hoy se llama así. Otro valor responde 400 VALIDATION_INVALID_PARAMETER.releasedfromAAAA-MM-DD en hora de Colombia, incluido. Por defecto, 29 días antes de to (la ventana es de 30 días).toAAAA-MM-DD en hora de Colombia, incluido. Por defecto, hoy.granularityday admite ventanas de hasta 366 días; hour, de hasta 31.dayhourPor defecto: day
dimensionscountry, subdivision, city, device, os, browser, referrer. Por defecto country,device,os,browser,referrer. Los nombres que no existen se ignoran.topPor defecto: 10
Respuestas
Analítica del enlace.
{
"success": true,
"data": {
"domain": "h0b.co",
"code": "a1b2c3d",
"shortUrl": "https://h0b.co/a1b2c3d",
"range": { "from": "2026-08-25", "to": "2026-09-23", "granularity": "day", "timezone": "America/Bogota" },
"totals": {
"clicks": 128,
"uniqueClicks": 96,
"firstClickAt": "2026-09-20T15:31:40Z",
"lastClickAt": "2026-09-23T18:22:10Z"
},
"series": [
{ "at": "2026-09-20", "clicks": 40, "uniqueClicks": 31 },
{ "at": "2026-09-23", "clicks": 88, "uniqueClicks": 65 }
],
"dimensions": {
"country": [{ "value": "CO", "clicks": 110 }, { "value": "__other", "clicks": 12 }],
"device": [{ "value": "mobile", "clicks": 101 }, { "value": "desktop", "clicks": 27 }]
}
},
"meta": {
"requestId": "8f0c0e2a4b1d4c8fae2b7a91e0c5d3f6",
"timestamp": "2026-09-23T18:30:00+00:00",
"responseTimeMs": 7.2
}
}Una fecha que no es AAAA-MM-DD, from posterior a to, una ventana mayor a la permitida o una granularidad que no existe.
Credenciales inválidas o faltantes.
La API key no tiene habilitado el acortador (o está apagado para tu organización), la key no se puede usar desde la red de la petición, o la organización no está activa.
No existe un enlace de tu organización con ese dominio y código (o fue eliminado). Un enlace de otra organización también responde 404: no se revela que exista.
Se excedió el límite de solicitudes.
La consulta tardó demasiado y la detuvimos. Pasa con consultas muy grandes para organizaciones con muchos enlaces: acótala (menos días, menos secciones, más filtros). Repetirla igual no ayuda.
Errores posibles
Códigos que este endpoint puede devolver en error.code. El detalle completo está en el catálogo.
AUTH_REQUIREDNo se envió un token Bearer y cada llamada lo requiere.401AUTH_INVALID_KEYLa API key no se reconoce: formato equivocado, revocada o vencida.403AUTH_SERVICE_NOT_ALLOWEDLa key no tiene permitido el servicio detrás de este endpoint.403AUTH_IP_NOT_ALLOWEDLa key solo funciona desde ciertas redes y tu IP no está entre ellas.403ACCOUNT_NOT_ACTIVETu organización está suspendida o cerrada.400STATS_RANGE_INVALIDEl rango o la granularidad de estadísticas son inválidos.404LINK_NOT_FOUNDNo hay un enlace con ese dominio y código.429RATE_TPS_EXCEEDEDExcediste el cupo de tu organización para este endpoint.504INFRA_DB_QUERY_TIMEOUTUna consulta interna tardó demasiado y se cortó.