{"openapi":"3.1.0","info":{"title":"API pública de Limecount","version":"1.0.0","description":"Estadísticas agregadas de tus webs, de solo lectura. Sin datos por visitante. Autenticación con una clave `lck_...` creada en Ajustes de la organización (Bearer). Límites: 60 peticiones/min por clave y 300/min por organización. Los desgloses omiten las filas con menos de 3. Las fechas son días naturales en la zona horaria de la web."},"servers":[{"url":"https://api.limecount.com/api/v1"}],"tags":[{"name":"Webs"},{"name":"Estadísticas"},{"name":"Documentación"}],"security":[{"bearerAuth":[]}],"paths":{"/sites":{"get":{"operationId":"listSites","summary":"Webs a las que da acceso la clave","tags":["Webs"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Lista de webs.","headers":{"RateLimit-Limit":{"description":"Peticiones permitidas en la ventana de 1 minuto.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Peticiones que quedan en la ventana actual.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Segundos hasta que se reinicia la ventana.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Site"}},"meta":{"type":"object","properties":{"total":{"type":"integer","description":"Número de webs devueltas."}},"required":["total"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}}}},"401":{"description":"`invalid_api_key`: falta, mal formada, revocada u organización borrada.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"`site_not_allowed` (la web no está en la clave o es de otra organización) o `insufficient_scope`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"`rate_limited`: 60 peticiones/min por clave y 300/min por organización.","headers":{"RateLimit-Limit":{"description":"Peticiones permitidas en la ventana de 1 minuto.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Peticiones que quedan en la ventana actual.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Segundos hasta que se reinicia la ventana.","schema":{"type":"integer"}},"Retry-After":{"description":"Segundos que hay que esperar antes de reintentar.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/stats/overview":{"get":{"operationId":"getOverview","summary":"KPIs del periodo","description":"Los mismos indicadores que el panel, con su `kind` (`exact`/`estimated`).","tags":["Estadísticas"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"site_id","in":"query","required":true,"description":"Id de la web (campo `id` de `/v1/sites`).","schema":{"type":"string"}},{"name":"period","in":"query","required":false,"description":"Periodo, en días naturales de la zona horaria de la web. Con `custom` hay que enviar `from` y `to`.","schema":{"type":"string","enum":["today","7d","30d","month","lastMonth","90d","12m","year","custom"],"default":"30d"}},{"name":"from","in":"query","required":false,"description":"Primer día (YYYY-MM-DD, inclusivo). Sin `period` implica `period=custom`; con otro periodo es 400.","schema":{"type":"string","format":"date"}},{"name":"to","in":"query","required":false,"description":"Último día (YYYY-MM-DD, inclusivo). Sin `period` implica `period=custom`; con otro periodo es 400.","schema":{"type":"string","format":"date"}},{"name":"compare","in":"query","required":false,"description":"Con `1` añade el periodo anterior de la misma duración.","schema":{"type":"string","enum":["0","1"],"default":"0"}},{"name":"page","in":"query","required":false,"description":"Solo vistas de esa ruta (por ejemplo `/precios`).","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"entry","in":"query","required":false,"description":"Solo visitas cuya página de entrada es esa ruta.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"source","in":"query","required":false,"description":"Fuente de tráfico (`google`, `newsletter`...).","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"utm_source","in":"query","required":false,"description":"Valor de utm_source.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"utm_medium","in":"query","required":false,"description":"Valor de utm_medium.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"utm_campaign","in":"query","required":false,"description":"Valor de utm_campaign.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"country","in":"query","required":false,"description":"País (código ISO 3166-1 alfa-2).","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"region","in":"query","required":false,"description":"Región (nombre en inglés).","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"city","in":"query","required":false,"description":"Ciudad (nombre en inglés).","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"device","in":"query","required":false,"description":"`desktop`, `mobile`, `tablet` u `other`.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"browser","in":"query","required":false,"description":"Navegador.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"os","in":"query","required":false,"description":"Sistema operativo.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"event","in":"query","required":false,"description":"Solo ese evento personalizado (no puede empezar por `_`).","schema":{"type":"string","minLength":1,"maxLength":512}}],"responses":{"200":{"description":"KPIs.","headers":{"RateLimit-Limit":{"description":"Peticiones permitidas en la ventana de 1 minuto.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Peticiones que quedan en la ventana actual.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Segundos hasta que se reinicia la ventana.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Overview"},"meta":{"$ref":"#/components/schemas/Meta"}},"required":["data","meta"],"additionalProperties":false}}}},"400":{"description":"`validation_failed` (parámetro no válido o desconocido), `invalid_range` (fechas imposibles, rango demasiado largo, más de 31 días con `interval=hour`) o `page_filter_required`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"`invalid_api_key`: falta, mal formada, revocada u organización borrada.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"`site_not_allowed` (la web no está en la clave o es de otra organización) o `insufficient_scope`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"`site_not_found`: la web no existe o está borrada.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"`rate_limited`: 60 peticiones/min por clave y 300/min por organización.","headers":{"RateLimit-Limit":{"description":"Peticiones permitidas en la ventana de 1 minuto.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Peticiones que quedan en la ventana actual.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Segundos hasta que se reinicia la ventana.","schema":{"type":"integer"}},"Retry-After":{"description":"Segundos que hay que esperar antes de reintentar.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"`stats_unavailable`: el origen de datos no responde; reintenta.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/stats/timeseries":{"get":{"operationId":"getTimeseries","summary":"Serie temporal","description":"Un punto por intervalo, con ceros incluidos. `week` empieza en lunes (ISO) y `quarter` es trimestre natural, ambos en la zona de la web; los intervalos de los extremos pueden ser parciales. `hour` admite como máximo 31 días.","tags":["Estadísticas"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"site_id","in":"query","required":true,"description":"Id de la web (campo `id` de `/v1/sites`).","schema":{"type":"string"}},{"name":"period","in":"query","required":false,"description":"Periodo, en días naturales de la zona horaria de la web. Con `custom` hay que enviar `from` y `to`.","schema":{"type":"string","enum":["today","7d","30d","month","lastMonth","90d","12m","year","custom"],"default":"30d"}},{"name":"from","in":"query","required":false,"description":"Primer día (YYYY-MM-DD, inclusivo). Sin `period` implica `period=custom`; con otro periodo es 400.","schema":{"type":"string","format":"date"}},{"name":"to","in":"query","required":false,"description":"Último día (YYYY-MM-DD, inclusivo). Sin `period` implica `period=custom`; con otro periodo es 400.","schema":{"type":"string","format":"date"}},{"name":"compare","in":"query","required":false,"description":"Con `1` añade el periodo anterior de la misma duración.","schema":{"type":"string","enum":["0","1"],"default":"0"}},{"name":"page","in":"query","required":false,"description":"Solo vistas de esa ruta (por ejemplo `/precios`).","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"entry","in":"query","required":false,"description":"Solo visitas cuya página de entrada es esa ruta.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"source","in":"query","required":false,"description":"Fuente de tráfico (`google`, `newsletter`...).","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"utm_source","in":"query","required":false,"description":"Valor de utm_source.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"utm_medium","in":"query","required":false,"description":"Valor de utm_medium.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"utm_campaign","in":"query","required":false,"description":"Valor de utm_campaign.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"country","in":"query","required":false,"description":"País (código ISO 3166-1 alfa-2).","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"region","in":"query","required":false,"description":"Región (nombre en inglés).","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"city","in":"query","required":false,"description":"Ciudad (nombre en inglés).","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"device","in":"query","required":false,"description":"`desktop`, `mobile`, `tablet` u `other`.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"browser","in":"query","required":false,"description":"Navegador.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"os","in":"query","required":false,"description":"Sistema operativo.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"event","in":"query","required":false,"description":"Solo ese evento personalizado (no puede empezar por `_`).","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"interval","in":"query","required":false,"description":"Intervalo de agrupación.","schema":{"type":"string","enum":["hour","day","week","month","quarter"],"default":"day"}}],"responses":{"200":{"description":"Serie.","headers":{"RateLimit-Limit":{"description":"Peticiones permitidas en la ventana de 1 minuto.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Peticiones que quedan en la ventana actual.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Segundos hasta que se reinicia la ventana.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Timeseries"},"meta":{"$ref":"#/components/schemas/Meta"}},"required":["data","meta"],"additionalProperties":false}}}},"400":{"description":"`validation_failed` (parámetro no válido o desconocido), `invalid_range` (fechas imposibles, rango demasiado largo, más de 31 días con `interval=hour`) o `page_filter_required`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"`invalid_api_key`: falta, mal formada, revocada u organización borrada.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"`site_not_allowed` (la web no está en la clave o es de otra organización) o `insufficient_scope`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"`site_not_found`: la web no existe o está borrada.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"`rate_limited`: 60 peticiones/min por clave y 300/min por organización.","headers":{"RateLimit-Limit":{"description":"Peticiones permitidas en la ventana de 1 minuto.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Peticiones que quedan en la ventana actual.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Segundos hasta que se reinicia la ventana.","schema":{"type":"integer"}},"Retry-After":{"description":"Segundos que hay que esperar antes de reintentar.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"`stats_unavailable`: el origen de datos no responde; reintenta.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/stats/breakdown":{"get":{"operationId":"getBreakdown","summary":"Desglose por dimensión","description":"Filas ordenadas por la métrica principal. Las filas con menos de 3 se omiten (`data.omitted`). `next_pages` exige el filtro `page`.","tags":["Estadísticas"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"site_id","in":"query","required":true,"description":"Id de la web (campo `id` de `/v1/sites`).","schema":{"type":"string"}},{"name":"period","in":"query","required":false,"description":"Periodo, en días naturales de la zona horaria de la web. Con `custom` hay que enviar `from` y `to`.","schema":{"type":"string","enum":["today","7d","30d","month","lastMonth","90d","12m","year","custom"],"default":"30d"}},{"name":"from","in":"query","required":false,"description":"Primer día (YYYY-MM-DD, inclusivo). Sin `period` implica `period=custom`; con otro periodo es 400.","schema":{"type":"string","format":"date"}},{"name":"to","in":"query","required":false,"description":"Último día (YYYY-MM-DD, inclusivo). Sin `period` implica `period=custom`; con otro periodo es 400.","schema":{"type":"string","format":"date"}},{"name":"compare","in":"query","required":false,"description":"Con `1` añade el periodo anterior de la misma duración.","schema":{"type":"string","enum":["0","1"],"default":"0"}},{"name":"page","in":"query","required":false,"description":"Solo vistas de esa ruta (por ejemplo `/precios`).","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"entry","in":"query","required":false,"description":"Solo visitas cuya página de entrada es esa ruta.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"source","in":"query","required":false,"description":"Fuente de tráfico (`google`, `newsletter`...).","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"utm_source","in":"query","required":false,"description":"Valor de utm_source.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"utm_medium","in":"query","required":false,"description":"Valor de utm_medium.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"utm_campaign","in":"query","required":false,"description":"Valor de utm_campaign.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"country","in":"query","required":false,"description":"País (código ISO 3166-1 alfa-2).","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"region","in":"query","required":false,"description":"Región (nombre en inglés).","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"city","in":"query","required":false,"description":"Ciudad (nombre en inglés).","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"device","in":"query","required":false,"description":"`desktop`, `mobile`, `tablet` u `other`.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"browser","in":"query","required":false,"description":"Navegador.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"os","in":"query","required":false,"description":"Sistema operativo.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"event","in":"query","required":false,"description":"Solo ese evento personalizado (no puede empezar por `_`).","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"dimension","in":"query","required":true,"description":"Dimensión a desglosar.","schema":{"type":"string","enum":["pages","entries","sources","utm_source","utm_medium","utm_campaign","countries","regions","cities","devices","browsers","os","events","prev_pages","next_pages"]}},{"name":"limit","in":"query","required":false,"description":"Máximo de filas.","schema":{"type":"integer","minimum":1,"maximum":1000,"default":10}}],"responses":{"200":{"description":"Desglose.","headers":{"RateLimit-Limit":{"description":"Peticiones permitidas en la ventana de 1 minuto.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Peticiones que quedan en la ventana actual.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Segundos hasta que se reinicia la ventana.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Breakdown"},"meta":{"$ref":"#/components/schemas/Meta"}},"required":["data","meta"],"additionalProperties":false}}}},"400":{"description":"`validation_failed` (parámetro no válido o desconocido), `invalid_range` (fechas imposibles, rango demasiado largo, más de 31 días con `interval=hour`) o `page_filter_required`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"`invalid_api_key`: falta, mal formada, revocada u organización borrada.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"`site_not_allowed` (la web no está en la clave o es de otra organización) o `insufficient_scope`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"`site_not_found`: la web no existe o está borrada.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"`rate_limited`: 60 peticiones/min por clave y 300/min por organización.","headers":{"RateLimit-Limit":{"description":"Peticiones permitidas en la ventana de 1 minuto.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Peticiones que quedan en la ventana actual.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Segundos hasta que se reinicia la ventana.","schema":{"type":"integer"}},"Retry-After":{"description":"Segundos que hay que esperar antes de reintentar.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"`stats_unavailable`: el origen de datos no responde; reintenta.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/stats/goals":{"get":{"operationId":"getGoals","summary":"Objetivos y conversiones","description":"Objetivos de la web con sus conversiones y tasa sobre las visitas.","tags":["Estadísticas"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"site_id","in":"query","required":true,"description":"Id de la web (campo `id` de `/v1/sites`).","schema":{"type":"string"}},{"name":"period","in":"query","required":false,"description":"Periodo, en días naturales de la zona horaria de la web. Con `custom` hay que enviar `from` y `to`.","schema":{"type":"string","enum":["today","7d","30d","month","lastMonth","90d","12m","year","custom"],"default":"30d"}},{"name":"from","in":"query","required":false,"description":"Primer día (YYYY-MM-DD, inclusivo). Sin `period` implica `period=custom`; con otro periodo es 400.","schema":{"type":"string","format":"date"}},{"name":"to","in":"query","required":false,"description":"Último día (YYYY-MM-DD, inclusivo). Sin `period` implica `period=custom`; con otro periodo es 400.","schema":{"type":"string","format":"date"}},{"name":"compare","in":"query","required":false,"description":"Con `1` añade el periodo anterior de la misma duración.","schema":{"type":"string","enum":["0","1"],"default":"0"}},{"name":"page","in":"query","required":false,"description":"Solo vistas de esa ruta (por ejemplo `/precios`).","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"entry","in":"query","required":false,"description":"Solo visitas cuya página de entrada es esa ruta.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"source","in":"query","required":false,"description":"Fuente de tráfico (`google`, `newsletter`...).","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"utm_source","in":"query","required":false,"description":"Valor de utm_source.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"utm_medium","in":"query","required":false,"description":"Valor de utm_medium.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"utm_campaign","in":"query","required":false,"description":"Valor de utm_campaign.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"country","in":"query","required":false,"description":"País (código ISO 3166-1 alfa-2).","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"region","in":"query","required":false,"description":"Región (nombre en inglés).","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"city","in":"query","required":false,"description":"Ciudad (nombre en inglés).","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"device","in":"query","required":false,"description":"`desktop`, `mobile`, `tablet` u `other`.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"browser","in":"query","required":false,"description":"Navegador.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"os","in":"query","required":false,"description":"Sistema operativo.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"event","in":"query","required":false,"description":"Solo ese evento personalizado (no puede empezar por `_`).","schema":{"type":"string","minLength":1,"maxLength":512}}],"responses":{"200":{"description":"Objetivos.","headers":{"RateLimit-Limit":{"description":"Peticiones permitidas en la ventana de 1 minuto.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Peticiones que quedan en la ventana actual.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Segundos hasta que se reinicia la ventana.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Goals"},"meta":{"$ref":"#/components/schemas/Meta"}},"required":["data","meta"],"additionalProperties":false}}}},"400":{"description":"`validation_failed` (parámetro no válido o desconocido), `invalid_range` (fechas imposibles, rango demasiado largo, más de 31 días con `interval=hour`) o `page_filter_required`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"`invalid_api_key`: falta, mal formada, revocada u organización borrada.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"`site_not_allowed` (la web no está en la clave o es de otra organización) o `insufficient_scope`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"`site_not_found`: la web no existe o está borrada.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"`rate_limited`: 60 peticiones/min por clave y 300/min por organización.","headers":{"RateLimit-Limit":{"description":"Peticiones permitidas en la ventana de 1 minuto.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Peticiones que quedan en la ventana actual.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Segundos hasta que se reinicia la ventana.","schema":{"type":"integer"}},"Retry-After":{"description":"Segundos que hay que esperar antes de reintentar.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"`stats_unavailable`: el origen de datos no responde; reintenta.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/stats/funnels":{"get":{"operationId":"getFunnels","summary":"Embudos","description":"Embudos de la web con sus pasos y cifras (los propios o, si no tiene, los dos por defecto).","tags":["Estadísticas"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"site_id","in":"query","required":true,"description":"Id de la web (campo `id` de `/v1/sites`).","schema":{"type":"string"}},{"name":"period","in":"query","required":false,"description":"Periodo, en días naturales de la zona horaria de la web. Con `custom` hay que enviar `from` y `to`.","schema":{"type":"string","enum":["today","7d","30d","month","lastMonth","90d","12m","year","custom"],"default":"30d"}},{"name":"from","in":"query","required":false,"description":"Primer día (YYYY-MM-DD, inclusivo). Sin `period` implica `period=custom`; con otro periodo es 400.","schema":{"type":"string","format":"date"}},{"name":"to","in":"query","required":false,"description":"Último día (YYYY-MM-DD, inclusivo). Sin `period` implica `period=custom`; con otro periodo es 400.","schema":{"type":"string","format":"date"}},{"name":"compare","in":"query","required":false,"description":"Con `1` añade el periodo anterior de la misma duración.","schema":{"type":"string","enum":["0","1"],"default":"0"}},{"name":"page","in":"query","required":false,"description":"Solo vistas de esa ruta (por ejemplo `/precios`).","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"entry","in":"query","required":false,"description":"Solo visitas cuya página de entrada es esa ruta.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"source","in":"query","required":false,"description":"Fuente de tráfico (`google`, `newsletter`...).","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"utm_source","in":"query","required":false,"description":"Valor de utm_source.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"utm_medium","in":"query","required":false,"description":"Valor de utm_medium.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"utm_campaign","in":"query","required":false,"description":"Valor de utm_campaign.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"country","in":"query","required":false,"description":"País (código ISO 3166-1 alfa-2).","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"region","in":"query","required":false,"description":"Región (nombre en inglés).","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"city","in":"query","required":false,"description":"Ciudad (nombre en inglés).","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"device","in":"query","required":false,"description":"`desktop`, `mobile`, `tablet` u `other`.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"browser","in":"query","required":false,"description":"Navegador.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"os","in":"query","required":false,"description":"Sistema operativo.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"event","in":"query","required":false,"description":"Solo ese evento personalizado (no puede empezar por `_`).","schema":{"type":"string","minLength":1,"maxLength":512}}],"responses":{"200":{"description":"Embudos.","headers":{"RateLimit-Limit":{"description":"Peticiones permitidas en la ventana de 1 minuto.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Peticiones que quedan en la ventana actual.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Segundos hasta que se reinicia la ventana.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"funnels":{"type":"array","items":{"$ref":"#/components/schemas/Funnel"}}},"required":["funnels"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/Meta"}},"required":["data","meta"],"additionalProperties":false}}}},"400":{"description":"`validation_failed` (parámetro no válido o desconocido), `invalid_range` (fechas imposibles, rango demasiado largo, más de 31 días con `interval=hour`) o `page_filter_required`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"`invalid_api_key`: falta, mal formada, revocada u organización borrada.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"`site_not_allowed` (la web no está en la clave o es de otra organización) o `insufficient_scope`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"`site_not_found`: la web no existe o está borrada.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"`rate_limited`: 60 peticiones/min por clave y 300/min por organización.","headers":{"RateLimit-Limit":{"description":"Peticiones permitidas en la ventana de 1 minuto.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Peticiones que quedan en la ventana actual.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Segundos hasta que se reinicia la ventana.","schema":{"type":"integer"}},"Retry-After":{"description":"Segundos que hay que esperar antes de reintentar.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"`stats_unavailable`: el origen de datos no responde; reintenta.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/openapi.json":{"get":{"operationId":"getOpenApi","summary":"Esta especificación","tags":["Documentación"],"security":[],"responses":{"200":{"description":"Documento OpenAPI 3.1.","content":{"application/json":{"schema":{"type":"object"}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Clave de API `lck_...` (Ajustes de la organización > Claves de API)."}},"schemas":{"Error":{"type":"object","description":"Formato de error. `error.code` es estable (snake_case); `code` y `message` se repiten en la raíz por compatibilidad con el resto de la API.","required":["error"],"properties":{"statusCode":{"type":"integer"},"code":{"type":"string"},"message":{"type":"string"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}}},"Meta":{"type":"object","required":["site_id","from","to","timezone","history"],"properties":{"site_id":{"type":"string"},"from":{"type":"string","format":"date","description":"Primer día incluido."},"to":{"type":"string","format":"date","description":"Último día incluido."},"timezone":{"type":"string","description":"Zona horaria IANA de la web."},"interval":{"type":"string","enum":["hour","day","week","month","quarter"]},"previous":{"type":"object","properties":{"from":{"type":"string","format":"date"},"to":{"type":"string","format":"date"}},"required":["from","to"],"additionalProperties":false},"history":{"type":"object","properties":{"days":{"type":"integer","description":"Días de historial que guarda el plan de la organización."},"availableFrom":{"type":"string","format":"date","description":"Primer día con datos visibles, en la zona de la web. Los datos anteriores no se devuelven."},"limited":{"type":"boolean","description":"true si el rango pedido empezaba antes de `availableFrom` y se ha recortado (`from` ya es el recortado; si todo el rango queda fuera la respuesta va vacía)."}},"required":["days","availableFrom","limited"],"additionalProperties":false}}},"Site":{"type":"object","properties":{"id":{"type":"string"},"domain":{"type":"string"},"name":{"type":"string"},"timezone":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"verifiedAt":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["id","domain","name","timezone","createdAt","verifiedAt"],"additionalProperties":false},"Kpi":{"type":"object","properties":{"value":{"oneOf":[{"type":"number"},{"type":"null"}]},"previous":{"oneOf":[{"type":"number"},{"type":"null"}]},"kind":{"type":"string","enum":["exact","estimated"]}},"required":["value","kind"],"additionalProperties":false},"Overview":{"type":"object","properties":{"kpis":{"type":"object","properties":{"pageviews":{"$ref":"#/components/schemas/Kpi"},"visits":{"$ref":"#/components/schemas/Kpi"},"avgEngagementMs":{"$ref":"#/components/schemas/Kpi"},"bounceRate":{"$ref":"#/components/schemas/Kpi"},"events":{"$ref":"#/components/schemas/Kpi"}},"required":["pageviews","visits","avgEngagementMs","bounceRate","events"],"additionalProperties":false,"description":"KPIs del periodo: pageviews, visits, avgEngagementMs (tiempo de lectura medio en ms), bounceRate (0..1) y events. `previous` dentro de cada KPI solo con `compare=1`."},"sessions":{"$ref":"#/components/schemas/Kpi"},"visitors":{"$ref":"#/components/schemas/Kpi"},"measurement":{"type":"object","properties":{"basic":{"type":"integer"},"enhanced":{"type":"integer"},"legacy":{"type":"integer"}},"required":["basic","enhanced","legacy"],"additionalProperties":false}},"required":["kpis","sessions","visitors","measurement"],"additionalProperties":false},"TimeseriesPoint":{"type":"object","required":["date","visits","pageviews","events"],"properties":{"date":{"type":"string","description":"Inicio del intervalo en la zona de la web: `YYYY-MM-DD` (día, semana en lunes ISO, mes o trimestre natural) o fecha-hora con desfase (`hour`)."},"visits":{"type":"integer","description":"Visitas (estimadas)."},"pageviews":{"type":"integer","description":"Páginas vistas."},"events":{"type":"integer","description":"Eventos personalizados."}}},"Timeseries":{"type":"object","properties":{"points":{"type":"array","items":{"$ref":"#/components/schemas/TimeseriesPoint"}},"previous":{"type":"array","items":{"$ref":"#/components/schemas/TimeseriesPoint"}}},"required":["points"],"additionalProperties":false},"BreakdownRow":{"type":"object","required":["value","pageviews","visits","events","share"],"properties":{"value":{"type":"string"},"country":{"type":"string","description":"Solo en `regions` y `cities`."},"region":{"type":"string","description":"Solo en `cities`."},"visits":{"type":"integer","description":"Visitas (estimadas)."},"pageviews":{"type":"integer","description":"Páginas vistas."},"events":{"type":"integer","description":"Eventos personalizados."},"share":{"type":"number","description":"Fracción 0..1 de la métrica principal."}}},"Breakdown":{"type":"object","properties":{"dimension":{"type":"string","enum":["pages","entries","sources","utm_source","utm_medium","utm_campaign","countries","regions","cities","devices","browsers","os","events","prev_pages","next_pages"]},"rows":{"type":"array","items":{"$ref":"#/components/schemas/BreakdownRow"}},"total":{"type":"integer","description":"Valores distintos de la dimensión."},"omitted":{"type":"integer","description":"Filas devueltas por el origen y omitidas por tener menos de 3 en la métrica principal."}},"required":["dimension","rows","total","omitted"],"additionalProperties":false},"Goals":{"type":"object","properties":{"visits":{"type":"object","properties":{"value":{"oneOf":[{"type":"number"},{"type":"null"}]},"previous":{"oneOf":[{"type":"number"},{"type":"null"}]}},"required":["value"],"additionalProperties":false},"totals":{"type":"object","properties":{"conversions":{"$ref":"#/components/schemas/Kpi"},"rate":{"$ref":"#/components/schemas/Kpi"}},"required":["conversions","rate"],"additionalProperties":false},"goals":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string","enum":["event","path"]},"match":{"type":"string"},"conversions":{"$ref":"#/components/schemas/Kpi"},"rate":{"$ref":"#/components/schemas/Kpi"}},"required":["id","name","type","match","conversions","rate"],"additionalProperties":false}}},"required":["visits","totals","goals"],"additionalProperties":false},"Funnel":{"type":"object","properties":{"funnel":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"isDefault":{"type":"boolean"},"virtual":{"type":"boolean","description":"true = embudo por defecto (la web no tiene propios)."}},"required":["id","name","isDefault","virtual"],"additionalProperties":false},"visits":{"$ref":"#/components/schemas/Kpi"},"steps":{"type":"array","items":{"type":"object","required":["type","match","label","count","rateFromPrevious","rateFromVisits","exceedsPrevious"],"properties":{"type":{"type":"string","enum":["event","path"]},"match":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"},"previous":{"type":"integer","description":"Solo con `compare=1`."},"rateFromPrevious":{"oneOf":[{"type":"number"},{"type":"null"}]},"rateFromVisits":{"oneOf":[{"type":"number"},{"type":"null"}]},"exceedsPrevious":{"type":"boolean"}}}},"mixedModes":{"type":"boolean"}},"required":["funnel","visits","steps","mixedModes"],"additionalProperties":false}}}}