Skip to main content

Reports & AI API

Everything in this section is available over the REST API. API Reference covers authentication and conventions; Swagger at https://<your-host>/api/docs is exhaustive.

export OFFLOAD_HOST="https://your-instance.example.com"
export OFFLOAD_API_KEY="osk_xxxxxxxxxxxxxxxxxxxx"

Send the key as X-API-Key; calls are scoped to the key's team.

Executive dashboard

TaskEndpointNotes
OverviewGET /api/executive-dashboard/overviewMaturity, per-framework status, priority gaps, certification readiness, strengths, 90-day trend, recommendations — the same scorer as Compliance Posture.
MetricsGET /api/executive-dashboard/compliance-metrics?period_days=90 (≤ 365) · GET /api/executive-dashboard/board-metrics
GeneratePOST /api/executive-dashboard/gap-analysis · POST /api/executive-dashboard/remediation-roadmap · POST /api/executive-dashboard/executive-report?report_type=summary|detailed|boardView Dashboard.
PDFGET /api/executive-dashboard/export-pdf?report_type=summary|board|gap-analysisBranded Compliance Posture Report (PDF stream).
Work the gapsPUT /api/executive-dashboard/gaps/{gap_id}/assign?owner= · PUT …/gaps/{gap_id}/status?status= · PUT …/roadmap/{milestone_id}/progress?progress=gap_id is the SCF ID.

Scheduled reports

TaskEndpointNotes
CreatePOST /api/executive-dashboard/schedule-report?report_type=summary|board|gap-analysis&frequency=daily|weekly|monthly|quarterly&recipients=a@x,b@yFirst run at 09:00 UTC one interval out.
List / deleteGET /api/executive-dashboard/scheduled-reports · DELETE …/scheduled-reports/{schedule_id}Rows carry last_run, last_status, run_count, next_run, last_delivery.
RunsGET …/scheduled-reports/{schedule_id}/history · GET …/scheduled-reports/{schedule_id}/latestlatest streams the most recent PDF.

Consolidated and per-module reports

TaskEndpointNotes
Consolidated scan reportPOST /api/reports/consolidated {scan_ids[], report_format: html|pdf|docx, report_title?, project_name?, include_screenshots (default true), max_screenshots ≤ 30} · POST /api/reports/target {target, report_format, …}Returns a job id; poll GET /api/jobs/{job_id}, then GET /api/reports/{job_id}/download.
Report historyGET /api/reports/historyGenerated reports for the team (180-day retention).
Per-scan reportGET /api/native-scans/results/{scan_id}/download?format=html|pdf|docx · GET /api/app-scan/{app_scan_id}/report?format=html|pdf
Code / SBOMGET /api/code/reports/{scan_id}/export?format=pdf · GET /api/code/sbom/{scan_id}/download · …/export?format=csv|csv-vulns|json
Container / KubernetesGET /api/container/scans/{scan_id}/export?format=json|csv|cyclonedx · POST /api/container-security/compliance-report · POST /api/k8s/compliance/report
Cloud findingsGET /api/cspm/findings/export?format=csv|xlsxSession-authenticated only.
RiskGET /api/risk-management/reports/export?format=json|csv · …/reports/executive-summary · …/reports/executive-pdf-data
CompliancePOST /api/compliance-engine/reports/generateGET …/reports/{report_id}/download/{section} · GET /api/evidence-completion/auditor-package/{framework} · GET /api/common-controls/soa/{framework} · GET /api/assessments/{assessment_id}/export-pdf · GET /api/dpdp/audit/pack/{pack_id}/pdfSee Compliance & GRC API.

Branded report family

RouteFormats
GET /api/export/executive-dashboard · GET /api/export/compliance-posture · GET /api/export/ai-decisions · GET /api/export/scan-results?scan_type=all|…PDF
GET /api/export/cloud-posture · web-app · network · app-sec · consolidated-exec — each also as .html and .docxPDF · HTML · DOCX

AI

TaskEndpointNotes
AssistantPOST /api/ai/chat/message {message, conversation_id?, context?} · GET /api/ai/chat/conversations · GET · DELETE …/conversations/{conversation_id} · POST /api/ai/chat/suggestions {context?} · GET /api/ai/chat/statusMessage and provider name come back with cached: true when served from platform knowledge.
Quick insightPOST /api/ai/chat/quick-insight {insight_type: vulnerability|scan|compliance|risk, data}Two or three sentences for a card.
Explain / fix / summarisePOST /api/ai/explain-vulnerability · POST /api/ai/suggest-fix · POST /api/ai/summarize-scan · POST /api/ai/prioritize-findings · GET /api/ai/status · GET /api/ai/modelsManage Integrations.
Scan analysisPOST /api/ai/analysis/analyze · …/compare · …/executive-report · …/predict-risk · …/quick-insights · GET /api/ai/analysis/statusManage Scans.
Risk AIPOST /api/risk-management/ai/{suggest | treatment-plan | compliance-gaps | recommend-kris | scenarios}See Vulnerabilities & Risk API.
Triage explainPOST /api/triage/finding/{fingerprint}/explainSee Vulnerabilities & Risk API.
Knowledge baseGET /api/knowledge-base/… — documents, search, questionnaireSee Knowledge Base.

LLM providers

TaskEndpointNotes
ListGET /api/llm/providersPer provider: configured, masked key, models, default and fast model, active_provider.
ConfigurePOST /api/llm/providers/{anthropic|openai|google}/configure {api_key, model?}Key encrypted at rest, team-scoped; first configured becomes active. Manage Integrations.
Test / activate / removePOST …/providers/{provider_id}/test · POST …/providers/{provider_id}/activate · DELETE …/providers/{provider_id}

Permissions

ActionPermission
Read executive overview, metrics, PDF, scheduled reports, report historyany authenticated team member
Generate gap analysis / roadmap / executive reports, assign gaps, update roadmap progress, create or delete schedulesView Dashboard (view_dashboard)
Consolidated scan reports and per-module exportsthe module's view permission (e.g. View Scans)
Assistant messages, explain / suggest fix / summarise / prioritise, LLM provider configurationManage Integrations (manage_integrations)
AI scan analysisManage Scans (manage_scans)

See Authentication for key scopes and Conventions for pagination, error shapes and rate limits.