Skip to main content

Review and report

availability

Deployment: Invicti Platform on-demand, Invicti Platform on-premises

Part of API scanning workflows series

This is part 4 of 4 in the API scanning workflows series.
Previous: Launch

This document explains how to analyze completed scan results, investigate individual vulnerabilities, and generate detailed security reports using the Invicti Platform API.

Prerequisites

Before following this document, ensure you have completed:

Step 1: Review scan activity (optional)

This step retrieves the scan activity log - the same messages shown in the UI during scanning. For a completed scan, most messages are informational (scan started, scan finished). The main reason to run this request is to investigate warnings such as authentication issues encountered during the scan. If you're not debugging scan behavior, you can skip to Step 2.

Run this request to review scan statistics and activity

Using the DAST API, retrieve scan statistics using the scan_id and scan_session_id from your completed scan:

GET <base-url>/api/v1/scans/<your-scan-id>/results/<your-scan-session-id>/statistics
Headers:
accept: application/json
X-Auth: <your-api-token>
PlaceholderRequiredDescriptionExample
<base-url>YesYour regional platform URL. Refer to Platform URLshttps://platform.invicti.com
<your-api-token>YesYour API key from User settingsa1b2c3d4-e5f6-...
<your-scan-id>YesThe scan ID from the Launch workflowcda0f3cf-5a2d-41eb-a9fb-5fa661167fd9
<your-scan-session-id>YesThe scan session ID from the Launch workflowd54012e4-9a9e-4b18-8cd7-f48bb7206225

Expected response: HTTP 200 with scan activity data. The scanMessage array contains the same scan activity data you see in the UI.

{
"scanMessage": [
{
"id": "28370a1d-b0b2-47b6-93e2-e4a4cf72f192",
"level": -1,
"message": "",
"targetId": "2df49409-ee21-4080-9640-eb46f4610054",
"messageDate": "2026-03-17T12:50:41.325829+00:00",
"messageKind": "scanning"
},
{
"id": "ea4568b9-874f-45c6-897a-0929e4877a12",
"level": 1,
"message": "HTTP Authentication required on: http://python.testinvicti.com/admin/",
"targetId": "2df49409-ee21-4080-9640-eb46f4610054",
"messageDate": "2026-03-17T12:52:50.301137+00:00",
"messageKind": "httpwrn_no_credentials"
},
{
"id": "4c2cca47-f42b-40f1-9b41-955c623a8441",
"level": -1,
"message": "",
"targetId": "2df49409-ee21-4080-9640-eb46f4610054",
"messageDate": "2026-03-17T12:57:38.650641+00:00",
"messageKind": "finished"
}
]
}
Review the scanMessage section.Review the scanMessage section.

Interpret scan messages

Message KindDescriptionAction Required
scanningScan startedInformation only
finishedScan completedInformation only
httpwrn_no_credentialsAuthentication issue encounteredConsider configuring authentication
warningNon-critical scan warningReview scan configuration
errorScan error occurredInvestigate and resolve

Step 2: Review discovered vulnerabilities

This step retrieves the full list of vulnerabilities found during the scan. Each vulnerability includes a severity rating, the affected URL, and a vuln_id you need for detailed analysis in Step 3.

Run this request to get vulnerability summary

Once the scan is completed, retrieve the found vulnerabilities using the scan_id and scan_session_id:

GET <base-url>/api/v1/scans/<your-scan-id>/results/<your-scan-session-id>/vulnerabilities
Headers:
accept: application/json
X-Auth: <your-api-token>
PlaceholderRequiredDescriptionExample
<base-url>YesYour regional platform URL. Refer to Platform URLshttps://platform.invicti.com
<your-api-token>YesYour API key from User settingsa1b2c3d4-e5f6-...
<your-scan-id>YesThe scan ID from the Launch workflowcda0f3cf-...
<your-scan-session-id>YesThe scan session ID from the Launch workflowd54012e4-...

Expected response: HTTP 200 with a list of vulnerabilities. Note the vuln_id for each vulnerability - you'll need these for detailed analysis.

