API do Post Track
Leve os comentários do seu monitoramento para os seus próprios sistemas, já classificados por sentimento e com as tags da sua equipe: um painel de BI, um CRM, um data warehouse ou um alerta próprio. A API é somente leitura, responde em JSON sobre HTTPS e autentica com um token que você cria no app.
- URL base
https://api.posttrack.com.br/public/v1- Autenticação
Authorization: Bearer ptk_…- Formato
- JSON, datas em ISO 8601 (UTC)
- Limite de requisições
- 600 requisições por minuto por token
Primeiros passos
- No app web, abra o monitoramento, vá em Configurações › Tokens de acesso à API e escolha Criar token. Só proprietários e administradores do monitoramento veem essa tela.
- Dê ao token o nome do sistema que vai usá-lo, mantenha a permissão "Ler comentários" e escolha quando ele expira.
- Copie o token, que começa com ptk_. Ele é exibido uma única vez: guarde-o no seu gerenciador de segredos ou em uma variável de ambiente.
- Faça sua primeira requisição:
curl "https://api.posttrack.com.br/public/v1/comments?max=50" \
-H "Authorization: Bearer $POST_TRACK_TOKEN"Autenticação
Envie o token no cabeçalho Authorization de toda requisição, depois da palavra Bearer. Requisições sem um token válido recebem 401.
Authorization: Bearer ptk_...- Um token pertence a um monitoramento e só lê os dados dele. Para ler vários monitoramentos, crie um token em cada um.
- Os tokens expiram em 30, 90 ou 365 dias, ou nunca, conforme escolhido na criação. A lista de tokens mostra quando cada um foi usado pela última vez.
- Revogar um token na mesma tela o desativa na hora. Revogue-o sempre que ele possa ter vazado e crie um novo.
- Mantenha o token no seu servidor. A API aceita chamadas do navegador, mas um token embutido em uma página ou app pode ser lido por qualquer pessoa que o abra.
Listar comentários
GET/public/v1/comments
Retorna os comentários do monitoramento, dos mais recentes para os mais antigos, com o total que corresponde aos filtros.
Parâmetros da consulta
maxinteger- Quantos comentários retornar, de 1 a 200. O padrão é 50.
offsetinteger- Quantos comentários pular, para paginar. O padrão é 0.
sinceISO 8601- Só comentários publicados neste instante ou depois, por exemplo 2026-09-01T00:00:00Z.
untilISO 8601- Só comentários publicados neste instante ou antes.
sentimentstring- Um entre positive, negative, neutral ou unclassified.
platformstring- Um entre facebook, instagram, tiktok, twitter, youtube, tripadvisor ou googlenews.
Exemplo
curl "https://api.posttrack.com.br/public/v1/comments?sentiment=negative&platform=instagram&since=2026-09-01T00:00:00Z" \
-H "Authorization: Bearer $POST_TRACK_TOKEN"{
"total": 128,
"data": [
{
"id": "c0a8012e-...",
"message": "Three days waiting for an answer in the DMs.",
"platform": "instagram",
"sentiment": "negative",
"permaLink": "https://www.instagram.com/p/...",
"likeCount": 4,
"replied": false,
"fromOwner": false,
"parentId": null,
"publishedAt": "2026-09-02T14:31:08Z",
"instagramMedia": {
"id": "...",
"message": "Our spring collection is here",
"permaLink": "https://www.instagram.com/p/...",
"publishedAt": "2026-09-01T12:00:00Z",
"instagramAccount": { "id": "...", "name": "Your brand", "username": null }
},
"facebookPost": null,
"tiktokVideo": null,
"twitterPost": null,
"youtubeVideo": null,
"tripadvisorLocation": null,
"tags": ["Customer service", "Delivery"]
}
]
}Buscar um comentário
GET/public/v1/comments/{id}
Retorna um único comentário do monitoramento pelo id, no mesmo formato de um item da lista.
curl "https://api.posttrack.com.br/public/v1/comments/c0a8012e-..." \
-H "Authorization: Bearer $POST_TRACK_TOKEN"Paginação
As listas são paginadas com max e offset. O total da resposta diz quantos comentários correspondem, para você saber quando parar. Para sincronizar continuamente, filtre com since a partir do publishedAt do último comentário que você guardou.
const comments = []
for (let offset = 0; ; offset += 200) {
const response = await fetch(
`https://api.posttrack.com.br/public/v1/comments?max=200&offset=${offset}`,
{ headers: { Authorization: `Bearer ${token}` } }
)
const page = await response.json()
comments.push(...page.data)
if (page.data.length === 0 || comments.length >= page.total) break
}Limites de requisições
Cada token pode fazer 600 requisições por minuto, contadas em uma janela deslizante. Toda resposta informa em que ponto você está:
X-RateLimit-Limit- Requisições permitidas por janela.
X-RateLimit-Remaining- Requisições restantes na janela atual.
X-RateLimit-Reset- Quando a janela libera de novo, como timestamp Unix em segundos.
Retry-After- Só em um 429: segundos a esperar antes de tentar de novo.
Erros
Os erros usam o status HTTP e um corpo JSON com uma mensagem legível, em inglês ou português conforme o cabeçalho Accept-Language.
{
"message": "Invalid API access token."
}400- Um parâmetro da consulta é inválido, como max acima de 200 ou um sentimento desconhecido.
401- O token está ausente, malformado, revogado ou expirado.
403- O token não tem a permissão comments:read, o monitoramento está inativo ou o projeto não está no plano Ultimate ou Enterprise.
404- O comentário não existe ou pertence a outro monitoramento.
429- Requisições demais. Espere os segundos de Retry-After e tente de novo.
500- Algo falhou do nosso lado. Tente de novo mais tarde e, se persistir, escreva para nós.
Planos e versionamento
A API faz parte dos planos Ultimate e Enterprise. Se um projeto passa para um plano inferior, os tokens são mantidos, mas a API os recusa até o plano voltar.
A versão fica no caminho (/public/v1). Novos campos e endpoints podem ser adicionados a ela a qualquer momento, então ignore os campos que você não conhece; uma mudança que quebre integrações existentes vem em uma nova versão, anunciada com antecedência.
Dúvidas, ou precisa de um endpoint que não está aqui? Escreva para suporte@diamovi.com.br.
O objeto comentário
idstringmessagestringplatformstringsentimentstringpermaLinkstringlikeCountintegerrepliedbooleanfromOwnerbooleanparentIdstringpublishedAtISO 8601facebookPost, instagramMedia, tiktokVideo, twitterPost, youtubeVideoobjecttripadvisorLocationobjecttagsstring[]Cada perfil de uma publicação (uma página, uma conta ou um canal) vem como um objeto com id, name e username; username só é preenchido no TikTok e no X.