DocsAPI REST

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:

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:

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

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:

Cada webhook é assinado com HMAC. Veja X-Radar-Signature no payload.