A API utiliza OAuth 2.0 com dois grant types: Client Credentials (para obter o primeiro token) e Refresh Token (para renovar sem reenviar o secret).
Gerando Credenciais
- Acesse o dashboard em Configurações > Credenciais da API
- Clique em Gerar Novas Credenciais
- Salve o
client_id e o client_secret — o secret só é exibido uma vez
Obtendo um Access Token
curl -X POST https://api-hub-campaign.convertt.ai/api/v1/oauth/token \
-H "Content-Type: application/json" \
-d '{
"grant_type": "client_credentials",
"client_id": "rcs_a1b2c3d4e5f6...",
"client_secret": "seu-client-secret-aqui"
}'
Resposta
{
"access_token": "eyJhbGciOiJIUzI1NiIs...",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token": "a1b2c3d4e5f6...",
"scope": "campaigns:dispatch"
}
Usando o Access Token
Inclua o token no header Authorization:
curl -X POST https://api-hub-campaign.convertt.ai/api/v1/external/campaigns/dispatch \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
-H "Content-Type: application/json" \
-d '{ ... }'
O access token expira em 1 hora. Use o refresh token para obter um novo par sem reenviar o client secret:
curl -X POST https://api-hub-campaign.convertt.ai/api/v1/oauth/token \
-H "Content-Type: application/json" \
-d '{
"grant_type": "refresh_token",
"refresh_token": "seu-refresh-token"
}'
O refresh token usa rotation: cada uso gera um novo refresh token e invalida o anterior. O refresh token expira em 30 dias.
Segurança
- Nunca exponha o
client_secret em código client-side (frontend, mobile)
- Use variáveis de ambiente para armazenar as credenciais
- Revogue credenciais comprometidas imediatamente no dashboard