REST API
Referência completa da API REST do AdFlow v1.
Acesso programático a todos os recursos do AdFlow via HTTP.
Base URL e versão
https://app.cloudadflow.com/api/v1
Versão atual: v1. Quebramos compatibilidade apenas em versões majors. Mudanças non-breaking (novos campos, novos endpoints) são adicionadas sem bump de versão.
Autenticação
JWT Bearer token. Faça login para obter o token:
curl -X POST https://app.cloudadflow.com/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]", "password": "suasenha"}'
Resposta:
{
"token": "eyJ...",
"expires_at": "2026-05-04T12:00:00Z"
}
Use o token em todas as requisições:
Authorization: Bearer eyJ...
Tokens expiram em 24h. Use /auth/refresh para renovar sem relogar.
Rate limits
| Plano | Limite |
|---|---|
| Free | 100 req/min por organização |
| Operator | 500 req/min |
| Captain / Zion | 1.000 req/min |
Resposta ao atingir o limite: 429 Too Many Requests com header Retry-After em segundos.
Endpoints
| Recurso | Endpoint | Métodos |
|---|---|---|
| Auth | /auth/login | POST |
| Auth | /auth/refresh | POST |
| Auth | /auth/logout | DELETE |
| Campaigns | /campaigns | GET, POST |
| Campaigns | /campaigns/:id | GET, PUT, DELETE |
| Profiles | /profiles | GET, POST |
| Profiles | /profiles/:id | GET, PUT, DELETE |
| Proxies | /proxies | GET, POST |
| Proxies | /proxies/:id | GET, PUT, DELETE |
| Templates | /templates | GET, POST |
| Templates | /templates/:id | GET, PUT, DELETE |
| Audit Logs | /audit_logs | GET |
| Webhooks | /webhook_endpoints | GET, POST |
| Webhooks | /webhook_endpoints/:id | GET, DELETE |
Exemplo: criar campanha
curl -X POST https://app.cloudadflow.com/api/v1/campaigns \
-H "Authorization: Bearer eyJ..." \
-H "Content-Type: application/json" \
-d '{
"name": "produto_conversao_20260503",
"objective": "conversions",
"profile_id": "prf_abc123",
"daily_budget": 50.00,
"currency": "BRL"
}'
Resposta 201 Created:
{
"id": "cmp_xyz789",
"name": "produto_conversao_20260503",
"status": "draft",
"created_at": "2026-05-03T10:00:00Z"
}
Paginação
Listas retornam paginadas com cursor:
{
"data": [...],
"meta": {
"next_cursor": "eyJpZCI6MTAwfQ==",
"has_more": true
}
}
Passe ?cursor=eyJpZCI6MTAwfQ== na próxima requisição para a página seguinte.