CloudSealed

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_SECRET

Recursos principais

Os poucos substantivos em torno dos quais a API gira. O resto se compõe a partir desses.

  • Findings

    GET /v1/findings

    Problemas individuais de segurança, custo, arquitetura ou compliance detectados em uma auditoria 4D. A unidade atômica do CloudSealed.

  • Resources

    GET /v1/resources

    Objetos de nuvem descobertos no seu tenant — instâncias, buckets, principais IAM, regras de rede. Findings se conectam a recursos.

  • Audits

    GET /v1/audits

    Uma passagem forense no seu ambiente. Liste, recupere e re-analise sob demanda.

  • Policies

    GET /v1/policies

    Regras customizadas sobre o framework 4D. Defina o que é crítico para a sua organização.

  • Reports

    GET /v1/reports

    Entregá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..."
  }
}