Skip to content

Exporting Results

Export completed scans as a shareable PDF report or a machine‑readable JSON file.

Export as PDF

To export findings as a PDF:

  1. Click on the specified completed scan.
  2. In the overview tab section, click the three dots icon … in the upper right.
  3. Select Export as PDF

The report will be downloaded to your local folder:

  • Filename format: [title-of-report--report-year-month-day]
  • Example: uniswap-v4-core--report-2025-03-26

PDF report contents

The PDF report includes all findings (including dismissals). Here's an example PDF output showing how findings are formatted in the report, including severity levels, file location, and detailed description:

PDF Output

Export as JSON

To export findings as JSON:

  1. Open a completed scan.
  2. Click the three dots icon … in the upper right.
  3. Select Export as JSON.

TIP

Exporting is a paid feature. If Export as PDF/JSON is disabled in the menu, your plan may not include exports.

The JSON report is downloaded locally with a filename like:

  • Format: <scan-name>-findings-YYYY-MM-DD.json
  • Example: my-project-main-findings-2026-01-01.json

WARNING

The exported JSON contains internal IDs (UUIDs), repository paths, and finding details. Redact sensitive information before sharing it externally.

JSON format (example)

This is an example export (sanitized; IDs and repo names replaced with placeholders, and long fields truncated):

json
{
  "metadata": {
    "scan_id": "<scan_uuid>",
    "scan_name": "<repo_owner>/<repo_name>@<git_sha>",
    "scan_date": "2026-01-01T12:04:00Z",
    "export_date": "2026-01-01T23:35:42.465Z"
  },
  "summary": {
    "total_findings": 2,
    "findings_by_severity": {
      "critical": 0,
      "high": 1,
      "medium": 1,
      "low": 0
    },
    "total_files": 6,
    "files_with_findings": 2
  },
  "findings": [
    {
      "id": "<finding_uuid>",
      "file_id": "<file_uuid>",
      "project_id": "<project_uuid>",
      "scan_id": "<scan_uuid>",
      "severity": "MEDIUM",
      "created_at": "2026-01-01T12:05:12Z",
      "title": "Stored XSS via unescaped feedback rendering",
      "category": "Cross-Site Scripting (XSS)",
      "description": "…",
      "recommendation": "…",
      "impacted_code": "…",
      "rating": "NONE",
      "state": "OPEN",
      "details": {
        "agent": {
          "name": "OTHER"
        },
        "sources": [
          {
            "type": "FILE",
            "name": "src/feedback_portal.php",
            "start_line": 1,
            "end_line": 200
          }
        ]
      },
      "location": {
        "start_location": { "line": 15 },
        "end_location": { "line": 25 }
      }
    },
    {
      "id": "<finding_uuid>",
      "file_id": "<file_uuid>",
      "project_id": "<project_uuid>",
      "scan_id": "<scan_uuid>",
      "severity": "HIGH",
      "created_at": "2026-01-01T12:05:18Z",
      "title": "Integer overflow enables undersized allocation and OOB reads",
      "category": "Resource Management",
      "description": "…",
      "recommendation": "…",
      "impacted_code": "…",
      "rating": "NONE",
      "state": "OPEN",
      "details": {
        "agent": {
          "name": "OTHER"
        },
        "sources": [
          {
            "type": "FILE",
            "name": "src/netmsg_processor.c",
            "start_line": 1,
            "end_line": 200
          }
        ]
      },
      "location": {
        "start_location": { "line": 17 },
        "end_location": { "line": 49 }
      }
    }
  ],
  "files": [
    {
      "id": "<file_uuid>",
      "name": "feedback_portal.php",
      "path": "src",
      "status": "COMPLETE",
      "findings_count": 1
    },
    {
      "id": "<file_uuid>",
      "name": "netmsg_processor.c",
      "path": "src",
      "status": "COMPLETE",
      "findings_count": 1
    }
  ]
}

Notes:

  • The export includes the scan’s findings array as-is (including the finding state).
  • summary.findings_by_severity currently includes counts for critical, high, medium, and low.