API interna para sincronização e análise do Instagram profissional da Rayra.
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.
cd /Users/roberto/Projects/rayrovisk-project/platform # 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"
| Método | Rota | Acesso | Descrição |
|---|---|---|---|
| GET | /health | Público | Confirma que o servidor está ativo. |
| GET | /v1/connections/instagram | Bearer | Mostra conta conectada, permissões e expiração. |
| POST | /v1/connections/instagram/authorize | Bearer | Inicia a autorização OAuth do Instagram para a pessoa autenticada. |
| POST | /v1/connections/instagram/refresh | Bearer + assinatura | Renova o token de longa duração. |
| POST | /v1/sync | Bearer; assinatura da segunda vez | Busca todas as páginas de mídia e atualiza o engajamento. |
| GET | /v1/profile | Bearer | Retorna o último snapshot do perfil. |
| GET | /v1/media?limit=25&offset=0 | Bearer | Retorna 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/summary | Bearer | Calcula totais, médias, taxas, cobertura, desempenho por formato e rankings de publicações. |
| GET | /v1/sync-runs?limit=25&offset=0 | Bearer | Lista as sincronizações da própria pessoa, da mais recente para a mais antiga, com horários, contagens e a falha já higienizada. |
| GET | /v1/findings | Bearer | Retorna os achados ativos da própria pessoa, com as publicações em que cada um se apoia. |
| GET | /v1/findings/:findingId | Bearer | Retorna um achado da própria pessoa em qualquer situação, inclusive dispensado. |
| GET | /v1/public-profile?handle=usuario | Bearer | Busca 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 | /v1/public-read/profile?handle=usuario | Público | Leitura antes da conta (ADR-0065): o perfil e os números calculados das publicações públicas mais recentes. Limite por endereço, teto diário e chave de desativação. |
| GET | /v1/public-read/text?handle=usuario | Público | O texto da mesma leitura, escrito por um modelo sobre legendas, capas e os números. Só depois da rota acima. |
| GET/POST | /webhooks/meta | Meta | Verificação e recebimento de webhooks assinados. |
| POST | /auth/instagram/deauthorize | Meta | Quem remove o app no Instagram: revoga a conexão e apaga o token. |
| POST | /auth/instagram/data-deletion | Meta | Pedido de exclusão feito na Meta: apaga os dados do Instagram e devolve o código de confirmação. |
| GET | /auth/instagram/data-deletion/:code | Público | Situação de um pedido de exclusão, pelo código de confirmaçã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.