Pular para o conteúdo
Entrar Lista de espera

Métricas

GET /v1/insights escopo read

Cartões, melhores posts, resultado por canal (uma linha por conta quando a rede tem várias; channel filtra uma), resumo e a leitura de 48 h.

CabeçalhosAuthorization: Bearer praeko_… e X-Praeko-Contract: en. Sempre envie os dois.

Parâmetros

Nome Onde Descrição
channel consulta Id da conta quando a rede tem várias (de GET /v1/channels). Sem ele, o canal padrão.

Exemplo

curl "https://praeko.app/v1/insights" \
  -H "Authorization: Bearer $PRAEKO_KEY" \
  -H "X-Praeko-Contract: en"

Resposta

Status de sucesso Quando
200 Sucesso.
Resposta 200
{
  "period": {
    "from": "2026-10-08T14:02:11.482Z",
    "to": "2026-11-07T14:02:11.482Z"
  },
  "previousPeriod": {
    "from": "2026-09-08T14:02:11.482Z",
    "to": "2026-10-08T14:02:11.482Z"
  },
  "filters": {
    "channel": null,
    "type": null,
    "tag": null
  },
  "cards": {
    "posts": 6,
    "followers": 1842,
    "followersChange": 37,
    "reactions": 412,
    "comments": 58,
    "engagement": 9,
    "overallEngagement": 9,
    "views": 5120,
    "shares": null,
    "saves": null,
    "reach": null,
    "watchTimeMin": null,
    "avgWatchTimeSec": null,
    "followersGained": null,
    "previous": {
      "posts": 4,
      "followers": 1805,
      "followersChange": null,
      "reactions": 301,
      "comments": 40,
      "engagement": 8,
      "overallEngagement": 8,
      "views": 3900,
      "shares": null,
      "saves": null,
      "reach": null,
      "watchTimeMin": null,
      "avgWatchTimeSec": null,
      "followersGained": null
    },
    "change": {
      "posts": {
        "absolute": 2,
        "pct": 50
      },
      "followers": {
        "absolute": 37,
        "pct": 2
      },
      "reactions": {
        "absolute": 111,
        "pct": 37
      },
      "comments": {
        "absolute": 18,
        "pct": 45
      },
      "engagement": null,
      "views": {
        "absolute": 1220,
        "pct": 31
      },
      "shares": null,
      "saves": null,
      "reach": null,
      "watchTimeMin": null,
      "avgWatchTimeSec": null,
      "followersGained": null
    }
  },
  "sources": {
    "current": {},
    "previous": {},
    "bufferAggregate": false,
    "aggregateUpdatedAt": null,
    "scope": "all"
  },
  "topPosts": [
    {
      "title": "O teste que só falhava na segunda",
      "network": "youtube",
      "type": "short",
      "publishedAt": "2026-11-01T12:00:00.000Z",
      "reactions": 87,
      "comments": 12,
      "views": 1240,
      "engagement": 8,
      "url": "https://youtu.be/dQw4w9WgXcQ",
      "thumb": "https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg",
      "thumbType": "url",
      "noMetrics": false
    }
  ],
  "channels": [
    {
      "network": "youtube",
      "name": "Canal do Marcone",
      "avatar": "/v1/channels/youtube/avatar",
      "posts": 6,
      "reactions": 412,
      "comments": 58,
      "views": 5120,
      "engagement": 9,
      "shares": null,
      "saves": null,
      "reach": null,
      "watchTimeMin": null,
      "avgWatchTimeSec": null
    }
  ],
  "summary": [
    {
      "title": "Os Shorts técnicos lideram",
      "text": "Os posts com bastidores de código tiveram o dobro das visualizações dos outros."
    }
  ],
  "posts": {
    "total": 1,
    "page": 1,
    "limit": 50,
    "sort": "reactions",
    "direction": "desc",
    "items": [
      {
        "id": "youtube:dQw4w9WgXcQ",
        "network": "youtube",
        "channelId": "01KA3V0R5D8M2WQ7X4HT9NZ1BF",
        "title": "O teste que só falhava na segunda",
        "type": "short",
        "publishedAt": "2026-11-01T12:00:00Z",
        "url": "https://youtu.be/dQw4w9WgXcQ",
        "origin": "imported",
        "thumb": "https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg",
        "thumbType": "url",
        "reactions": 87,
        "comments": 12,
        "views": 1240,
        "shares": null,
        "saves": null,
        "reach": null,
        "watchTimeMin": null,
        "avgWatchTimeSec": null,
        "engagement": 8,
        "noMetrics": false,
        "postId": null,
        "tags": [
          "testes"
        ]
      }
    ]
  },
  "reading48h": [],
  "reading48hText": "| Data | Rede | Post | Views | Curtidas | Comentários | Seguidores | Fonte |\n|---|---|---|---|---|---|---|---|",
  "collection": {
    "last": "2026-11-07T14:02:11.482Z",
    "postsWithMetrics": 6,
    "postsWithoutMetrics": 0,
    "collecting": false,
    "storedReadings": 24,
    "imported": 12,
    "lastImport": "2026-11-07T14:02:11.482Z"
  }
}

Os números null são "a rede não informa" (nunca zero). Filtros: from, to, channel, network, type, tag, sort, page, limit.

Erros

Sem erros específicos desta rota além dos comuns.

Erros de qualquer rota

Status code Quando
401 unauthorized Faltou o cabeçalho Authorization: Bearer ….
401 invalid_api_key A chave não existe.
401 revoked_api_key A chave foi revogada.
401 expired_api_key A chave expirou.
403 forbidden O escopo da chave não basta para esta rota (veja o selo de escopo).
429 rate_limited Passou do limite de requisições por minuto.

O corpo de todo erro é { "error": { "code", "message", "details"? } }. Veja todos os códigos.

Testar

Testar

O teste ao vivo usa a sua chave e a sua conta. Para quem não entrou, fica desligado.

Entre para testar
Dúvida ou erro nesta página? contato@praeko.appVer .md

Digite para buscar páginas, rotas e códigos de erro.