Pular navegação

Analytics e cobrança

Relatórios analíticos e uso de recursos.

Billing

Consumo

GET https://api.kinescope.io/v1/billing/usage

Retorna as estatísticas de consumo no período indicado, agrupadas conforme solicitado. Útil para faturamento e planejamento de capacidade.

Nossa API devolve o consumo de recursos por projeto para dar mais granularidade; você pode somar o total do seu lado.

Se precisar, informe project_id como parâmetro GET para filtrar os resultados (editado)

Os tipos de produto são: - CDN (bytes) - Codificação (min) - Armazenamento (bytes)

Responses
{
 "data": [
  {
   "date": "2024-01-01T00:00:00Z",
   "usage": 85456358,
   "product": "cdn",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-01T00:00:00Z",
   "usage": 65114706,
   "product": "cdn",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-01T00:00:00Z",
   "usage": 29962188,
   "product": "cdn",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-01T00:00:00Z",
   "usage": 904705,
   "product": "cdn"
  },
  {
   "date": "2024-01-01T00:00:00Z",
   "usage": 0,
   "product": "encoding"
  },
  {
   "date": "2024-01-01T00:00:00Z",
   "usage": 689510432,
   "product": "live_traffic"
  },
  {
   "date": "2024-01-01T00:00:00Z",
   "usage": 69567273960,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-01T00:00:00Z",
   "usage": 14996434987,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-01T00:00:00Z",
   "usage": 34667181,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-01T00:00:00Z",
   "usage": 130330116051,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-01T00:00:00Z",
   "usage": 4172549388,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-01T00:00:00Z",
   "usage": 16632753546,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-01T00:00:00Z",
   "usage": 556115506,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-01T00:00:00Z",
   "usage": 601660745,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-01T00:00:00Z",
   "usage": 10406392731,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-01T00:00:00Z",
   "usage": 6286301827,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-02T00:00:00Z",
   "usage": 37429638,
   "product": "cdn",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-02T00:00:00Z",
   "usage": 97450301,
   "product": "cdn",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-02T00:00:00Z",
   "usage": 560037,
   "product": "cdn"
  },
  {
   "date": "2024-01-02T00:00:00Z",
   "usage": 0,
   "product": "encoding"
  },
  {
   "date": "2024-01-02T00:00:00Z",
   "usage": 882356207,
   "product": "live_traffic"
  },
  {
   "date": "2024-01-02T00:00:00Z",
   "usage": 69567273960,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-02T00:00:00Z",
   "usage": 14996434987,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-02T00:00:00Z",
   "usage": 34667181,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-02T00:00:00Z",
   "usage": 130330116051,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-02T00:00:00Z",
   "usage": 4172549388,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-02T00:00:00Z",
   "usage": 16632753546,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-02T00:00:00Z",
   "usage": 556115506,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-02T00:00:00Z",
   "usage": 601660745,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-02T00:00:00Z",
   "usage": 10406392731,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-02T00:00:00Z",
   "usage": 6286301827,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-03T00:00:00Z",
   "usage": 12476546,
   "product": "cdn",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-03T00:00:00Z",
   "usage": 36428908,
   "product": "cdn",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-03T00:00:00Z",
   "usage": 618293,
   "product": "cdn"
  },
  {
   "date": "2024-01-03T00:00:00Z",
   "usage": 0,
   "product": "encoding"
  },
  {
   "date": "2024-01-03T00:00:00Z",
   "usage": 750185902,
   "product": "live_traffic"
  },
  {
   "date": "2024-01-03T00:00:00Z",
   "usage": 69567273960,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-03T00:00:00Z",
   "usage": 14996434987,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-03T00:00:00Z",
   "usage": 34667181,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-03T00:00:00Z",
   "usage": 130330116051,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-03T00:00:00Z",
   "usage": 4172549388,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-03T00:00:00Z",
   "usage": 16632753546,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-03T00:00:00Z",
   "usage": 556115506,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-03T00:00:00Z",
   "usage": 601660745,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-03T00:00:00Z",
   "usage": 10406392731,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-03T00:00:00Z",
   "usage": 6286301827,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-04T00:00:00Z",
   "usage": 42455143,
   "product": "cdn",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-04T00:00:00Z",
   "usage": 48519990,
   "product": "cdn",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-04T00:00:00Z",
   "usage": 89726,
   "product": "cdn"
  },
  {
   "date": "2024-01-04T00:00:00Z",
   "usage": 0,
   "product": "encoding"
  },
  {
   "date": "2024-01-04T00:00:00Z",
   "usage": 877485751,
   "product": "live_traffic"
  },
  {
   "date": "2024-01-04T00:00:00Z",
   "usage": 69567273960,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-04T00:00:00Z",
   "usage": 14996434987,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-04T00:00:00Z",
   "usage": 34667181,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-04T00:00:00Z",
   "usage": 130330116051,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-04T00:00:00Z",
   "usage": 4172549388,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-04T00:00:00Z",
   "usage": 16632753546,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-04T00:00:00Z",
   "usage": 556115506,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-04T00:00:00Z",
   "usage": 601660745,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-04T00:00:00Z",
   "usage": 10406392731,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-04T00:00:00Z",
   "usage": 6286301827,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-05T00:00:00Z",
   "usage": 114946977,
   "product": "cdn",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-05T00:00:00Z",
   "usage": 45670557,
   "product": "cdn",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-05T00:00:00Z",
   "usage": 79114792,
   "product": "cdn",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-05T00:00:00Z",
   "usage": 1443490,
   "product": "cdn"
  },
  {
   "date": "2024-01-05T00:00:00Z",
   "usage": 0,
   "product": "encoding"
  },
  {
   "date": "2024-01-05T00:00:00Z",
   "usage": 802691136,
   "product": "live_traffic"
  },
  {
   "date": "2024-01-05T00:00:00Z",
   "usage": 69567273960,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-05T00:00:00Z",
   "usage": 14996434987,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-05T00:00:00Z",
   "usage": 34667181,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-05T00:00:00Z",
   "usage": 130330116051,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-05T00:00:00Z",
   "usage": 4172549388,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-05T00:00:00Z",
   "usage": 16632753546,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-05T00:00:00Z",
   "usage": 556115506,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-05T00:00:00Z",
   "usage": 601660745,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-05T00:00:00Z",
   "usage": 10406392731,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-05T00:00:00Z",
   "usage": 6286301827,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-06T00:00:00Z",
   "usage": 7342272,
   "product": "cdn",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-06T00:00:00Z",
   "usage": 24953092,
   "product": "cdn",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-06T00:00:00Z",
   "usage": 38352386,
   "product": "cdn",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-06T00:00:00Z",
   "usage": 511222,
   "product": "cdn"
  },
  {
   "date": "2024-01-06T00:00:00Z",
   "usage": 0,
   "product": "encoding"
  },
  {
   "date": "2024-01-06T00:00:00Z",
   "usage": 679400275,
   "product": "live_traffic"
  },
  {
   "date": "2024-01-06T00:00:00Z",
   "usage": 69567273960,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-06T00:00:00Z",
   "usage": 14996434987,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-06T00:00:00Z",
   "usage": 34667181,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-06T00:00:00Z",
   "usage": 130330116051,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-06T00:00:00Z",
   "usage": 4172549388,
   "product": "storage",
   "project_id": "<UUID>"
  },
  {
   "date": "2024-01-06T00:00:00Z",
   "usage":
// … truncated

Analytics

Visão geral

GET https://api.kinescope.io/v1/analytics/overview

Retorna estatísticas gerais de reprodução no período indicado: totais de todo o período (data.total), as mesmas métricas por intervalos de tempo (data.timeline) e listas de top por sistema operacional, dispositivo, navegador, país e cidade (data.top). Passe video_id para obter estatísticas de um único vídeo em vez de todo o workspace.

Parâmetros de consulta
ParâmetroDescrição
fromObrigatório. Início do período — YYYY-MM-DD ou YYYY-MM-DDTHH:MM:SSZ.
toObrigatório. Fim do período, mesmos formatos de from.
group_timeOpcional. Intervalo de tempo para os pontos de data.timeline: minute (1m), hour, day (padrão), week, month ou um intervalo como 15m.
video_idOpcional. ID do vídeo para o qual obter estatísticas. Sem ele — todo o workspace.
external_idOpcional. ID externo do vídeo, se um tiver sido atribuído a ele.
Campos da resposta: data.total, data.timeline[]
CampoDescrição
viewsNúmero de visualizações.
unique_viewsNúmero de espectadores únicos.
player_loadsNúmero de carregamentos do player.
durationDuração total de reprodução.
watch_timeTempo total assistido.
onlineNúmero de espectadores online.
dateInício do intervalo de tempo. Não é usado em data.total (0001-01-01T00:00:00Z).
Campos da resposta: listas de data.top
CampoDescrição
nameValor: sistema operacional, dispositivo, navegador, país ou cidade.
codeCódigo do país com duas letras (somente em countries).
viewsNúmero de visualizações.
player_loadsNúmero de carregamentos do player.
unique_viewsNúmero de espectadores únicos.
Responses
{
  "meta": {
    "time": {
      "from": "2024-01-01T00:00:00Z",
      "to": "2024-01-31T00:00:00Z",
      "timezone": "Europe/Moscow"
    }
  },
  "data": {
    "total": {
      "views": 15432,
      "duration": 5123400,
      "watch_time": 4820153,
      "player_loads": 18902,
      "date": "0001-01-01T00:00:00Z",
      "unique_views": 11097,
      "online": 12
    },
    "timeline": [
      {
        "views": 541,
        "duration": 178320,
        "watch_time": 167415,
        "player_loads": 662,
        "date": "2024-01-10T21:00:00Z",
        "unique_views": 412,
        "online": 12
      },
      {
        "views": 488,
        "duration": 160910,
        "watch_time": 151002,
        "player_loads": 594,
        "date": "2024-01-11T21:00:00Z",
        "unique_views": 389,
        "online": 9
      }
    ],
    "top": {
      "oses": [
        {
          "name": "Android",
          "views": 8123,
          "player_loads": 9904,
          "unique_views": 6011
        },
        {
          "name": "iOS",
          "views": 5304,
          "player_loads": 6612,
          "unique_views": 3980
        }
      ],
      "devices": [
        {
          "name": "desktop",
          "views": 8204,
          "player_loads": 10012,
          "unique_views": 6002
        },
        {
          "name": "mobile",
          "views": 6011,
          "player_loads": 7210,
          "unique_views": 4410
        }
      ],
      "browsers": [
        {
          "name": "Chrome",
          "views": 7611,
          "player_loads": 9200,
          "unique_views": 5590
        },
        {
          "name": "Safari",
          "views": 4310,
          "player_loads": 5544,
          "unique_views": 3120
        }
      ],
      "countries": [
        {
          "name": "Russia",
          "code": "RU",
          "views": 11230,
          "player_loads": 13660,
          "unique_views": 8305
        },
        {
          "name": "Brazil",
          "code": "BR",
          "views": 2044,
          "player_loads": 2610,
          "unique_views": 1509
        }
      ],
      "cities": [
        {
          "name": "Moscow",
          "views": 4870,
          "player_loads": 5810,
          "unique_views": 3560
        },
        {
          "name": "São Paulo",
          "views": 1140,
          "player_loads": 1470,
          "unique_views": 830
        }
      ]
    }
  }
}

Personalizado

GET https://api.kinescope.io/v1/analytics

Retorna um recorte personalizado de analytics: você escolhe quais campos cada linha contém (fields), como as linhas são agrupadas no tempo e por entidades (group, group_entities) e a ordenação (order). Cada linha contém os campos solicitados.

Parâmetros de consulta
ParâmetroDescrição
fromObrigatório. Início do período — YYYY-MM-DD ou YYYY-MM-DDTHH:MM:SSZ.
toObrigatório. Fim do período, mesmos formatos de from.
fieldsNecessário para obter linhas de dados: os campos que cada linha contém — veja a tabela abaixo. Repita o parâmetro para solicitar vários: fields=view&fields=play.
groupOpcional. Intervalo de tempo para date em cada linha: minute (1m), hour, day (padrão), week, month ou um intervalo como 15m.
group_entitiesOpcional. Dimensões para agrupar as linhas, por exemplo group_entities=video_id. Repita o parâmetro para agrupar por várias dimensões.
limitOpcional. Número máximo de linhas.
orderOpcional. Ordenação como field.asc ou field.desc; várias — separadas por vírgula: order=view.desc,date.asc. Padrão: date.desc. Os campos ordenáveis estão marcados com sim na coluna Ordenação da tabela abaixo; date também pode ser ordenado, mas apenas junto com group. Um campo sem direção significa asc.
<dimensão>=<valor>Filtro opcional por qualquer dimensão da tabela abaixo: video_id, external_id, project_id, folder_id, type, device, os, browser, city, country_code. Repita o parâmetro para passar vários valores: country_code=US&country_code=DE.
Campos (fields)
CampoTipoOrdenaçãoDescrição
video_iddimensãosimID do vídeo.
external_iddimensãosimID externo do vídeo.
project_iddimensãosimID do projeto.
folder_iddimensãosimID da pasta.
typedimensãonãoTipo de conteúdo: vod ou live.
devicedimensãosimTipo de dispositivo: desktop, mobile, tablet, tv.
osdimensãosimSistema operacional.
browserdimensãosimNavegador.
citydimensãosimCidade.
country_codedimensãosimCódigo do país.
viewmétricasimNúmero de visualizações.
unique_viewmétricanãoNúmero de espectadores únicos.
playmétricasimNúmero de inícios de reprodução.
pausemétricasimNúmero de pausas.
seekmétricasimNúmero de mudanças de posição (seeks).
replaymétricasimNúmero de reproduções repetidas.
endmétricanãoNúmero de visualizações assistidas até o fim.
ratemétricanãoNúmero de mudanças de velocidade de reprodução.
player_initmétricasimNúmero de inicializações do player.
player_loadmétricasimNúmero de carregamentos do player.
watch_timemétricanãoTempo total assistido.
durationmétricanãoDuração máxima do vídeo entre os vídeos da linha.
buffering_timemétricasimTempo total de buffering.
buffering_countmétricasimNúmero de eventos de buffering.
change_qualitymétricanãoNúmero de trocas de qualidade, manuais e automáticas.
heatmapmétricanãoMapa de engajamento: para cada segundo do vídeo, o número de espectadores que o assistiram. Retornado como um objeto {"<segundo>": <espectadores>}.

Quando folder_id ou project_id é solicitado, a resposta também inclui folder_name / project_name — o nome da pasta ou do projeto.

Responses
{
  "meta": {
    "order": {
      "view": "desc"
    },
    "time": {
      "from": "2024-01-01T00:00:00Z",
      "to": "2024-01-31T00:00:00Z",
      "timezone": "Europe/Moscow"
    },
    "group_entities": [
      "video_id"
    ]
  },
  "data": [
    {
      "video_id": "4iUMUmb63dLAvnbsMRkSUX",
      "date": "2024-01-10T21:00:00Z",
      "view": 245,
      "unique_view": 187,
      "player_load": 312,
      "watch_time": 45210
    },
    {
      "video_id": "4iUMUmb63dLAvnbsMRkSUX",
      "date": "2024-01-11T21:00:00Z",
      "view": 231,
      "unique_view": 175,
      "player_load": 298,
      "watch_time": 43180
    },
    {
      "video_id": "2nQqTmb63dLAvnbsMRkSUZ",
      "date": "2024-01-10T21:00:00Z",
      "view": 198,
      "unique_view": 154,
      "player_load": 244,
      "watch_time": 39750
    }
  ]
}

Mapa de calor

GET https://api.kinescope.io/v1/analytics/video/:video_id/heatmap

Retorna o mapa de calor de engajamento do vídeo — o mesmo gráfico de engajamento exibido no painel. Para cada segundo do vídeo, a API retorna a parcela de espectadores que assistiram àquele segundo. Os valores variam de 0 a 1, onde 1 significa que todos os espectadores assistiram àquele momento.

Responses
{
  "meta": {
    "time": {
      "from": "2024-01-01T00:00:00Z",
      "to": "2024-01-31T00:00:00Z",
      "timezone": "Europe/Moscow"
    }
  },
  "data": {
    "points": [
      {
        "value": 1,
        "second": 0
      },
      {
        "value": 0.98,
        "second": 1
      },
      {
        "value": 0.95,
        "second": 2
      },
      {
        "value": 0.45,
        "second": 300
      }
    ]
  }
}

Origens de tráfego

GET https://api.kinescope.io/v1/analytics/video/:video_id/referrer

Retorna as páginas de origem dos espectadores do vídeo (fontes de tráfego) com o número de visualizações e carregamentos do player de cada origem. Informe format=csv ou format=xlsx para baixar o relatório como arquivo; sem o parâmetro, a resposta é JSON.

Responses
{
  "meta": {
    "time": {
      "from": "2024-01-01T00:00:00Z",
      "to": "2024-01-31T00:00:00Z",
      "timezone": "Europe/Moscow"
    }
  },
  "data": [
    {
      "url": "https://example.com/lesson-1",
      "views": 245,
      "player_loads": 312,
      "video_id": "4iUMUmb63dLAvnbsMRkSUX"
    },
    {
      "url": "https://example.org/courses/",
      "views": 187,
      "player_loads": 230,
      "video_id": "4iUMUmb63dLAvnbsMRkSUX"
    }
  ]
}

Espectadores online do evento

GET https://api.kinescope.io/v1/analytics/events/:event_id/online

Retorna o timeline de espectadores simultâneos de uma transmissão do evento: um ponto por intervalo group_time. O pico de espectadores é o máximo de timeline[].online.

stream_id é opcional. Se omitido, a API usa o stream atual do evento (pending ou on-air; para um evento único, também um stream finished). Se o evento não tiver stream atual, stream_id é null e timeline é um array vazio.

from e to são opcionais. Por padrão o período é o próprio stream: de started_at até finished_at, ou até agora se a transmissão ainda estiver ao vivo.

Parâmetros de caminho
ParâmetroDescrição
event_idID do evento ao vivo.
Parâmetros de consulta
ParâmetroDescrição
stream_idOpcional. ID do stream. Deve pertencer ao evento. Sem ele — o stream atual do evento. Para um stream pending o timeline é vazio.
fromOpcional. Início do período — YYYY-MM-DD ou YYYY-MM-DDTHH:MM:SSZ. Padrão: início do stream.
toOpcional. Fim do período, mesmos formatos que from. Padrão: fim do stream, ou agora se o stream estiver ao vivo.
group_timeOpcional. Intervalo dos pontos de timeline: 1m (padrão), hour, day, week, month ou um intervalo como 5m.
Campos da resposta
CampoDescrição
stream_idStream para o qual o timeline foi gerado. null se o evento não tiver stream atual.
timelinePontos de cada intervalo group_time. Array vazio quando não há dados ou o stream está pending.
timeline[].dateInício do intervalo (RFC3339).
timeline[].onlineEspectadores simultâneos no intervalo.
Responses
{
  "meta": {
    "time": {
      "from": "2024-01-01T18:40:00Z",
      "to": "2024-01-01T19:10:00Z",
      "timezone": "Europe/Moscow"
    }
  },
  "data": {
    "stream_id": "60e64b83-21c4-4502-a138-a06635f8210e",
    "timeline": [
      {
        "date": "2024-01-01T18:40:00Z",
        "online": 1204
      },
      {
        "date": "2024-01-01T18:41:00Z",
        "online": 1487
      },
      {
        "date": "2024-01-01T18:42:00Z",
        "online": 1523
      }
    ]
  }
}