Pwnkemon

Reports & exports

Every completed scan produces a structured report. You can read it in the dashboard or download it in any of four formats. Available formats depend on your plan.

What's in a report

Steps to replicate

Each finding carries an ordered, copy-pasteable set of reproduction steps so a developer can confirm the issue without re-running the scan. Steps are written against the scanned target and mirror the same tool output shown under evidence. For example:

Steps to replicate:
1. curl -sk https://target.example/deployments/a1b2c3d4
2. Observe HTTP 200 returning the deployment's contents with no auth prompt.

Available formats

FormatEndpointUse case
MarkdownGET /scans/{id}/report.mdGitHub issues, Slack posts, copy-paste into docs.
HTMLGET /scans/{id}/report.htmlBranded, printable, viewable in browser.
PDFGET /scans/{id}/report.pdfStakeholders, board packs, compliance evidence.
CSVGET /scans/{id}/findings.csvSIEM ingestion, ticketing imports, spreadsheets.

Plan availability

FormatFreeStarter+
MarkdownWatermarkedClean
HTMLWatermarkedClean
PDFNot availableClean
CSVNot availableClean

Free-tier reports carry a DEMO — NOT FOR COMPLIANCE USE watermark and expire after 7 days. PDF and CSV exports are gated to paid plans, as is indefinite retention.

Downloading from the dashboard

Open a completed scan and use the download buttons in the header card. The dashboard sends the request with your session token; no extra auth needed.

Downloading via the API

All four endpoints require Authorization: Bearer <token> — either a Clerk JWT or a pt_ API token. They return the raw file content with the appropriate Content-Type.

curl -O -J \
  -H "Authorization: Bearer pt_..." \
  https://pwnkemon.com/api/scans/<scan_id>/report.pdf

Report retention

On paid plans, reports are stored indefinitely. On the Free plan, reports auto-delete 7 days after the scan completes — the API returns HTTP 410 Gone after that, and the dashboard shows "Report expired". Re-running the scan produces a fresh report with a new expiry.

Webhook delivery

If you provide a callback_url when launching a scan, Pwnkemon will POST the final report payload (JSON) to that URL on completion. See webhooks.

Reports & exports