Rayrovisk Agency API

API interna para sincronização e análise do Instagram profissional da Rayra.

Autenticação

Os endpoints /v1/* exigem o token de sessão da pessoa autenticada, no header:

Authorization: Bearer <token>

O token é o mesmo emitido no login do produto. Nunca coloque o token na URL ou compartilhe seu valor.

Uso rápido

cd /Users/roberto/Projects/rayrovisk-agency

# Verificar o servidor
curl https://api-staging.rayrovisk.com/health

# As chamadas abaixo exigem o token de sessão da pessoa autenticada.

# Verificar a conexão com o Instagram
curl https://api-staging.rayrovisk.com/v1/connections/instagram \
  -H "Authorization: Bearer $ACCESS_TOKEN"

# Sincronizar perfil, publicações e engajamento
curl -X POST https://api-staging.rayrovisk.com/v1/sync \
  -H "Authorization: Bearer $ACCESS_TOKEN"

# Consultar o perfil
curl https://api-staging.rayrovisk.com/v1/profile \
  -H "Authorization: Bearer $ACCESS_TOKEN"

# Consultar as 25 publicações mais recentes
curl "https://api-staging.rayrovisk.com/v1/media?limit=25&offset=0" \
  -H "Authorization: Bearer $ACCESS_TOKEN"

# Consultar o resumo analítico
curl "https://api-staging.rayrovisk.com/v1/analytics/summary" \
  -H "Authorization: Bearer $ACCESS_TOKEN"

Endpoints

MétodoRotaAcessoDescrição
GET/healthPúblicoConfirma que o servidor está ativo.
GET/v1/connections/instagramBearerMostra conta conectada, permissões e expiração.
POST/v1/connections/instagram/authorizeBearer + assinaturaInicia a autorização OAuth do Instagram para a pessoa autenticada.
POST/v1/connections/instagram/refreshBearerRenova o token de longa duração.
POST/v1/syncBearerBusca todas as páginas de mídia e atualiza o engajamento.
GET/v1/profileBearerRetorna o último snapshot do perfil.
GET/v1/media?limit=25&offset=0BearerRetorna mídias com curtidas, comentários, views, alcance, salvos e compartilhamentos. Aceita de 1 a 500 itens; use offset para percorrer o total em páginas.
GET/v1/analytics/summaryBearerCalcula totais, médias, taxas, cobertura, desempenho por formato e rankings de publicações.
GET/v1/public-profile?handle=usuarioBearerBusca pública limitada de um perfil do Instagram (ADR-0020), sem exigir assinatura. Sujeita a limite por pessoa e a uma chave de desativação.
GET/POST/webhooks/metaMetaVerificação e recebimento de webhooks assinados.

Resposta da sincronização

{
  "profileMediaCount": 260,
  "mediaCount": 260,
  "mediaInsightsRequested": 260,
  "mediaInsightsCount": 260,
  "mediaInsightsErrors": 0,
  "mediaInsightsSkipped": 0,
  "storedMediaCount": 260,
  "storedMediaWithInsightsCount": 260
}

Na primeira carga, o sistema busca o histórico disponível. Nas próximas sincronizações, atualiza os 50 posts mais recentes e preserva os snapshots históricos já coletados.