Overview
The Vulnerabilities API provides endpoints for managing vulnerability templates (default vulnerabilities), individual vulnerabilities, categories, and tracking information. This includes creating and updating vulnerability templates, searching vulnerabilities, managing remediation status, and organizing vulnerabilities by category. All endpoints require authentication via theFACTION-API-KEY header.
Get All Default Vulnerabilities (JSON)
Authentication
API authentication key
Response
Returns an array ofDefaultVulnerabilityDTO objects.
Template ID
Vulnerability name
Category ID
Category name
Vulnerability description (HTML/Markdown)
Remediation recommendation (HTML/Markdown)
Severity level (0-9)
Impact score (0-9)
Likelihood score (0-9)
Whether template is active
CVSS 3.1 score
CVSS 3.1 vector string
CVSS 4.0 score
CVSS 4.0 vector string
Array of custom field objects
Status Codes
200- Success: All default vulnerabilities returned401- Not authorized400- Unknown error
Get All Default Vulnerabilities (CSV)
Authentication
API authentication key
Response
Returns CSV data with the following columns:- Id
- Name
- CategoryId
- CategoryName
- Description
- Recommendation
- SeverityId
- ImpactId
- LikelihoodId
- isActive
- CVSS31Score
- CVSS31String
- CVSS40Score
- CVSS40String
- CustomFields (JSON)
Status Codes
200- Success: CSV data returned401- Not authorized400- Unknown error
Upload Default Vulnerabilities (CSV)
Authentication
API authentication key
Request Body
CSV file with the following format:CSV Format Notes
- id: If empty, creates a new vulnerability. If populated, updates existing vulnerability.
- categoryId/categoryName: If categoryId is missing, categoryName is required. If category doesn’t exist, a new one is created.
- categoryId: If populated, categoryName is ignored.
Status Codes
200- Success: Vulnerabilities uploaded401- Not authorized400- Invalid CSV format or data
Upload Default Vulnerabilities (JSON)
Authentication
API authentication key
Request Body
Array ofDefaultVulnerabilityDTO objects:
Template ID (if updating existing template)
Vulnerability name
Category ID (required if categoryName not provided)
Category name (required if categoryId not provided)
Description (supports Markdown, will be converted to HTML)
Remediation recommendation (supports Markdown)
Severity level (0-9)
Impact score (0-9)
Likelihood score (0-9)
Whether template is active
CVSS 3.1 score
CVSS 3.1 vector string
CVSS 4.0 score
CVSS 4.0 vector string
Array of custom field objects with
key and value propertiesResponse
Array of created/updated vulnerability template IDs
Status Codes
200- Success: Templates created/updated400- Invalid data (missing required fields, invalid category)401- Not authorized
Search Default Vulnerabilities
Path Parameters
Vulnerability name to search (partial matching supported)
Authentication
API authentication key
Response
Returns an array of matchingDefaultVulnerabilityDTO objects with custom fields.
Status Codes
200- Success: Matching templates returned401- Not authorized400- Unknown error
Get Default Vulnerability by ID
Path Parameters
Default vulnerability template ID
Authentication
API authentication key
Response
Returns aDefaultVulnerabilityDTO object with custom fields.
Status Codes
200- Success: Template returned400- Invalid vulnerability template ID401- Not authorized
Get Vulnerability by ID
Path Parameters
Vulnerability ID
Authentication
API authentication key (requires Remediation or Manager role)
Response
Returns aVulnerabilityDTO object with custom fields.
Status Codes
200- Success: Vulnerability returned400- No matching vulnerability found401- Not authorized
Get Vulnerability by Tracking ID
Path Parameters
Vulnerability tracking ID
Authentication
API authentication key (requires Remediation or Manager role)
Response
Returns aVulnerabilityDTO object with custom fields.
Status Codes
200- Success: Vulnerability returned400- No matching tracking ID found401- Not authorized
Set Tracking ID
Authentication
API authentication key (requires Remediation or Manager role)
Form Parameters
Vulnerability ID
Tracking ID (e.g., JIRA ticket number)
Status Codes
200- Success: Tracking ID assigned400- Vulnerability not found401- Not authorized
Set Vulnerability Status
Authentication
API authentication key (requires Remediation or Manager role)
Form Parameters
Vulnerability ID (required if trackingId not provided)
Tracking ID (required if vulnId not provided)
Set to true if fixed in development environment
Set to true if fixed in production environment
Date of remediation in development
Date of remediation in production
Status Codes
200- Success: Status updated400- Vulnerability not found or invalid parameters401- Not authorized
Get All Vulnerabilities by Date Range
Authentication
API authentication key (requires Assessor, Manager, or Remediation role)
Form Parameters
Start date of search (MM/DD/YYYY format)
End date of search (MM/DD/YYYY format). If not provided, returns all from start date to present.
Response
Returns an array ofVulnerabilityDTO objects with custom fields.
Status Codes
200- Success: Vulnerabilities returned400- Invalid date format401- Not authorized
Get All Categories
Authentication
API authentication key
Response
Returns an array ofCategoryDTO objects.
Category ID
Category name
Status Codes
200- Success: Categories returned401- Not authorized
Get Category by ID
Path Parameters
Category ID
Authentication
API authentication key
Response
Returns aCategoryDTO object.
Status Codes
200- Success: Category returned404- Category not found401- Not authorized
Create Category
Authentication
API authentication key (requires Manager role)
Request Body
Category name
Response
Returns the createdCategoryDTO object.
Status Codes
200- Success: Category created400- Invalid name or category already exists401- Not authorized (Manager permission required)
Get Risk Levels
Authentication
API authentication key
Response
Returns an array of risk level objects:Risk level ID
Risk level name (e.g., “Critical”, “High”, “Medium”, “Low”)
Status Codes
200- Success: Risk levels returned401- Not authorized
Authorization Requirements
Default Vulnerabilities (Templates)
- View/Search: Any authenticated user
- Upload/Modify: Any authenticated user
Vulnerabilities (Instances)
- View by ID/Tracking: Remediation or Manager role
- Set Tracking/Status: Remediation or Manager role
- Get All by Date: Assessor, Manager, or Remediation role
Categories
- View: Any authenticated user
- Create: Manager role
Notes
- Markdown Support: Description and recommendation fields support Markdown syntax, which is automatically converted to HTML.
- Custom Fields: Both default vulnerabilities (templates) and vulnerability instances support custom fields.
- CVSS Versions: The system supports both CVSS 3.1 and CVSS 4.0 scoring.
- Tracking Integration: Use tracking IDs to integrate with external ticketing systems like JIRA.
- Remediation Tracking: Track remediation status separately for development and production environments.
