API REST
Acesso programático a todos os dados do Radar. Disponível no plano Pro e superior.
A API está em desenvolvimento (Entrega #2 do roadmap). Esta página descreve o contrato planejado. Endpoints podem mudar antes do GA.
Base URL
https://radar.syswp.com.br/api/v1
Autenticação
Todas as chamadas autenticadas usam HMAC SHA-256 com timestamp window ±300s — mesmo padrão do SysWP Shield.
Você precisa de:
api_key— gerada em/account/api(formatork_pub_...).api_secret— mostrada uma única vez na criação (formatork_sec_...).
Cada request precisa dos headers:
X-Radar-Key: rk_pub_aZf8x2KqL3
X-Radar-Timestamp: 1714839600
X-Radar-Signature: hmac_sha256(timestamp + method + path + body, api_secret)
Exemplo (curl)
TS=$(date +%s)
SIG=$(echo -n "${TS}GET/api/v1/sites" | openssl dgst -sha256 -hmac "$API_SECRET" | awk '{print $2}')
curl https://radar.syswp.com.br/api/v1/sites \
-H "X-Radar-Key: $API_KEY" \
-H "X-Radar-Timestamp: $TS" \
-H "X-Radar-Signature: $SIG"
Endpoints principais
Listar sites
GET /api/v1/sites
Resposta:
{
"sites": [
{ "id": "aZf8x2KqL3", "domain": "meublog.com.br", "events_30d": 142839 }
]
}
Stats agregadas de um site
GET /api/v1/sites/{site_id}/stats?range=24h&by=category
Parâmetros:
range:1h | 24h | 7d | 30d | 90d(limitado pelo seu plano)by:category | country | url | bot | hour
Resposta:
{
"range": "24h",
"total": 18239,
"buckets": [
{ "category": "human", "count": 8420 },
{ "category": "verified_bot", "count": 2100 },
{ "category": "ai_crawler", "count": 1840 },
...
]
}
Eventos crus (Pro+, com retenção do plano)
GET /api/v1/sites/{site_id}/events?since=1714839600&limit=1000&cursor=...
Criar/editar alertas
POST /api/v1/sites/{site_id}/alerts
PATCH /api/v1/alerts/{alert_id}
DELETE /api/v1/alerts/{alert_id}
Rate limits
- Pro: 1.000 req/h por API key.
- Agency: 10.000 req/h.
- Enterprise: custom.
Headers de resposta indicam:
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 987
X-RateLimit-Reset: 1714843200
Errors
Códigos HTTP padrão. Body sempre JSON:
{
"error": "invalid_signature",
"message": "HMAC signature validation failed",
"status": 401
}
Webhooks (Pro+)
Configure webhooks em /account/webhooks pra receber eventos em real-time:
alert.triggered— quando um alerta disparasite.added— novo site adicionadolimit.reached— atingiu cota mensal
Cada webhook é assinado com HMAC. Veja X-Radar-Signature no payload.