Estado e cobertura da varredura
Use status para controlar as consultas. progress e completed_summary_eligible não garantem cobertura; consulte run_assessment e seus códigos de motivo.
Crie um fluxo completo de segurança ofensiva: registre um target, inicie e monitore varreduras, obtenha evidências, exporte relatórios e verifique correções.
Crie uma chave de plano pago com api:access, armazene-a como secret mascarado do CI e envie-a em todas as requisições. Operações de alteração exigem papel de editor ou owner no workspace selecionado.
Automação (planos pagos): crie uma chave de API em Configurações → Segurança → Chaves de API. As chaves devem incluir o escopo api:access para endpoints REST. Envie o segredo como:
X-API-Key: ab_YOUR_KEY
# Alternativa: Authorization: Bearer ab_YOUR_KEYPlano gratuito: não é possível criar nem usar chaves de API REST. A ingestão de resultados de CI / PR usa o escopo ci:scan:write e as rotas /ci-scans/.... Uma chave pode incluir ci:scan:write e api:access.
Targets, varreduras, achados e relatórios são escopados a um workspace (pessoal ou equipe), como no painel:
X-Org-Context: personal
# ou o domínio normalizado da organização da equipe, por exemplo example.comhttps://agentbreach.com/api/v1Acrescente a esta URL os caminhos dos endpoints abaixo. A referência usa automaticamente a origem atual da API Agent Breach.
Use o Swagger para testar rotas públicas e o ReDoc para consultar seus esquemas. Este guia acrescenta o comportamento de fluxos, relatórios e recuperação que um esquema isolado não explica.
O fluxo normal de automação tem cinco etapas. Cada cartão leva a uma requisição completa e a uma resposta representativa.
Defina os caminhos autorizados e salve o id retornado do target.
Escolha um perfil e salve o novo id da varredura antes de continuar.
Consulte a varredura com timeout até ela concluir, falhar ou ser cancelada.
Percorra os achados, confira a confirmação e depois exporte o relatório.
Baixe um resultado processável com qualidade da execução, evidência, cobertura e mapeamentos de frameworks.
Estes campos evitam que o pipeline trate atividade, candidatos ou observações consultivas como impacto de segurança confirmado.
Use status para controlar as consultas. progress e completed_summary_eligible não garantem cobertura; consulte run_assessment e seus códigos de motivo.
Use report_assessment.validation_confirmed == true como critério. Severidade, contadores e included_in_current_report isoladamente são inseguros porque candidatos e recomendações de hardening também podem ser armazenados.
O detalhe do achado expõe reproduction_steps, proof_of_concept e evidence_documentation. reproducibility: not_assessed descreve evidência registrada sem afirmar que houve reprodução independente.
Achados retornam items, total, skip e limit. O limite máximo é 100; continue até ler todos os itens indicados em total.
Os exemplos usam ids fictícios e uma chave mascarada. As respostas mostram os campos úteis para a próxima etapa; consulte o OpenAPI para todos os campos opcionais.
/targetsDefina a URL e o limite da varredura. Aceite o consentimento entre domínios somente quando houver autorização para um target fora do domínio da conta.
curl -fsS -X POST "https://agentbreach.com/api/v1/targets" \
-H "X-API-Key: ab_YOUR_KEY" \
-H "X-Org-Context: personal" \
-H "Content-Type: application/json" \
--data '{
"name": "Production API",
"url": "https://api.example.com",
"scope": {
"include_hosts": [
"api.example.com"
],
"include_paths": [
"/v1"
],
"exclude_paths": [
"/v1/admin"
],
"include_subdomains": false,
"allow_reverse_ip_discovery": false,
"ip_ranges": [],
"exclude_hosts": []
},
"cross_domain_consent": true
}'{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Production API",
"url": "https://api.example.com/",
"target_domain": "api.example.com",
"scope": {
"include_hosts": [
"api.example.com"
],
"include_paths": [
"/v1"
],
"exclude_paths": [
"/v1/admin"
],
"include_subdomains": false
},
"cross_domain_consent_accepted": true,
"status": "active",
"created_at": "2026-09-11T16:00:00Z",
"updated_at": "2026-09-11T16:00:00Z"
}Salve id como o target id usado na criação da varredura. A API valida acesso, escopo, capacidade do plano e consentimento entre domínios.
/scansOs perfis integrados são quick, standard e deep. Adicione auth_profile_ids ativos quando a avaliação exigir cobertura autenticada.
curl -fsS -X POST "https://agentbreach.com/api/v1/scans" \
-H "X-API-Key: ab_YOUR_KEY" \
-H "X-Org-Context: personal" \
-H "Content-Type: application/json" \
--data '{
"target_id": "550e8400-e29b-41d4-a716-446655440000",
"profile": "standard",
"auth_profile_ids": [],
"options": {}
}'{
"id": "7a243f5d-d539-40d7-986c-0f460adc79a6",
"target_id": "550e8400-e29b-41d4-a716-446655440000",
"profile": "standard",
"status": "queued",
"progress": 0,
"findings_count": 0,
"critical_count": 0,
"high_count": 0,
"created_at": "2026-09-11T16:01:00Z",
"run_assessment": {
"contract_version": 1,
"status": "queued",
"recorded_status": "queued",
"completion_recorded": false,
"execution_detail_status": "not_loaded",
"completed_summary_eligible": false,
"coverage_assurance": "not_assessed",
"freshness": "unknown",
"reason_codes": [
"run_not_completed",
"execution_details_not_loaded",
"activity_not_recorded"
]
}
}POST /scans não possui chave de idempotência. Salve o scan id retornado e não repita uma criação incerta automaticamente, pois isso pode enfileirar uma varredura duplicada.
/scans/{scan_id}Repita esta consulta de status com espera limitada. Estados ativos: queued, running e paused; estados terminais: completed, failed e cancelled.
curl -fsS "https://agentbreach.com/api/v1/scans/7a243f5d-d539-40d7-986c-0f460adc79a6" \
-H "X-API-Key: ab_YOUR_KEY" \
-H "X-Org-Context: personal"{
"id": "7a243f5d-d539-40d7-986c-0f460adc79a6",
"target_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "completed",
"progress": 100,
"display_progress": 100,
"findings_count": 3,
"critical_count": 0,
"high_count": 1,
"medium_count": 1,
"low_count": 0,
"info_count": 1,
"current_tool": null,
"completed_at": "2026-09-11T16:22:14Z",
"run_assessment": {
"contract_version": 1,
"status": "completed",
"recorded_status": "completed",
"completion_recorded": true,
"execution_detail_status": "not_loaded",
"failed_execution_count": null,
"incomplete_execution_count": null,
"unclassified_execution_count": null,
"completed_summary_eligible": null,
"coverage_assurance": "not_assessed",
"freshness": "historical",
"last_activity_at": "2026-09-11T16:22:14Z",
"evaluated_at": "2026-09-11T16:25:00Z",
"reason_codes": [
"execution_details_not_loaded"
]
}
}Completed registra o fim do ciclo. Consulte run_assessment para ver atualização e ressalvas de execução; progress 100 sozinho não comprova cobertura.
/findings?scan_id={scan_id}&severity=critical,high&limit=100&skip=0Esta requisição busca uma página. Filtre por varredura, target, severidade, status, host ou classificação e avance skip até baixar todos os itens de total.
curl -fsS "https://agentbreach.com/api/v1/findings?scan_id=7a243f5d-d539-40d7-986c-0f460adc79a6&severity=critical,high&limit=100&skip=0" \
-H "X-API-Key: ab_YOUR_KEY" \
-H "X-Org-Context: personal"{
"items": [
{
"id": "6ed1e606-0ed8-4528-bd7d-3df0cbe9b97c",
"scan_id": "7a243f5d-d539-40d7-986c-0f460adc79a6",
"target_id": "550e8400-e29b-41d4-a716-446655440000",
"title": "SQL injection in order search",
"severity": "high",
"status": "confirmed",
"type": "sql_injection",
"source_tool": "nuclei",
"confidence": "high",
"validation_status": "confirmed",
"url": "https://api.example.com/v1/orders?query=test",
"method": "GET",
"parameter": "query",
"report_assessment": {
"record_kind": "finding",
"included_in_current_report": true,
"validation_confirmed": true,
"route_existence": null
}
}
],
"total": 1,
"skip": 0,
"limit": 100
}Use report_assessment.validation_confirmed como critério de vulnerabilidade. Um filtro de scan inexistente atualmente retorna página vazia em vez de 404.
/findings/{finding_id}A resposta detalhada contém passos registrados, prova de conceito, resultado observado, correção, validação e classificação do relatório.
curl -fsS "https://agentbreach.com/api/v1/findings/6ed1e606-0ed8-4528-bd7d-3df0cbe9b97c" \
-H "X-API-Key: ab_YOUR_KEY" \
-H "X-Org-Context: personal"{
"id": "6ed1e606-0ed8-4528-bd7d-3df0cbe9b97c",
"scan_id": "7a243f5d-d539-40d7-986c-0f460adc79a6",
"target_id": "550e8400-e29b-41d4-a716-446655440000",
"title": "SQL injection in order search",
"severity": "high",
"status": "confirmed",
"type": "sql_injection",
"source_tool": "nuclei",
"description": "The query parameter changed the database response during validation.",
"reproduction_steps": [
"Send the recorded GET request to /v1/orders with the saved query value.",
"Replay the same request with the recorded validation value.",
"Compare the response status, body signature, and elapsed time."
],
"proof_of_concept": {
"method": "GET",
"url": "https://api.example.com/v1/orders",
"parameter": "query",
"payload": "test' OR '1'='1",
"request": "GET /v1/orders?query={{RECORDED_TEST_VALUE}} HTTP/1.1",
"observed_result": "The response changed consistently across the validation controls.",
"observed_at": "2026-09-11T16:18:02Z"
},
"validation_actions": [
{
"action": "control_comparison",
"evidence": "The recorded payload and false-condition control produced different response signatures."
}
],
"remediation": "Use a parameterized query and validate the query input server-side.",
"url": "https://api.example.com/v1/orders?query=test",
"method": "GET",
"parameter": "query",
"discovered_at": "2026-09-11T16:18:02Z",
"evidence_documentation": {
"recorded_step_count": 3,
"supporting_material_present": true,
"observed_result_present": true,
"validation_notes_present": true,
"missing_fields": [],
"reproducibility": "not_assessed"
},
"report_assessment": {
"record_kind": "finding",
"included_in_current_report": true,
"validation_confirmed": true,
"route_existence": null
}
}Valores sensíveis podem ser ocultados. A documentação da evidência informa o que existe ou falta e não certifica a reprodução de forma independente.
/findings/{finding_id}Defina status, notas e responsável. Os estados suportados são new, confirmed, false_positive, accepted_risk e fixed.
curl -fsS -X PATCH "https://agentbreach.com/api/v1/findings/6ed1e606-0ed8-4528-bd7d-3df0cbe9b97c" \
-H "X-API-Key: ab_YOUR_KEY" \
-H "X-Org-Context: personal" \
-H "Content-Type: application/json" \
--data '{
"status": "accepted_risk",
"notes": "Accepted for release 2026.09; compensating control documented in SEC-184.",
"assigned_to": "security@example.com"
}'{
"id": "6ed1e606-0ed8-4528-bd7d-3df0cbe9b97c",
"status": "accepted_risk",
"assigned_to": "security@example.com",
"notes": "Accepted for release 2026.09; compensating control documented in SEC-184.",
"report_assessment": {
"record_kind": "finding",
"included_in_current_report": false,
"validation_confirmed": false,
"route_existence": null
}
}Riscos aceitos, falsos positivos e itens corrigidos ficam fora dos relatórios de vulnerabilidades ativas. Definir fixed registra a data da correção.
/reports/scans/{scan_id}?format=jsonO JSON contém avaliação da execução, achados filtrados por evidência, resumo dos testes, cobertura de URLs e mapeamentos de frameworks.
curl -fsS "https://agentbreach.com/api/v1/reports/scans/7a243f5d-d539-40d7-986c-0f460adc79a6?format=json" \
-H "X-API-Key: ab_YOUR_KEY" \
-H "X-Org-Context: personal"{
"report_type": "security_scan",
"run_assessment": {
"contract_version": 1,
"status": "completed",
"recorded_status": "completed",
"completion_recorded": true,
"execution_detail_status": "available",
"failed_execution_count": 0,
"incomplete_execution_count": 0,
"unclassified_execution_count": 0,
"completed_summary_eligible": true,
"coverage_assurance": "not_assessed",
"freshness": "historical",
"last_activity_at": "2026-09-11T16:22:14Z",
"evaluated_at": "2026-09-11T16:25:00Z",
"reason_codes": []
},
"run_assessment_notice": "Run state: Completion recorded. Completion was recorded. The saved results do not establish complete coverage or that the target is secure. Last recorded run activity: 2026-09-11T16:22:14+00:00.",
"executive_summary": {
"scan_id": "7a243f5d-d539-40d7-986c-0f460adc79a6",
"total_findings": 1,
"material_findings": 1,
"validation_confirmed": 1,
"informational_hardening": 0,
"severity_breakdown": {
"critical": 0,
"high": 1,
"medium": 0,
"low": 0,
"info": 0
},
"risk_score_basis": "confirmed_vulnerabilities_only"
},
"findings": [
{
"id": "6ed1e606-0ed8-4528-bd7d-3df0cbe9b97c",
"severity": "high",
"validation_status": "confirmed"
}
],
"test_execution_summary": {
"total_tests": 18,
"successful_tests": 18,
"failed_tests": 0,
"total_duration_seconds": 1284,
"tools_used": [
"nuclei",
"browser_agent"
]
},
"urls_tested": [
{
"url": "https://shop.example.com/",
"authenticated": false
},
{
"url": "https://shop.example.com/account",
"authenticated": true
}
],
"total_urls_tested": 18,
"framework_mappings": {
"owasp_top_10": [
"A03:2021 Injection"
],
"cwe": [
"CWE-89"
]
},
"generated_at": "2026-09-11T16:25:00Z"
}Filtre por severidade e idioma; o JSON também aceita include_frameworks. Há CSV, Markdown, Jira, PDF e evidence-pack. Use template=developer para PDF síncrono; o PDF de IA padrão pode retornar 202 e ser entregue por e-mail.
/scans/{scan_id}/verification-rerunEnfileire uma verificação no mesmo scan e conjunto de achados depois do trabalho de correção.
curl -fsS -X POST "https://agentbreach.com/api/v1/scans/7a243f5d-d539-40d7-986c-0f460adc79a6/verification-rerun" \
-H "X-API-Key: ab_YOUR_KEY" \
-H "X-Org-Context: personal"{
"id": "7a243f5d-d539-40d7-986c-0f460adc79a6",
"target_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "queued",
"progress": 0,
"execution_phase": "verification_rerun",
"findings_count": 3,
"options": {
"verification_rerun": {
"tools": [
"nuclei"
],
"finding_ids": [
"6ed1e606-0ed8-4528-bd7d-3df0cbe9b97c"
],
"requested_at": "2026-09-11T16:30:00Z",
"previous_status": "completed",
"parent_scan_id": "7a243f5d-d539-40d7-986c-0f460adc79a6"
}
},
"run_assessment": {
"contract_version": 1,
"status": "queued",
"recorded_status": "queued",
"completion_recorded": false,
"execution_detail_status": "not_loaded",
"completed_summary_eligible": false,
"coverage_assurance": "not_assessed",
"freshness": "unknown",
"reason_codes": [
"run_not_completed",
"execution_details_not_loaded"
]
}
}Não consome cota de nova varredura nem cria achados. Achados redescobertos continuam vulneráveis; ausência em ferramenta ampla permanece inconclusiva.
Estes endpoints acompanham um check de pull request e recebem resultados produzidos pelas ferramentas do seu CI. Eles não iniciam uma varredura DAST web ou API.
Abrir o guia completo de integração CI/CD/ci-scans/startCrie um registro para o repositório, pull request, commit e execução do workflow antes de enviar os resultados. Esta rota exige ci:scan:write.
curl -fsS -X POST "https://agentbreach.com/api/v1/ci-scans/start" \
-H "X-API-Key: ab_YOUR_KEY" \
-H "X-Org-Context: personal" \
-H "Content-Type: application/json" \
--data '{
"provider": "github",
"repository": "acme/storefront",
"pr_number": 184,
"base_sha": "68f070f",
"head_sha": "0d5a8ee",
"branch": "fix/order-search",
"workflow_run_id": "9876543210",
"options": {}
}'{
"id": "7c3d2f48-76a7-4df8-9b17-90bd8b175bf8",
"user_id": "9be5688a-f23b-46d1-94b4-6a9d8682492e",
"provider": "github",
"repository": "acme/storefront",
"pr_number": 184,
"base_sha": "68f070f",
"head_sha": "0d5a8ee",
"branch": "fix/order-search",
"workflow_run_id": "9876543210",
"status": "queued",
"policy_result": null,
"findings_count": 0,
"critical_count": 0,
"high_count": 0,
"medium_count": 0,
"low_count": 0,
"info_count": 0,
"options": {},
"results_summary": null,
"error_message": null,
"created_at": "2026-09-11T16:40:00Z",
"started_at": null,
"completed_at": null
}Salve o id retornado. Este é um registro de ingestão/check; use POST /scans para varredura web ou API da Agent Breach.
/ci-scans/{ci_scan_id}/resultsEnvie achados de código normalizados e a decisão de política do pipeline ao registro de CI existente.
curl -fsS -X POST "https://agentbreach.com/api/v1/ci-scans/7c3d2f48-76a7-4df8-9b17-90bd8b175bf8/results" \
-H "X-API-Key: ab_YOUR_KEY" \
-H "X-Org-Context: personal" \
-H "Content-Type: application/json" \
--data '{
"findings": [
{
"title": "Hardcoded deployment token",
"severity": "high",
"type": "secret_exposure",
"description": "A live deployment token is committed in a workflow file.",
"file_path": ".github/workflows/deploy.yml",
"line": 24,
"rule_id": "secrets/live-token",
"source_tool": "gitleaks",
"evidence": "Token fingerprint ending in 4f2c"
}
],
"policy_result": "fail",
"summary": {
"files_scanned": 312,
"rules_run": 48
}
}'{
"id": "7c3d2f48-76a7-4df8-9b17-90bd8b175bf8",
"repository": "acme/storefront",
"pr_number": 184,
"status": "running",
"policy_result": null,
"findings_count": 0,
"high_count": 0,
"results_summary": null,
"started_at": "2026-09-11T16:41:00Z",
"completed_at": null
}A resposta imediata pode continuar running enquanto o processamento assíncrono atualiza contadores e policy_result. Consulte GET /ci-scans/{ci_scan_id} para o registro final.
Estas operações mantêm o mesmo engagement, mas resolvem problemas diferentes. Não recebem corpo e retornam o scan ou achado atualizado.
/scans/{scan_id}/retryUse para scans enfileirados, falhos, pausados ou comprovadamente travados. Checkpoints recuperáveis são preservados.
curl -fsS -X POST "https://agentbreach.com/api/v1/scans/7a243f5d-d539-40d7-986c-0f460adc79a6/retry" \
-H "X-API-Key: ab_YOUR_KEY" \
-H "X-Org-Context: personal"{
"id": "7a243f5d-d539-40d7-986c-0f460adc79a6",
"target_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "queued",
"progress": 0,
"resume_count": 1,
"worker_id": null,
"completed_at": null
}Uma varredura saudável em execução e outros estados terminais retornam 400. A resposta é a mesma varredura enfileirada novamente; resume_count aumenta.
/scans/{scan_id}/resumeRecupera a orquestração usando checkpoints e artefatos salvos. Um target pausado precisa estar acessível.
curl -fsS -X POST "https://agentbreach.com/api/v1/scans/7a243f5d-d539-40d7-986c-0f460adc79a6/resume" \
-H "X-API-Key: ab_YOUR_KEY" \
-H "X-Org-Context: personal"{
"id": "7a243f5d-d539-40d7-986c-0f460adc79a6",
"target_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "queued",
"progress": 62,
"resume_count": 2,
"worker_id": null,
"execution_phase": null
}A resposta preserva o progresso existente e enfileira a orquestração. Um target pausado e inacessível ou um estado incompatível retorna 400.
/scans/{scan_id}/verification-rerunUsa o mesmo scan e os ids existentes sem consumir nova cota. Ausência em uma ferramenta ampla permanece inconclusiva.
curl -fsS -X POST "https://agentbreach.com/api/v1/scans/7a243f5d-d539-40d7-986c-0f460adc79a6/verification-rerun" \
-H "X-API-Key: ab_YOUR_KEY" \
-H "X-Org-Context: personal"{
"id": "7a243f5d-d539-40d7-986c-0f460adc79a6",
"target_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "queued",
"progress": 0,
"execution_phase": "verification_rerun",
"options": {
"verification_rerun": {
"tools": [
"nuclei"
],
"finding_ids": [
"6ed1e606-0ed8-4528-bd7d-3df0cbe9b97c"
],
"requested_at": "2026-09-11T16:30:00Z",
"previous_status": "completed",
"parent_scan_id": "7a243f5d-d539-40d7-986c-0f460adc79a6"
}
}
}Exige uma varredura completed ou failed com achados abertos elegíveis. Caso contrário, a API retorna 400 em vez de iniciar uma verificação vazia.
/scans/{scan_id}/tools/{tool_name}/rerunSubstitui a saída retida da ferramenta e concilia os resultados observados no mesmo scan.
curl -fsS -X POST "https://agentbreach.com/api/v1/scans/7a243f5d-d539-40d7-986c-0f460adc79a6/tools/nuclei/rerun" \
-H "X-API-Key: ab_YOUR_KEY" \
-H "X-Org-Context: personal"{
"id": "7a243f5d-d539-40d7-986c-0f460adc79a6",
"target_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "queued",
"completed_at": null,
"options": {
"tool_rerun": {
"tool": "nuclei",
"requested_at": "2026-09-11T16:32:00Z",
"previous_status": "completed"
}
}
}Use um id canônico de ferramenta obtido em GET /scans/available-tools. Ferramenta desconhecida ou estado incompatível retorna 400.
/scans/{scan_id}/rehydrate-findingsReconstrói os achados no banco a partir dos artefatos retidos. Não envia novo tráfego ao target.
curl -fsS -X POST "https://agentbreach.com/api/v1/scans/7a243f5d-d539-40d7-986c-0f460adc79a6/rehydrate-findings" \
-H "X-API-Key: ab_YOUR_KEY" \
-H "X-Org-Context: personal"{
"id": "7a243f5d-d539-40d7-986c-0f460adc79a6",
"target_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "completed",
"progress": 100,
"findings_count": 3,
"critical_count": 0,
"high_count": 1,
"medium_count": 1,
"low_count": 0,
"info_count": 1
}Use somente quando houver saída retida. Se os artefatos não contiverem achados, a API retorna 400 e mantém a varredura inalterada.
/findings/{finding_id}/verify-fixEnfileira no worker a reprodução dentro do escopo das trocas de controle e prova registradas para um achado de erro SQL diferencial.
curl -fsS -X POST "https://agentbreach.com/api/v1/findings/6ed1e606-0ed8-4528-bd7d-3df0cbe9b97c/verify-fix" \
-H "X-API-Key: ab_YOUR_KEY" \
-H "X-Org-Context: personal"{
"id": "6ed1e606-0ed8-4528-bd7d-3df0cbe9b97c",
"scan_id": "7a243f5d-d539-40d7-986c-0f460adc79a6",
"target_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "confirmed",
"fix_verification_status": "still_vulnerable",
"fix_verified_at": "2026-09-11T16:35:00Z",
"report_assessment": {
"record_kind": "finding",
"included_in_current_report": true,
"validation_confirmed": true,
"route_existence": null
}
}A resposta inicial é pending; consulte GET /findings/{finding_id}. Uma correção verificada muda o achado para fixed. Evidência ausente, alvo inacessível e classes não suportadas permanecem inconclusive.
Este catálogo compacto cobre o principal fluxo de automação. Use Swagger ou ReDoc acima para perfis de autenticação, agendamentos, chaves de API, webhooks, uso, eventos ao vivo, saídas de ferramentas e esquemas das rotas públicas.
GET /targetsListar targetsPOST /targetsCriar targetGET /targets/{target_id}Obter targetPATCH /targets/{target_id}Atualizar targetDELETE /targets/{target_id}Excluir de forma lógica um target nunca escaneado ou inativo por seis mesesGET /scans/available-toolsCatálogo de ferramentasGET /scansListar varredurasPOST /scansCriar e enfileirar varreduraGET /scans/{scan_id}Obter estado e avaliação da varreduraPOST /scans/{scan_id}/cancelCancelar uma varredura ativaPOST /scans/{scan_id}/retryRecuperar varredura enfileirada, falha, pausada ou travadaPOST /scans/{scan_id}/verification-rerunVerificar novamente achados abertosPOST /scans/{scan_id}/tools/{tool_name}/rerunExecutar novamente uma ferramentaPOST /scans/{scan_id}/resumeRetomar checkpoints e artefatos salvosPOST /scans/{scan_id}/rehydrate-findingsReconstruir achados a partir das saídas retidasGET /findingsListar achados (filtros: target_id, scan_id, severity, status)GET /findings/{finding_id}Obter detalhes de evidência e reproduçãoGET /findings/{finding_id}/tool-outputObter saída retida da ferramenta de origem (404 se ausente ou expirada)PATCH /findings/{finding_id}Atualizar campos de triagemPOST /findings/{finding_id}/verify-fixReproduzir um PoC concretoGET /reports/scans/{scan_id}Exportar JSON, CSV, PDF, Markdown, Jira ou evidence packGET /reports/targets/{target_id}Consolidar achados ativos; a varredura mais recente ancora os metadadosEstas rotas recebem resultados de PR/código e exigem ci:scan:write. POST /ci-scans/start cria um registro de acompanhamento; ele não inicia DAST web/API. Uma chave pode incluir os escopos de CI e REST.
POST /ci-scans/startCriar um registro de PR/check para ingestão de resultadosPOST /ci-scans/{ci_scan_id}/resultsEnviar resultadosGET /ci-scans/{ci_scan_id}Consultar o resultado do processamentoErros usam o campo detail. Ele pode ser uma string, um erro estruturado de consentimento ou uma lista de problemas de validação.
{
"detail": "Could not validate credentials"
}{
"detail": "Missing required API key scope: api:access"
}{
"detail": [
{
"type": "missing",
"loc": [
"body",
"url"
],
"msg": "Field required"
}
]
}Filtros, transição de estado, escopo, consentimento ou semântica da requisição inválidos.
Credenciais ausentes, expiradas, revogadas ou inválidas.
Identidade válida sem plano, escopo, papel no workspace ou direito necessário.
O target, scan, achado, registro de CI ou saída retida não existe neste workspace.
Limite de alterações excedido. Leia Retry-After e os cabeçalhos X-RateLimit antes de tentar novamente.
Requisições que alteram dados podem retornar 429 com os cabeçalhos X-RateLimit-Limit, X-RateLimit-Remaining e Retry-After.
Trate os cabeçalhos da resposta como referência e use espera limitada. A criação de varreduras pode ter limites mais rígidos do que outras alterações.
Retry-After: 3600Consulte o hub de documentação, os links OpenAPI acima ou fale com o suporte.