Reports

Access scan reports in markdown and PDF formats

GET/v1/scans/:scanId/report

Get scan report

Retrieve the full penetration test report for a completed scan. The report is returned as markdown content and includes an executive summary, methodology, detailed findings with evidence, and remediation recommendations. Returns 202 Accepted if the report is still being generated.

Reports are generated asynchronously by the reporter agent after all other agents complete. Poll this endpoint if you receive a 202 response.

Path Parameters

NameTypeDescription
scanIdrequired
stringScan ID (UUIDv7)

Example Request

bash
curl -X GET "https://apviso.com/api/v1/v1/scans/:scanId/report" \
  -H "X-API-Key: apvk_your_key_here"

Response

Returns the report content as markdown along with metadata. Returns 202 with a `retryAfter` field (seconds) if the report is still being generated. Returns 404 if the scan has not completed.

json
{
  "scanId": "019414c3-d5e6-7f8a-b9c0-1d2e3f4a5b6c",
  "status": "ready",
  "format": "markdown",
  "content": "# Penetration Test Report\\n\\n## Target: example.com\\n\\n## Executive Summary\\n\\nA comprehensive penetration test was conducted against example.com on April 10, 2026. The assessment identified 21 vulnerabilities: 1 critical, 3 high, 5 medium, 8 low, and 4 informational...\\n\\n## Findings\\n\\n### 1. SQL Injection in /api/users endpoint\\n\\n**Severity:** Critical | **CVSS:** 9.8\\n\\n...",
  "generatedAt": "2026-04-10T11:05:30Z",
  "wordCount": 4820
}
POST/v1/scans/:scanId/report/pdf

Generate PDF report

Request generation of a professionally formatted PDF report for a completed scan. The PDF includes your organization branding, executive summary, vulnerability details with screenshots, and remediation guidance. PDF generation is asynchronous; use the download endpoint to retrieve the file once ready.

Path Parameters

NameTypeDescription
scanIdrequired
stringScan ID (UUIDv7)

Example Request

bash
curl -X POST "https://apviso.com/api/v1/v1/scans/:scanId/report/pdf" \
  -H "X-API-Key: apvk_your_key_here"

Response

Returns the PDF generation status with an estimated ready time and download URL. Poll the download endpoint until the PDF is available.

json
{
  "scanId": "019414c3-d5e6-7f8a-b9c0-1d2e3f4a5b6c",
  "pdfStatus": "generating",
  "estimatedReadyAt": "2026-04-10T15:35:00Z",
  "downloadUrl": "/v1/scans/019414c3-d5e6-7f8a-b9c0-1d2e3f4a5b6c/report/pdf/download"
}
GET/v1/scans/:scanId/report/pdf/download

Download PDF report

Download the generated PDF report file. Returns the binary PDF data with appropriate content-type headers. Returns 202 if the PDF is still being generated, or 404 if no PDF has been requested for this scan.

The response is binary PDF data, not JSON. Handle the response as a file download. The `Content-Disposition` header includes a suggested filename.

Path Parameters

NameTypeDescription
scanIdrequired
stringScan ID (UUIDv7)

Example Request

bash
curl -X GET "https://apviso.com/api/v1/v1/scans/:scanId/report/pdf/download" \
  -H "X-API-Key: apvk_your_key_here"

Response

Returns the PDF file as binary data with `Content-Type: application/pdf`. Returns 202 with a JSON body if still generating, or 404 if no PDF report exists for this scan.

json
{
  "description": "Binary PDF file returned with Content-Type: application/pdf and Content-Disposition: attachment; filename=\"apviso-report-example.com-2026-04-10.pdf\""
}