Reports
Access scan reports in markdown and PDF formats
/v1/scans/:scanId/reportGet 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.
Path Parameters
| Name | Type | Description |
|---|---|---|
scanIdrequired | string | Scan ID (UUIDv7) |
Example Request
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.
{
"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
}/v1/scans/:scanId/report/pdfGenerate 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
| Name | Type | Description |
|---|---|---|
scanIdrequired | string | Scan ID (UUIDv7) |
Example Request
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.
{
"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"
}/v1/scans/:scanId/report/pdf/downloadDownload 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.
Path Parameters
| Name | Type | Description |
|---|---|---|
scanIdrequired | string | Scan ID (UUIDv7) |
Example Request
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.
{
"description": "Binary PDF file returned with Content-Type: application/pdf and Content-Disposition: attachment; filename=\"apviso-report-example.com-2026-04-10.pdf\""
}