API list
Each supported REST API is documented in the Black Duck KB user interface. The following lists describes the API endpoints for Black Duck 2024.7.3.
Project Endpoints
Creating a Project
Creates a new project and project version within the application
POST /api/projects
Listing Projects
GET /api/projects
Accept: application/vnd.blackducksoftware.project-detail-4+json
Reading a Single Project
GET /api/projects/{projectId}
Updating a Project
PUT /api/projects/{projectId}
Deleting a Project
DELETE /api/projects/{projectId}
Project Version Endpoints
Creating a Project Version
POST /api/projects/{projectId}/versions
Listing Project Versions
GET /api/projects/{projectId}/versions
Reading a Single Project Version
GET /api/projects/{projectId}/versions/{projectVersionId}
Updating a Project Version
PUT /api/projects/{projectId}/versions/{projectVersionId}
Deleting a Project Version
DELETE /api/projects/{projectId}/versions/{projectVersionId}
Project Assignment Endpoints
Adding a User to a Project
POST /api/projects/{projectId}/users
Listing a Project’s Assignable Users
GET /api/projects/{projectId}/assignable-users
Reading a Single User in a Project
GET /api/projects/{projectId}/users/{userId}
Listing a Project’s Assigned Users
GET /api/projects/{projectId}/users
Listing Projects Assigned to a User Group
GET /api/usergroups/{userGroupId}/projects
Removing a User Group From a Project
DELETE /api/projects/{projectId}/usergroups/{userGroupId}
Project Custom Field Endpoints
Listing Project Custom Fields
Reading a Single Project Custom Field
GET /api/projects/{projectId}/custom-fields/{customFieldId}
Updating a Project Custom Field
PUT /api/projects/{projectId}/custom-fields/{customFieldId}
Updating Multiple Project Custom Fields
PUT /api/projects/{projectId}/custom-fields
Listing Project Version Custom Fields
GET /api/projects/{projectId}/versions/{projectVersionId}/custom-fields
Reading a Single Project Version Custom Field
GET /api/projects/{projectId}/versions/{projectVersionId}/custom-fields/{customFieldId}
Updating a Project Version Custom Field
PUT /api/projects/{projectId}/versions/{projectVersionId}/custom-fields/{customFieldId}
Updating Multiple Project Version Custom Fields
PUT /api/projects/{projectId}/versions/{projectVersionId}/custom-fields
Bill of Materials
The Bill of Materials (BOM) is the collection of components used within a project version.
BOM Endpoints
Adding a Component to the BOM
POST /api/projects/{projectId}/versions/{projectVersionId}/components
Listing BOM Components
GET /api/projects/{projectId}/versions/{projectVersionId}/components
Reading a Single BOM Component
GET /api/projects/{projectId}/versions/{projectVersionId}/components/{componentId}
Updating a BOM Component’s License Text
PUT /api/projects/{projectId}/versions/{projectVersionId}/components/{componentId}/licenses/{licenseId}/text
Updating a BOM Component Version’s License Text
PUT /api/projects/{projectId}/versions/{projectVersionId}/components/{componentId}/versions/{componentVersionId}/licenses/{licenseId}/text
Restoring a BOM Component’s License Text
DELETE /api/projects/{projectId}/versions/{projectVersionId}/components/{componentId}/licenses/{licenseId}/text
Sending a DELETE request to this endpoint removes any custom text and restores this component’s license to its original state.
Restoring a BOM Component Version’s License Text
DELETE /api/projects/{projectId}/versions/{projectVersionId}/components/{componentId}/versions/{componentVersionId}/licenses/{licenseId}/text
Sending a DELETE request to this endpoint removes any custom text and restores this component’s license to its original state.
BOM Comment Endpoints
Adding a Comment to a BOM Component
POST /api/projects/{projectId}/versions/{projectVersionId}/components/{componentId}/comments
Listing BOM Component Comments
GET /api/projects/{projectId}/versions/{projectVersionId}/components/{componentId}/comments
Reading a Single BOM Component Comment
GET /api/projects/{projectId}/versions/{projectVersionId}/components/{componentId}/comments/{commentId}
Updating a BOM Component Comment
PUT /api/projects/{projectId}/versions/{projectVersionId}/components/{componentId}/comments/{commentId}
Deleting a BOM Component Comment
DELETE /api/projects/{projectId}/versions/{projectVersionId}/components/{componentId}/comments/{commentId}
Adding a Comment to a BOM Component Version
POST /api/projects/{projectId}/versions/{projectVersionId}/components/{componentId}/component-versions/{componentVersionId}/comments
Listing BOM Component Version Comments
GET /api/projects/{projectId}/versions/{projectVersionId}/components/{componentId}/component-versions/{componentVersionId}/comments
Reading a Single BOM Component Version Comment
GET /api/projects/{projectId}/versions/{projectVersionId}/components/{componentId}/component-versions/{componentVersionId}/comments/{commentId}
Updating a BOM Component Version Comment
PUT /api/projects/{projectId}/versions/{projectVersionId}/components/{componentId}/component-versions/{componentVersionId}/comments/{commentId}
Deleting a BOM Component Version Comment
DELETE /api/projects/{projectId}/versions/{projectVersionId}/components/{componentId}/component-versions/{componentVersionId}/comments/{commentId}
BOM Custom Field Endpoints
Listing BOM Component Custom Fields
GET /api/projects/{projectId}/versions/{projectVersionId}/components/{componentId}/custom-fields
Reading a Single BOM Component Custom Field
GET /api/projects/{projectId}/versions/{projectVersionId}/components/{componentId}/custom-fields/{customFieldId}
Updating a BOM Component Custom Field
PUT /api/projects/{projectId}/versions/{projectVersionId}/components/{componentId}/custom-fields/{customFieldId}
Listing Bom Component Version Custom Fields
GET /api/projects/{projectId}/versions/{projectVersionId}/components/{componentId}/versions/{componentVersionId}/custom-fields
Reading a Single BOM Component Version Custom Field
GET /api/projects/{projectId}/versions/{projectVersionId}/components/{componentId}/versions/{componentVersionId}/custom-fields/{customFieldId}
Updating a BOM Component Version Custom Field
PUT /api/projects/{projectId}/versions/{projectVersionId}/components/{componentId}/versions/{componentVersionId}/custom-fields/{customFieldId}
Components
Components are general classifications of a collection of reusable code that is edited and released under a single label.
Component Endpoints
Creating a Custom Component
Creates a new component and component version within the application.
POST /api/components
Reading a Single Component
GET /api/components/{componentId}
Updating a Component
PUT /api/components/{componentId}
Deleting a Custom Component
DELETE /api/components/{componentId}
Deletes a custom component entirely, or resets modifications on a KnowledgeBase component.
Component Custom Field Endpoints
Updating a Component Custom Field
PUT /api/components/{componentId}/custom-fields/{customFieldId}
Updating Multiple Component Custom Fields
PUT /api/components/{componentId}/custom-fields
License Endpoints
Creating a License
POST /api/licenses
Listing Licenses
GET /api/licenses
Reading a Single License
GET /api/licenses/{licenseId}
Updating a License
PUT /api/licenses/{licenseId}
Deleting a License
DELETE /api/licenses/{licenseId}
Reading a License’s Text
GET /api/licenses/{licenseId}/text
Updating a License’s Text
PUT /api/licenses/{licenseId}/text
License Families
Listing License Families
GET /api/license-families
Reading a Single License Family
GET /api/license-families/{licenseFamilyId}
Creating a License Family
POST /api/license-families
Updating a License Family
PUT /api/license-families/{licenseFamilyId}
Deleting a License Family
DELETE /api/license-families/{licenseFamilyId}
License Terms
Adding a License Term to a License
POST /api/licenses/{licenseId}/license-terms
Listing License Terms of a License
GET /api/licenses/{licenseId}/license-terms
Reading a Single License Term of a License
GET /api/licenses/{licenseId}/license-terms/{licenseTermId}
Updating a License Term of a License
PUT /api/licenses/{licenseId}/license-terms/{licenseTermId}
Deleting a License Term from a License
DELETE /api/licenses/{licenseId}/license-terms/{licenseTermId}
Vulnerability Endpoints
Listing Vulnerabilities by Component
GET /api/components/{componentId}/vulnerabilities
Listing Vulnerabilities by Component Version
GET /api/components/{componentId}/versions/{componentVersionId}/vulnerabilities
Listing Vulnerabilities by Component Version and Origin
GET /api/components/{componentId}/versions/{componentVersionId}/origin/{componentVersionOriginId}/vulnerabilities
Reading a Single Vulnerability
GET /api/vulnerabilities/{vulnerabilityId}
Common Weakness Enumeration Endpoints
Endpoints involving Commmon Weakness Enumerations (CWE).
Reading a Single CWE
GET /api/cwes/{cweId}
Affected Project Version Endpoints
Listing Affected Project Versions
GET /api/vulnerabilities/{vulnerabilityId}/affected-projects
Notifications
Notifications are records of application events of interest to end users.
Listing Notifications
GET /api/notifications
Reading a Single Notification
GET /api/notifications/{notificationId}
Policies
Creating a Policy
POST /api/policy-rules
Listing Policies
GET /api/policy-rules
Reading a Single Policy
GET /api/policy-rules/{policyRuleId}
Updating a Policy
PUT /api/policy-rules/{policyRuleId}
Deleting a Policy
DELETE /api/policy-rules/{policyRuleId}
Reports
Version Report Endpoints
Listing Version Reports
GET /api/versions/{projectVersionId}/reports
Reading a Single Version Report
GET /api/versions/{projectVersionId}/reports/{reportId}
Creating a Version Report
POST /api/versions/{projectVersionId}/reports
Deleting a Version Report
DELETE /api/versions/{projectVersionId}/reports/{reportId}
Version License Report Endpoints
Listing Version License Reports
GET /api/versions/{projectVersionId}/license-reports
Reading a Single Version License Report
GET /api/versions/{projectVersionId}/license-reports/{reportId}
Creating a Version License Report
POST /api/versions/{projectVersionId}/license-reports
Deleting a Version License Report
DELETE /api/versions/{projectVersionId}/license-reports/{reportId}
Vulnerability Report Endpoints
Reading a Single Vulnerability Report
GET /api/vulnerability-reports/{reportId}
Deleting a Vulnerability Report
DELETE /api/vulnerability-reports/{reportId}
Listing Vulnerability Remediation Reports
GET /api/vulnerability-remediation-reports
Creating a Vulnerability Remediation Report
POST /api/vulnerability-remediation-reports
Listing Vulnerability Status Reports
GET /api/vulnerability-status-reports
Creating a Vulnerability Status Report
POST /api/vulnerability-status-reports
Listing Vulnerability Update Reports
GET /api/vulnerability-update-reports
Creating a Vulnerability Update Report
POST /api/vulnerability-update-reports
Reading a Report’s Contents
GET /api/reports/{reportId}/contents
Scans
Uploading Analysis Files
POST /api/scan/data/
Code Location Endpoints
Listing Code Locations
GET /api/codelocations
Reading a Single Code Location
GET /api/codelocations/{codeLocationId}
Updating a Code Location
PUT /api/codelocations/{codeLocationId}
Deleting a Code Location
DELETE /api/codelocations/{codeLocationId}
Deletes a code location.
Listing Code Location Scans
GET /api/codelocations/{codeLocationId}/scan-summaries
Reading a Single Scan
GET /api/scan-summaries/{scanId}
Status
Status related endpoints provide information about the application such as linking, job information, and registration.
Registration Endpoints
Activating Registration
POST /api/registration
Updating Registration
PUT /api/registration
Job Endpoints
Listing Jobs
GET /api/jobs
Reading a Single Job
GET /api/jobs/{jobId}
Rescheduling a Job
PUT /api/jobs/{jobId}
Terminating a Job
DELETE /api/jobs/{jobId}
User Endpoints
Reading the Current User
GET /api/current-user
Creating a User
POST /api/users
Listing Users
GET /api/users
Reading a Single User
GET /api/users/{userId}
Updating a User
PUT /api/users/{userId}
Resetting a User’s Password
PUT /api/users/{userId}/resetpassword
Changing a User’s Password
PUT /api/users/{userId}/changepassword
User Group Endpoints
Creating a User Group
POST /api/usergroups
Listing User Groups
GET /api/usergroups
Reading a Single User Group
GET /api/usergroups/{userGroupId}
Updating a User Group
PUT /api/usergroups/{userGroupId}
Deleting a User Group
DELETE /api/usergroups/{userGroupId}
Role Endpoints
Listing Roles
GET /api/roles
Reading a Single Role
GET /api/roles/{roleId}
Listing a Role’s Users
GET /api/roles/{roleId}/users
Listing a User’s Roles
GET /api/users/{userId}/roles
Listing a User’s Inherited Roles
GET /api/users/{userId}/inherited-roles
Assigning Roles to a User
POST /api/users/{userId}/roles
Reading a User’s Assigned Role
GET /api/users/{userId}/roles/{roleAssignmentId}
Deleting a User’s Assigned Role
DELETE /api/users/{userId}/roles/{roleAssignmentId}
Admin
The following endpoints enable administration of the Black Duck system. Typically, only a system administrator has permission to interact with these APIs.
Listing Custom Field Datatypes
GET /api/custom-fields/types
Listing Custom Field Objects
GET /api/custom-fields/objects
Reading a Single Custom Field Object
GET /api/custom-fields/objects/{customFieldObject}
Creating a Custom Field
POST /api/custom-fields/objects/{customFieldObject}/fields
Listing Custom Fields
GET /api/custom-fields/objects/{customFieldObject}/fields
Reading a Single Custom Field
GET /api/custom-fields/objects/{customFieldObject}/fields/{customFieldId}
Updating a Custom Field
PUT /api/custom-fields/objects/{customFieldObject}/fields/{customFieldId}
Deleting a Custom Field
DELETE /api/custom-fields/objects/{customFieldObject}/fields/{customFieldId}
Listing Custom Field Options
GET /api/custom-fields/objects/{customFieldObject}/fields/{customFieldId}/options
Creating a Custom Field Option
POST /api/custom-fields/objects/{customFieldObject}/fields/{customFieldId}/options
Updating a Custom Field Option
PUT /api/custom-fields/objects/{customFieldObject}/fields/{customFieldId}/options/{customFieldOptionId}
Deleting a Custom Field Option
DELETE /api/custom-fields/objects/{customFieldObject}/fields/{customFieldId}/options/{customFieldOptionId}