{
"vulnerabilities": [
{
"affects_detail": "",
"affects_url": "http://python.testinvicti.com/forgotpw",
"api_operation_id": null,
"api_type": null,
"app": "wvs",
"confidence": 100,
"loc_id": 121,
"proofs": [],
"severity": 4,
"tags": [
"ssrf",
"CWE-918",
"verified",
"confidence.100",
"api_ssrf",
"acumonitor"
],
"target_id": "2df49409-ee21-4080-9640-eb46f4610054",
"vt_id": "15b3edfa-c2f1-e828-2776-d49b46a11c9a",
"vt_name": "Server-Side Request Forgery",
"vuln_id": "146155269760494467"
}
]
}
Review discovered vulnerabilitiesReview discovered vulnerabilities

Understand vulnerability fields

FieldDescriptionImportance
vuln_idUnique identifier for this vulnerability instanceRequired for detailed investigation
vt_nameVulnerability type nameDescribes the security issue
severitySeverity level (1=Low to 5=Critical)Risk prioritization
confidenceDetection confidence (0-100)Reliability indicator
affects_urlSpecific URL where vulnerability was foundLocation for remediation
tagsVulnerability classification tagsContext and categorization

Step 3: Analyze individual vulnerabilities

This step retrieves the full technical detail for a single vulnerability using its vuln_id from Step 2. Run this request once per vulnerability you want to investigate. The response includes a description, impact assessment, proof of concept, and remediation guidance.

Run this request to get detailed vulnerability information

With the vuln_id from Step 2, you can review each vulnerability in detail to understand the security issue and remediation steps:

GET <base-url>/api/v1/scan_vulnerabilities/<your-vuln-id>
Headers:
accept: application/json
X-Auth: <your-api-token>
PlaceholderRequiredDescriptionExample
<base-url>YesYour regional platform URL. Refer to Platform URLshttps://platform.invicti.com
<your-api-token>YesYour API key from User settingsa1b2c3d4-e5f6-...
<your-vuln-id>YesThe vulnerability ID from Step 2146155269760494467

Expected response: HTTP 200 with comprehensive vulnerability details including:

  • Description: Detailed explanation of the security issue
  • Impact: Potential consequences if exploited
  • Proof of concept: Evidence demonstrating the vulnerability
  • Remediation: Specific steps to fix the issue
  • References: Links to security standards and documentation
Analyze individual vulnerabilities.Analyze individual vulnerabilities.

This detailed information enables development teams to understand and remediate security issues effectively.

Step 4: Specify report template (optional)

This step retrieves the list of available report templates and their IDs. If you want to use the Comprehensive template (recommended for most use cases), you can skip this step - the template ID is provided directly in Step 5.

Run this request to browse available report templates

If you want to use the Comprehensive report template (recommended), you can skip this step and use template ID 11111111-1111-1111-1111-111111111126.

To explore other templates, run this request to retrieve all available options:

GET <base-url>/api/v1/report_templates
Headers:
accept: application/json
X-Auth: <your-api-token>
PlaceholderRequiredDescriptionExample
<base-url>YesYour regional platform URL. Refer to Platform URLshttps://platform.invicti.com
<your-api-token>YesYour API key from User settingsa1b2c3d4-e5f6-...

Expected response: HTTP 200 with a list of all template IDs, accepted sources, and names.

Get the report template id or use one from the list.Get the report template id or use one from the list.

Standard report templates

NameTemplate IDUse Case
Affected Items11111111-1111-1111-1111-111111111115Focus on vulnerable URLs and parameters
Comprehensive11111111-1111-1111-1111-111111111126Complete technical analysis (recommended)
Developer11111111-1111-1111-1111-111111111111Developer-focused remediation guidance
Executive Summary11111111-1111-1111-1111-111111111113High-level security overview for management
SCA11111111-1111-1111-1111-111111111142Software composition analysis

Compliance report templates

StandardTemplate IDUse Case
CWE/SANS Top 2511111111-1111-1111-1111-111111111116Most dangerous software weaknesses
DISA STIG11111111-1111-1111-1111-111111111122Defense Information Systems Agency security requirements
HIPAA11111111-1111-1111-1111-111111111114Healthcare data protection compliance
ISO 2700111111111-1111-1111-1111-111111111117Information security management
NIST SP 800-5311111111-1111-1111-1111-111111111118Federal security controls
OWASP ASVS 5.011111111-1111-1111-1111-111112025003Application security verification standard
OWASP Top 10 202511111111-1111-1111-1111-111111111131Latest web application security standard
OWASP Top 10 API Security Risks 202311111111-1111-1111-1111-111112025002API-specific security risks
OWASP Top 10 for LLM Applications 202511111111-1111-1111-1111-111112025001AI and LLM application security
PCI DSS 4.011111111-1111-1111-1111-111111111130Payment card industry compliance

