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/
Note: Black Duck recommends that you do not upload files manually using this API; use tools such as Detect to both generate and upload files.

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}
Note: By deleting a custom field definition you also delete any of that custom field’s options.

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}