api.cloudsealed.com
REST API
JSON sobre HTTPS. Orientada a recursos. Status codes previsíveis. Documentada em OpenAPI 3.1.
Autenticação
Todas as requisições exigem um Bearer token no header Authorization. Suportamos dois tipos de credencial — escolha a que combina com a sua integração.
Personal Access Tokens
Longa duração, escopados por usuário. Ideais para scripts, jobs de CI e ferramentas internas.
OAuth 2.0
Access tokens de curta duração emitidos pelo fluxo authorization-code. Ideais para integrações de terceiros e apps multi-tenant.
# All requests require a Bearer token
curl https://api.cloudsealed.com/v1/findings \
-H "Authorization: Bearer $CS_TOKEN"
# OAuth: exchange an authorization code for a short-lived access token
curl -X POST https://api.cloudsealed.com/oauth/token \
-d grant_type=authorization_code \
-d code=$CODE \
-d client_id=$CLIENT_ID \
-d client_secret=$CLIENT_SECRETRecursos principais
Os poucos substantivos em torno dos quais a API gira. O resto se compõe a partir desses.
Findings
GET /v1/findingsProblemas individuais de segurança, custo, arquitetura ou compliance detectados em uma auditoria 4D. A unidade atômica do CloudSealed.
Resources
GET /v1/resourcesObjetos de nuvem descobertos no seu tenant — instâncias, buckets, principais IAM, regras de rede. Findings se conectam a recursos.
Audits
GET /v1/auditsUma passagem forense no seu ambiente. Liste, recupere e re-analise sob demanda.
Policies
GET /v1/policiesRegras customizadas sobre o framework 4D. Defina o que é crítico para a sua organização.
Reports
GET /v1/reportsEntregáveis gerados — sumários executivos, planos de remediação, evidências de compliance — em PDF ou JSON.
Paginação
Endpoints de listagem retornam resultados paginados por cursor. Passe ?limit=50 (máx 200) e use o campo next_cursor da resposta para puxar a próxima página.
GET /v1/findings?limit=50&cursor=eyJpZCI6Im...
{
"data": [ /* ... 50 items ... */ ],
"next_cursor": "eyJpZCI6Imp...",
"has_more": true
}Limites de taxa
1.000 requisições/minuto por token por padrão. Endpoints pesados (geração de relatório, reanálise completa) têm orçamentos separados. Cada resposta carrega headers X-RateLimit-* — recue proativamente.
Erros
Status codes HTTP padrão. Cada corpo de erro inclui um error.code estável, uma mensagem legível e um request_id que você pode citar no suporte. Nunca faça parse da mensagem — ela é para humanos; o code é para máquinas.
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
{
"error": {
"code": "invalid_severity_filter",
"message": "severity must be one of: info, low, medium, high, critical",
"request_id": "req_01HZ8K3..."
}
}