Endpoints
Os principais endpoints REST, agrupados por recurso. Todo endpoint exige um header ApiKey.
URL base: https://api.wasviking.com/v1/. Todos os endpoints exigem o
header Authorization: ApiKey wv_live_…. Todos os corpos são JSON.
Scans
| Método |
Caminho |
Escopo |
Finalidade |
POST |
/scans |
scans:run |
Dispara um novo scan. |
GET |
/scans/{id} |
scans:read |
Status e metadados do scan. |
GET |
/scans/{id}/findings |
findings:read |
Achados produzidos por um scan. |
GET |
/scans/{id}/report.pdf |
scans:read |
Relatório em PDF. |
POST |
/scans/{id}/cancel |
scans:run |
Cancela um scan em execução. |
Dispare um scan
curl -sS https://api.wasviking.com/v1/scans \
-H "Authorization: ApiKey ${KEY}" \
-H "Content-Type: application/json" \
-d '{
"target": "https://app.example.com",
"template": "prod-web-strict"
}'
{
"id": "scan_8fae22c4",
"status": "queued",
"template": "prod-web-strict",
"created_at": "2026-05-21T14:08:11Z"
}
Achados
| Método |
Caminho |
Escopo |
Finalidade |
GET |
/findings |
findings:read |
Lista os achados, com filtros. |
GET |
/findings/{id} |
findings:read |
Detalhe do achado, com evidências. |
PATCH |
/findings/{id} |
findings:update |
Transição de status, comentário, responsável. |
POST |
/findings/bulk |
findings:update |
Atualização em lote. |
Liste os achados
curl -sS "https://api.wasviking.com/v1/findings?status=open&min_risk=70" \
-H "Authorization: ApiKey ${KEY}"
Parâmetros de consulta suportados:
| Parâmetro |
Observações |
status |
open, accepted, mitigated, false_positive, fixed. |
category |
sqli, xss, cve, token_exposure, etc. |
severity |
critical, high, medium, low. |
min_risk, max_risk |
0-100. |
asset_id |
Restringe a um único ativo. |
since |
Timestamp ISO 8601. |
cursor |
Cursor de paginação. |
limit |
Padrão 50, máximo 200. |
Alvos
| Método |
Caminho |
Escopo |
GET |
/targets |
inventory:read |
POST |
/targets |
targets:manage |
GET |
/targets/{id} |
inventory:read |
PATCH |
/targets/{id} |
targets:manage |
POST |
/targets/{id}/archive |
targets:manage |
Inventário
| Método |
Caminho |
Escopo |
GET |
/inventory/assets |
inventory:read |
GET |
/inventory/assets/{id} |
inventory:read |
GET |
/inventory/components/search |
sca:read |
GET |
/inventory/sbom |
sca:read |
SBOM (envio pelo Sentinel + leitura)
| Método |
Caminho |
Escopo |
POST |
/sentinel/sbom/submit |
sca:submit |
GET |
/sca/bundles |
sca:read |
POST |
/sca/bundles |
evidence.share |
POST |
/sca/bundles/{id}/revoke |
evidence.share |
Secrets
| Método |
Caminho |
Escopo |
POST |
/sentinel/secrets/submit |
secrets:submit |
GET |
/inventory/secrets |
findings:read |
Trilha de auditoria
| Método |
Caminho |
Escopo |
GET |
/audit-log |
audit_logs:read |
Aceita since, actor, action, cursor, limit.
Webhooks
| Método |
Caminho |
Escopo |
GET |
/webhooks |
webhooks:manage |
POST |
/webhooks |
webhooks:manage |
DELETE |
/webhooks/{id} |
webhooks:manage |
POST |
/webhooks/{id}/test |
webhooks:manage |
Consulte Eventos de webhook para o catálogo
de eventos.
Baseada em cursor. A resposta traz next_cursor e prev_cursor
quando existem mais páginas. Os cursores são opacos; não tente interpretá-los.
{
"items": [...],
"next_cursor": "Y3Vyc29yX2FiYzEyMw==",
"prev_cursor": null
}
Idempotência
Os endpoints POST aceitam o header Idempotency-Key para novas tentativas seguras. A mesma
chave reproduz a mesma resposta dentro de 24 horas.