Step 5: Generate a report

This step submits the report generation request. The API returns a report_id immediately - report generation happens asynchronously, so the report won't be ready yet. Use the report_id in Step 6 to poll for completion and retrieve the download links.

Run this request to initiate report generation

Using the DAST API, generate a comprehensive report for your scan:

POST <base-url>/api/v1/reports
Headers:
accept: application/json
content-type: application/json
X-Auth: <your-api-token>
Body:
{
"template_id": "<your-template-id>",
"source": {
"list_type": "scans",
"id_list": [
"<your-scan-id>"
]
}
}
PlaceholderRequiredDescriptionExample
<base-url>YesYour regional platform URL. Refer to Platform URLshttps://platform.invicti.com
<your-api-token>YesYour API key from User settingsa1b2c3d4-e5f6-...
<your-template-id>YesThe template ID from Step 411111111-1111-...
<your-scan-id>YesThe scan ID from the Launch workflowcda0f3cf-...

Expected response: HTTP 201 with report generation details. Note the report_id - you need it in Step 6.

{
"download": [],
"generation_date": "2026-03-17T13:14:16.318052+00:00",
"report_id": "1777d3d2-f4c8-4051-a36d-c0a9a7c0ed53",
"source": {
"list_type": "scans",
"description": "http://python.testinvicti.com;",
"id_list": [
"21e8c7ab-0ad9-4453-ae24-a1fe1d5ebab8"
]
},
"status": "queued",
"template_id": "11111111-1111-1111-1111-111111111126",
"template_name": "Comprehensive",
"template_type": 0
}

Note: The download array is empty and status is queued because the report is still being generated. Download links appear once generation is complete (Step 6).

Run this request to initiate report generation.Run this request to initiate report generation.

Step 6: Download completed report

This step polls the report status using the report_id from Step 5. Once the status field shows completed, the response includes download URLs for both HTML and PDF versions of the report.

Run this request to get report download links

Using the DAST API, retrieve your completed report using the report_id from Step 5:

GET <base-url>/api/v1/reports/<your-report-id>
Headers:
accept: application/json
X-Auth: <your-api-token>
PlaceholderRequiredDescriptionExample
<base-url>YesYour regional platform URL. Refer to Platform URLshttps://platform.invicti.com
<your-api-token>YesYour API key from User settingsa1b2c3d4-e5f6-...
<your-report-id>YesThe report ID from Step 51777d3d2-...

Expected response: HTTP 200. Once status is completed, the download array contains download links.

{
"download": [
"https://reports.example.com/20260317_Comprehensive_http_python_testinvicti_com.html",
"https://reports.example.com/20260317_Comprehensive_http_python_testinvicti_com.pdf"
],
"generation_date": "2026-03-17T13:14:16.304859+00:00",
"report_id": "1777d3d2-f4c8-4051-a36d-c0a9a7c0ed53",
"source": {
"list_type": "scans",
"description": "http://python.testinvicti.com;",
"id_list": [
"21e8c7ab-0ad9-4453-ae24-a1fe1d5ebab8"
]
},
"status": "completed",
"template_id": "11111111-1111-1111-1111-111111111126",
"template_name": "Comprehensive",
"template_type": 0
}
Get downloadable links for the generated reports.Get downloadable links for the generated reports.

Report formats available

  • HTML Report: Interactive web format with clickable navigation
  • PDF Report: Print-ready format for stakeholder distribution

Download recommendation: Use the provided URLs to download reports directly, or integrate download automation into your CI/CD pipeline.

Summary

You have successfully completed the full API-driven security scanning workflow:

Scan activity reviewed - Scan log inspected for warnings and errors (optional)
Vulnerabilities identified - Security issues listed and filtered by severity
Detailed analysis performed - Individual vulnerabilities inspected for technical detail
Report generated - Security report created and download URLs retrieved

Key deliverables

  • Scan statistics: Performance and coverage metrics
  • Vulnerability inventory: Complete list of security issues by severity
  • Detailed findings: Technical analysis with proof of concept
  • Compliance reports: Standards-aligned documentation (HTML & PDF)

Next steps

With completed results analysis, you can now:

Complete workflow series

You have mastered the complete Invicti Platform API workflow. You can now implement automated security scanning at scale.


Need help?

Invicti Support team is ready to provide you with technical help. Go to Help Center

Was this page useful?