Skip to content

Reports

Read a target's living reports and export them as PDF

GET/v1/targets/:targetId/reports

List a target's living reports

Retrieve every living report the target owns — the whole-target report (nodeKey null) and any node-scoped ones. Each report is a rolling document: every pentest appends a new version rather than creating a separate report. Report bodies are omitted here for size; fetch a single report to get its markdown.

Path Parameters

NameTypeDescription
targetIdrequired
stringTarget ID (UUIDv7)

Example Request

bash
curl -X GET "https://apviso.com/api/v1/targets/:targetId/reports" \
  -H "X-API-Key: apvk_your_key_here"

Response

Returns the target's living reports, most recently updated first.

json
{
  "reports": [
    {
      "id": "019382f1-8c4a-7b21-9f3e-2a1b4c6d8e05",
      "targetId": "019382f1-3d2c-7a11-8e4f-1b2c3d4e5f60",
      "nodeKey": null,
      "title": "Security assessment — app.example.com",
      "snapshotCount": 4,
      "latestSnapshot": {
        "id": "019382f2-1a2b-7c3d-8e4f-5a6b7c8d9e0f",
        "title": "Security assessment — app.example.com",
        "nodeKey": null,
        "scanId": "019382f0-9e8d-7c6b-5a4f-3e2d1c0b9a88",
        "pdfUrl": null,
        "findingsSummary": {
          "critical": 1,
          "high": 3,
          "medium": 5
        },
        "generatedAt": "2026-07-29T09:14:22.000Z"
      },
      "updatedAt": "2026-07-29T09:14:22.000Z"
    }
  ]
}
GET/v1/targets/:targetId/reports/:reportId

Get a report with its version history

Retrieve a single living report: the latest version's markdown plus every past version, newest first. Each snapshot carries its own markdown so you can diff or render any previous version.

Replaces the retired GET /v1/scans/:scanId/report. Reports are now owned by the target rather than a single pentest; use the snapshot list to find the version produced by a particular run via its scanId.

Path Parameters

NameTypeDescription
targetIdrequired
stringTarget ID (UUIDv7)
reportIdrequired
stringReport ID (UUIDv7)

Example Request

bash
curl -X GET "https://apviso.com/api/v1/targets/:targetId/reports/:reportId" \
  -H "X-API-Key: apvk_your_key_here"

Response

Returns the report with its latest markdown and full version history.

json
{
  "report": {
    "id": "019382f1-8c4a-7b21-9f3e-2a1b4c6d8e05",
    "targetId": "019382f1-3d2c-7a11-8e4f-1b2c3d4e5f60",
    "targetDomain": "app.example.com",
    "nodeKey": null,
    "title": "Security assessment — app.example.com",
    "markdownContent": "# Security assessment — app.example.com\n\n## Summary\n...",
    "pdfUrl": null,
    "latestSnapshotId": "019382f2-1a2b-7c3d-8e4f-5a6b7c8d9e0f",
    "snapshots": [
      {
        "id": "019382f2-1a2b-7c3d-8e4f-5a6b7c8d9e0f",
        "title": "Security assessment — app.example.com",
        "nodeKey": null,
        "scanId": "019382f0-9e8d-7c6b-5a4f-3e2d1c0b9a88",
        "markdownContent": "# Security assessment — app.example.com\n\n## Summary\n...",
        "pdfUrl": null,
        "findingsSummary": {
          "critical": 1,
          "high": 3
        },
        "generatedAt": "2026-07-29T09:14:22.000Z"
      }
    ],
    "updatedAt": "2026-07-29T09:14:22.000Z"
  }
}
POST/v1/targets/:targetId/reports/:reportId/pdf

Generate a PDF for a report

Render the report's latest version to a branded PDF and store it. Returns the storage path; use the download endpoint to fetch the bytes. Rate limited to 30 requests per minute.

Each report version renders to its own file, so generating a new version never overwrites the PDF of an older one.

Path Parameters

NameTypeDescription
targetIdrequired
stringTarget ID (UUIDv7)
reportIdrequired
stringReport ID (UUIDv7)

Example Request

bash
curl -X POST "https://apviso.com/api/v1/targets/:targetId/reports/:reportId/pdf" \
  -H "X-API-Key: apvk_your_key_here"

Response

Returns ready=true and the storage path of the rendered PDF.

json
{
  "ready": true,
  "pdfUrl": "reports/target/019382f1-8c4a-7b21-9f3e-2a1b4c6d8e05/snapshot-019382f2-1a2b-7c3d-8e4f-5a6b7c8d9e0f.pdf"
}
GET/v1/targets/:targetId/reports/:reportId/pdf/download

Download a report PDF

Download the report PDF as a binary stream. If the PDF has not been generated yet (or the stored file is missing) it is rendered on demand. Rate limited to 30 requests per minute.

Path Parameters

NameTypeDescription
targetIdrequired
stringTarget ID (UUIDv7)
reportIdrequired
stringReport ID (UUIDv7)

Example Request

bash
curl -X GET "https://apviso.com/api/v1/targets/:targetId/reports/:reportId/pdf/download" \
  -H "X-API-Key: apvk_your_key_here"

Response

Returns the PDF file with Content-Disposition: attachment.

json
Binary PDF stream (Content-Type: application/pdf)