Vistear

Referencia de la API

API de Vistear

Los mismos números que ve el sitio, en JSON: series de audiencia de hasta 25 canales a la vez y hasta 90 días, métricas diarias por canal y la curva de cada transmisión. Una API REST de solo lectura, con clave y cuota mensual, para el plan Datos. Citá a Vistear si publicás los datos.

Base URLhttps://www.vistear.com/api/v1

Endpoints

Autenticación

Mandá la clave en el encabezado Authorization: Bearer vk_live_…. Las claves se crean en Mi cuenta y se muestran una sola vez. Usala desde tu servidor, nunca en el navegador: cualquiera que vea la página podría copiarla.

Los endpoints con clave también responden a una sesión Pro del sitio (es lo que usan el comparador y las métricas). Los endpoints abiertos no piden clave ni descuentan cuota.

curl "https://www.vistear.com/api/v1/series?channels=UCTHaNTsP7hsVgBxARZTuajw&range=7d" \
  -H "Authorization: Bearer $VISTEAR_API_KEY" -i

Ids de canales y videos

  • Canales: el UC… de YouTube, kick:<id> para Kick y twitch:<id> para Twitch, tal como aparecen en las direcciones de Canales.
  • Videos: los 11 caracteres de YouTube, kick:<canal>:<stream> o twitch:<canal>:<stream>.
  • Todas las fechas y horas van en UTC (el sitio las muestra en hora de Buenos Aires). Los parámetros from y to son días de Buenos Aires.

Cuota y límites

Datos trae 50.000 consultas con clave por mes calendario (API y MCP juntos). Si necesitás más, comprá paquetes de 10.000 consultas desde Mi cuenta: se pagan una vez, no vencen y se usan cuando se agota la cuota del mes (el encabezado X-Credits-Remaining muestra el saldo). La cuota se reinicia el día 1 de cada mes a las 00:00 UTC, que son las 21:00 del día anterior en Argentina. En Mi cuenta ves cuánto usaste este mes y cada día. Cada respuesta con clave trae:

  • X-RateLimit-Limit: consultas por mes de tu plan.
  • X-RateLimit-Remaining: las que te quedan este mes (sin contar paquetes).
  • X-RateLimit-Reset: el próximo reinicio (día 1 del mes que viene), en segundos epoch. X-RateLimit-Period vale month.

Además hay un tope de ráfaga: hasta 300 consultas por minuto por cuenta (API y MCP juntos). Si lo pasás, la respuesta es 429 con error: "rate" y Retry-After, y esa consulta no descuenta de tu cuota ni de tus paquetes. Cada respuesta con clave trae X-RateLimit-Burst-Limit y X-RateLimit-Burst-Remaining.

Hasta 25 canales por consulta. Las respuestas con clave no se cachean (private, no-store).

Errores

Los errores son JSON con un campo error y, cuando ayuda, un message o una lista de issues. Nunca devolvemos un 200 con datos vacíos por una falla.

  • 400Parámetros inválidos (id, rango, más de 25 canales, fechas). El mensaje dice cuál.
  • 401Falta la clave, es inválida o fue revocada (o la sesión del sitio venció).
  • 403La clave pertenece a un plan sin API, o la cuenta está bloqueada.
  • 404Canal o video no encontrado.
  • 429Cuota mensual agotada y sin paquetes (error quota), o más de 300 consultas en un minuto (error rate). Retry-After dice cuántos segundos esperar.
  • 502La base de datos no respondió. Reintentá con espera.
Ejemplo
HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 50000
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1791158400
X-RateLimit-Period: month
Retry-After: 626400

{
  "error": "quota",
  "message": "cuota mensual agotada (se reinicia el 1 de octubre): comprá paquetes de consultas en https://www.vistear.com/cuenta",
  "limit": 50000,
  "used": 50000,
  "period": "month",
  "resetAt": "2026-10-01T00:00:00.000Z"
}

Forma de las series

Las series vienen en una grilla densa: t0 es el primer instante (milisegundos epoch, UTC), stepMs el paso y n la cantidad de puntos. Cada serie trae viewers y likes con n valores, y el punto i corresponde a t0 + i × stepMs.

Un null significa que no había transmisión (o dato) en ese momento. Hasta 6 horas el paso es un minuto; 12 horas usa 2 minutos, 24 y 48 horas usan promedios de 5 y 10 minutos; 7, 30 y 90 días, el pico de cada hora. Kick y Twitch no reportan likes.

Recorrer una serie
const { t0, stepMs, series } = data;
for (const s of series) {
  s.viewers.forEach((v, i) => {
    if (v === null) return; // sin transmisión
    const at = new Date(t0 + i * stepMs);
    console.log(s.label, at.toISOString(), v);
  });
}

Datos

Claves de API con 50.000 consultas por mes, rangos de 90 días y uso comercial. Desde USD 49 por mes.

Conseguir una clave

¿Algo no cierra o necesitás otro endpoint? Escribinos a hola@vistear.com. La metodología está en las preguntas frecuentes.