This section of the user guide describes how you can programmatically interact with the MetaDefender Software Supply Chain REST API. Below are some common tasks that can be done using the available REST APIs:

  • Authenticate to obtain a JSON Web Token(JWT)
  • Start or stop a process(scan)
  • Add / remove service units

About this REST API

The exposed endpoint is located by default at http(s)://mdssc-server/api/ (for example, the authentication endpoint is available at http(s)://mdssc-server/api/user/authenticate). All requests are handled by the NGINX web server before being proxied to the backend API Gateway service.

All endpoints perform authentication and authorization checks. For these checks to succeed, a valid token should be presented in the Authorization header in the form of Bearer.

Please note that all issued tokens have a timestamp and signature associated in order to prevent long-term usage without re - authentication. The lifespan of the token is currently set to 60 minutes, meaning you will have to request a new token before it expires in order to avoid error responses.

http Bearer

Access Token required

apiKey ApiKey

API Key sent in header

Fields
KeyIn
API KeyHeader
apiKey HmacAuth

HMAC SHA-256 signature (X-Hub-Signature)

Fields
KeyIn
X-Hub-SignatureHeader

Audit

Audit Management

List audit events

Auth
Query String
Startstring

pattern: ^[0-9]*$

Countstring

pattern: ^[0-9]*$

LogTypestring

Enum: FileDiscovered,FileScanned,FileDiscoveryFailed,ProcessStarted,ProcessCompleted,ProcessCancelled,ProcessFailed,ServiceAdded,ServiceUpdated,ServiceRemoved,LoggedIn,LoggedOut,UserCreated,UserRegistered,UserRoleUpdated,UserUpdated,UserRemoved,ScanInstanceAdd,ScanInstanceUpdate,ScanInstanceDelete,ScanInstanceImport,ScanPoolAdd,ScanPoolUpdate,ScanPoolDelete,ScanPoolImport,OnlineLicenseActivated,OfflineLicenseActivated,LicenseDeactivated,ConfigurationImported,ConfigurationExported,Notifications,Smtp,ExternalLoggerAdd,ExternalLoggerUpdate,ExternalLoggerDelete,DataRetention,ApiKeyAdd,ApiKeyUpdate,ApiKeyDelete,ScanConfigurationAdd,ScanConfigurationUpdate,ScanConfigurationDelete,ScanConfigurationSetDefault,ScanConfigurationImport,ScanAdd,ScanUpdate,ScanDelete,Other

CategoryTypestring

Enum: Processes,Remediations,ServiceUnits,Authentication,Settings,Users,Notifications,Other

LogLevelstring

Enum: Debug,Info,Warn,Error

SearchTextstring
GET /api/v1/audit
Copy
Responses
200

Success

400

Bad Request

Response
Copy

Export a CycloneDX report for repository

Auth
Path Params
repoIdstring
Query String
Referencestring
GET /api/v1/export/cyclonedx/{repoId}
Copy
Responses
200

Success

filefile
400

Bad Request

404

Not Found

Response
Copy

Export a PDF report for all scans

Auth
Query String
ProductAddressstring
Typearray

Enum: GitHubSdk,DockerHubSdk,BitbucketSdk,AmazonEcrSdk,QuaySdk,JFrogContainerSdk,JFrogBinarySdk,AzureAcrSdk,GitLabSourceSdk,GitLabContainerSdk,SvnSdk

TimeFramestring

Enum: OneDay,TwoDays,ThreeDays

Vulnerabilitiesarray

Enum: None,Critical,High,Medium,Low,Unknown

LicenseRisksarray
Statusarray

Enum: NotStarted,Running,Cancelled,Failed,Completed

TriggerEventarray
Workflowstring
Connectionstring
Secretsboolean
Threatsboolean
Searchstring
ConnectionTypestring

Enum: Unknown,SourceCode,Container,Binary

GET /api/v1/export/pdf/all-scans
Copy
Responses
200

Success

filefile
400

Bad Request

404

Not Found

Response
Copy

Export a PDF Overview report for repository

Auth
Path Params
scanIdstring
Query String
ProductAddressstring
GET /api/v1/export/pdf/overview/{scanId}
Copy
Responses
200

Success

filefile
400

Bad Request

404

Not Found

Response
Copy

Export a PDF SBOM report for repository

Auth
Path Params
scanIdstring
Query String
ProductAddressstring
GET /api/v1/export/pdf/sbom/{scanId}
Copy
Responses
200

Success

filefile
400

Bad Request

404

Not Found

Response
Copy

Get all configured External Loggers

Auth
GET /api/v1/externallogger
Copy
Responses
200

Success

No response body
Response
Copy

Add a new External Logger

Auth
Request Body
objectobject
ConnectionSettingsobject
ServerAddressstring
Portint32
Facilitystring

Enum: KernelMessages,UserLevelMessages,MailSystem,SystemDaemons,SecurityOrAuthorizationMessages1,InternalMessages,LinePrinterSubsystem,NetworkNewsSubsystem,UUCPSubsystem,ClockDaemon1,SecurityOrAuthorizationMessages2,FTPDaemon,NTPSubsystem,LogAudit,LogAlert,ClockDaemon2,LocalUse0,LocalUse1,LocalUse2,LocalUse3,LocalUse4,LocalUse5,LocalUse6,LocalUse7

Formatstring

Enum: RFC5424

POST /api/v1/externallogger
Copy
Responses
200

Success

No response body
Response
Copy

Update an existing External Logger

Auth
Path Params
idstring
Request Body
objectobject
ConnectionSettingsobject
ServerAddressstring
Portint32
Facilitystring

Enum: KernelMessages,UserLevelMessages,MailSystem,SystemDaemons,SecurityOrAuthorizationMessages1,InternalMessages,LinePrinterSubsystem,NetworkNewsSubsystem,UUCPSubsystem,ClockDaemon1,SecurityOrAuthorizationMessages2,FTPDaemon,NTPSubsystem,LogAudit,LogAlert,ClockDaemon2,LocalUse0,LocalUse1,LocalUse2,LocalUse3,LocalUse4,LocalUse5,LocalUse6,LocalUse7

Formatstring

Enum: RFC5424

PUT /api/v1/externallogger/{id}
Copy
Responses
200

Success

No response body
Response
Copy

Delete an External Logger

Auth
Path Params
idstring
DELETE /api/v1/externallogger/{id}
Copy
Responses
200

Success

No response body
Response
Copy

Returns all global label keys

Auth
GET /api/v1/global-label-keys
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
GlobalKeysarray[object]
Idstring
Namestring
Descriptionstring
ValueTypestring
Optionsarray[string]
Createddate-time
Updateddate-time
TenantIdstring
CreatedAtdate-time
LastUpdateddate-time
Response
Copy

Adds a new global label key

Auth
Request Body
objectobject
Namestring
Descriptionstring
ValueTypestring
Optionsarray[string]
POST /api/v1/global-label-keys
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
GlobalKeyobject
Idstring
Namestring
Descriptionstring
ValueTypestring
Optionsarray[string]
Createddate-time
Updateddate-time
TenantIdstring
CreatedAtdate-time
LastUpdateddate-time
Response
Copy

Updates an existing global label key

Auth
Path Params
idstring
Request Body
objectobject
Namestring
Descriptionstring
ValueTypestring
Optionsarray[string]
PUT /api/v1/global-label-keys/{id}
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
GlobalKeyobject
Idstring
Namestring
Descriptionstring
ValueTypestring
Optionsarray[string]
Createddate-time
Updateddate-time
TenantIdstring
CreatedAtdate-time
LastUpdateddate-time
Response
Copy

Deletes a global label key

Auth
Path Params
idstring
DELETE /api/v1/global-label-keys/{id}
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
Response
Copy

Retrieves a list of packages based on search criteria

Auth
Query String
Namestring
Ecosystemstring
Versionstring
Vulnerabilitiesarray
LicenseRisksarray
Connectionstring
Repositorystring
Referencestring
ScanIdstring
StepSha256string
Searchstring
GET /api/v1/packages
Copy
Responses
200

Success

Response
Copy

Retrieves all versions of a specific package by its name and ecosystem

Auth
Query String
ecosystemstring
packageNamestring
GET /api/v1/packages/versions
Copy
Responses
200

Success

Retrieves a package by its unique identifier

Auth
Path Params
idstring
GET /api/v1/packages/{id}
Copy
Responses
200

Success

Response
Copy

Retrieves CVEs associated with a specific package

Auth
Path Params
idstring
GET /api/v1/packages/{id}/cves
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
Cvesarray[object]
Idstring
FixedVersionsarray[string]
Severitystring

Enum: None,Critical,High,Medium,Low,Unknown

Sourcestring
Cwesarray[string]
Response
Copy

Retrieves all labels for a specific package

Auth
Path Params
idstring
GET /api/v1/packages/{id}/labels
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
Labelsarray[object]
Keystring
Valuestring
ValueTypestring
Createddate-time
Updateddate-time
Response
Copy

Adds a label to a package

Auth
Path Params
idstring
Request Body
objectobject
Keystring
Valuestring
ValueTypestring
Createddate-time
Updateddate-time
POST /api/v1/packages/{id}/labels
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
Labelobject
Keystring
Valuestring
ValueTypestring
Createddate-time
Updateddate-time
Response
Copy

Updates an existing label in a package

Auth
Path Params
idstring
keystring
Request Body
objectobject
valuestring
valueTypestring
PUT /api/v1/packages/{id}/labels/{key}
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
Response
Copy

Deletes a label from a package

Auth
Path Params
idstring
keystring
DELETE /api/v1/packages/{id}/labels/{key}
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
Response
Copy

Searches for packages by label key and optionally value

Auth
Query String
keystring
valuestring
GET /api/v1/packages/search/labels
Copy
Responses
200

Success

Response
Copy

List Projects

Auth
GET /api/v1/projects
Copy
Responses
200

Success

arrayarray[object]
Idstring
Namestring
WorkflowIdsarray[string]
StorageIdsarray[string]
Response
Copy

Create Project

Auth
Request Body
objectobject
Namestring

maxLength: 50

minLength: 1

WorkflowIdsarray[string]
StorageIdsarray[string]
POST /api/v1/projects
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
Projectobject
Idstring
Namestring
WorkflowIdsarray[string]
StorageIdsarray[string]
400

Bad Request

Response
Copy

Get Project By Id

Auth
Path Params
idstring
GET /api/v1/projects/{id}
Copy
Responses
200

Success

objectobject
Idstring
Namestring
WorkflowIdsarray[string]
StorageIdsarray[string]
404

Not Found

Response
Copy

Update Project

Auth
Path Params
idstring
Request Body
objectobject
Namestring

maxLength: 50

PUT /api/v1/projects/{id}
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
Projectobject
Idstring
Namestring
WorkflowIdsarray[string]
StorageIdsarray[string]
404

Not Found

Response
Copy

Delete Project

Auth
Path Params
idstring
DELETE /api/v1/projects/{id}
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
Projectobject
Idstring
Namestring
WorkflowIdsarray[string]
StorageIdsarray[string]
404

Not Found

Response
Copy

Attach workflows to project

Auth
Path Params
idstring
Request Body
objectobject
Idsarray[string]
POST /api/v1/projects/{id}/workflows/attach
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
Projectobject
Idstring
Namestring
WorkflowIdsarray[string]
StorageIdsarray[string]
404

Not Found

Response
Copy

Detach workflows from project

Auth
Path Params
idstring
Request Body
objectobject
Idsarray[string]
POST /api/v1/projects/{id}/workflows/detach
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
Projectobject
Idstring
Namestring
WorkflowIdsarray[string]
StorageIdsarray[string]
404

Not Found

Response
Copy

Attach storages to project

Auth
Path Params
idstring
Request Body
objectobject
Idsarray[string]
POST /api/v1/projects/{id}/storages/attach
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
Projectobject
Idstring
Namestring
WorkflowIdsarray[string]
StorageIdsarray[string]
404

Not Found

Response
Copy

Detach storages from project

Auth
Path Params
idstring
Request Body
objectobject
Idsarray[string]
POST /api/v1/projects/{id}/storages/detach
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
Projectobject
Idstring
Namestring
WorkflowIdsarray[string]
StorageIdsarray[string]
404

Not Found

Response
Copy

Enable real-time protection for multiple repositories

Auth
Path Params
storageIdstring
Request Body
objectobject
Repositoriesarray[object]
RepositoryIdstring
RepositoryNamestring
Connectionstring
WorkflowIdstring
POST /api/v1/realtime/{storageId}/enable
Copy
Responses
207

Success

objectobject
Resultstring

Enum: Success,Error,InternalError,NotFound

ResponseKeystring
ResponseMessagestring
ResponseMessageParamsobject
*string
400

Bad Request

409

Conflict

Response
Copy

Disable real-time protection for storage

Auth
Path Params
storageIdstring
PATCH /api/v1/realtime/{storageId}/disable
Copy
Responses
200

Success

No response body
Response
Copy

Disable real-time protection for repository

Auth
Path Params
storageIdstring
repositoryIdstring
PATCH /api/v1/realtime/{storageId}/{repositoryId}/disable
Copy
Responses
200

Success

No response body
Response
Copy

List storages with real-time protection enabled

Auth
GET /api/v1/realtime
Copy
Responses
200

Success

objectobject
Storagesarray[object]
Idstring
Namestring
StorageTypeobject
Namestring
CategoryTypestring

Enum: Local,Cloud,Object

ProtocolTypestring

Enum: Smb,GraphSdk,BoxSdk,AwsSdk,AzureBlobSdk,AlibabaCloudSdk,GoogleCloudSdk,AzureFilesSdk,Sftp,Nfs,Mft,SharepointOnPrem,Ftp,GitHubSdk,DockerHubSdk,BitbucketSdk,AmazonEcrSdk,QuaySdk,JFrogContainerSdk,JFrogBinarySdk,AzureAcrSdk,GitLabSourceSdk,GitLabContainerSdk,SvnSdk

VendorTypestring

Enum: AmazonS3,OneDrive,Box,DellIsilon,AzureFiles,SmbCompatible,S3Compatible,AzureBlob,AlibabaCloud,GoogleCloud,Sftp,SharePoint,Nfs,Wasabi,OracleCloud,NetAppOntap,Cubbit,Mft,SharepointOnPrem,Ftp,GitHub,DockerHub,Bitbucket,AmazonEcr,Quay,JFrogContainer,JFrogBinary,AzureAcr,GitLabSource,GitLabContainer,Svn

StorageStatusobject
Messagestring
StatusTypestring

Enum: NotTested,Testing,Operational,Error

Response
Copy

List ongoing real-time scans for storage

Auth
Path Params
storageIdstring
GET /api/v1/realtime/{storageId}
Copy
Responses
200

Success

Delete real-time scan data for storage

Auth
Path Params
storageIdstring
Query String
forceDeleteboolean
DELETE /api/v1/realtime/{storageId}
Copy
Responses
200

Success

No response body
Response
Copy

Delete real-time scan data for repository

Auth
Path Params
storageIdstring
repositoryIdstring
Query String
forceDeleteboolean
DELETE /api/v1/realtime/{storageId}/{repositoryId}
Copy
Responses
200

Success

No response body
Response
Copy

Get Scan Configuration by ID

Auth
Path Params
idstring
GET /api/v1/scan-configurations/{id}
Copy
Responses
200

Success

400

Bad Request

404

Not Found

Update an existing Scan Configuration

Auth
Path Params
idstring
Request Body
objectobject
Namestring

maxLength: 50

minLength: 3

ScanPoolIdstring
Rulesarray[string]
UserAgentstring
PUT /api/v1/scan-configurations/{id}
Copy
Responses
200

Success

objectobject
Resultstring

Enum: Success,Error,InternalError,NotFound

ResponseKeystring
ResponseMessagestring
ResponseMessageParamsobject
*string
400

Bad Request

404

Not Found

Response
Copy

Delete a Scan Configuration

Auth
Path Params
idstring
DELETE /api/v1/scan-configurations/{id}
Copy
Responses
200

Success

objectobject
Resultstring

Enum: Success,Error,InternalError,NotFound

ResponseKeystring
ResponseMessagestring
ResponseMessageParamsobject
*string
400

Bad Request

404

Not Found

Response
Copy

Get all Scan Configurations by ScanPool ID

Auth
Path Params
idstring
GET /api/v1/scan-configurations/scan-pools/{id}
Copy
Responses
200

Success

400

Bad Request

Get Scan Configurations

Auth
GET /api/v1/scan-configurations
Copy
Responses
200

Success

400

Bad Request

404

Not Found

Add Scan Configurations

Auth
Request Body
objectobject
Namestring

maxLength: 50

minLength: 3

ScanPoolIdstring
Rulesarray[string]
UserAgentstring
POST /api/v1/scan-configurations
Copy
Responses
200

Success

400

Bad Request

502

Server Error

Response
Copy

Add a new scan instance

Auth
Request Body
objectobject
ScanPoolIdstring
Urlstring
ApiKeystring
Timeoutobject
Ticksint64
ScanInstanceTypestring

Enum: MdCore,MdCloud

POST /api/v1/scan-instances
Copy
Responses
200

Success

objectobject
Resultstring

Enum: Success,Error,InternalError,NotFound

ResponseKeystring
ResponseMessagestring
ResponseMessageParamsobject
*string
ScanInstanceIdstring

Because it belongs to a response, if AddScanInstance breaks, we won't have ScanInstanceId.

400

Bad Request

404

Not Found

Response
Copy

Get a scan instance by ID

Auth
Path Params
idstring
GET /api/v1/scan-instances/{id}
Copy
Responses
200

Success

400

Bad Request

404

Not Found

Response
Copy

Update a scan instance

Auth
Path Params
idstring
Request Body
objectobject
Urlstring
ApiKeystring
Timeoutobject
Ticksint64
PUT /api/v1/scan-instances/{id}
Copy
Responses
200

Success

objectobject
Resultstring

Enum: Success,Error,InternalError,NotFound

ResponseKeystring
ResponseMessagestring
ResponseMessageParamsobject
*string
400

Bad Request

404

Not Found

Response
Copy

Delete scan instance

Auth
Path Params
idstring
DELETE /api/v1/scan-instances/{id}
Copy
Responses
200

Success

objectobject
Resultstring

Enum: Success,Error,InternalError,NotFound

ResponseKeystring
ResponseMessagestring
ResponseMessageParamsobject
*string
400

Bad Request

404

Not Found

Response
Copy

Get Scan Pools

Auth
GET /api/v1/scan-pools
Copy
Responses
200

Success

400

Bad Request

404

Not Found

Response
Copy

Add a new Scan Pool

Auth
Request Body
objectobject
Namestring
ScanPoolTypestring

Enum: MdCore,MdCloud

POST /api/v1/scan-pools
Copy
Responses
200

Success

objectobject
Resultstring

Enum: Success,Error,InternalError,NotFound

ResponseKeystring
ResponseMessagestring
ResponseMessageParamsobject
*string
ScanPoolIdstring
400

Bad Request

404

Not Found

Response
Copy

Get Scan Pool by ID

Auth
Path Params
idstring
GET /api/v1/scan-pools/{id}
Copy
Responses
200

Success

400

Bad Request

404

Not Found

Response
Copy

Update an existing Scan Pool. It's type can't be changed, it is not supported yet.

Auth
Path Params
idstring
Request Body
objectobject
Namestring
PUT /api/v1/scan-pools/{id}
Copy
Responses
200

Success

objectobject
Resultstring

Enum: Success,Error,InternalError,NotFound

ResponseKeystring
ResponseMessagestring
ResponseMessageParamsobject
*string
400

Bad Request

404

Not Found

Response
Copy

Delete a Scan Pool

Auth
Path Params
idstring
DELETE /api/v1/scan-pools/{id}
Copy
Responses
200

Success

objectobject
Resultstring

Enum: Success,Error,InternalError,NotFound

ResponseKeystring
ResponseMessagestring
ResponseMessageParamsobject
*string
400

Bad Request

404

Not Found

Response
Copy

rules

Auth
Path Params
idstring
GET /api/v1/scan-pools/{id}/rules
Copy
Responses
200

Success

arrayarray[object]
namestring
user_agentsarray[string]
400

Bad Request

Response
Copy

Enumerate scan results

Auth
Query String
Typearray

Enum: GitHubSdk,DockerHubSdk,BitbucketSdk,AmazonEcrSdk,QuaySdk,JFrogContainerSdk,JFrogBinarySdk,AzureAcrSdk,GitLabSourceSdk,GitLabContainerSdk,SvnSdk

TimeFramestring

Enum: OneDay,TwoDays,ThreeDays

Vulnerabilitiesarray

Enum: None,Critical,High,Medium,Low,Unknown

LicenseRisksarray
Statusarray

Enum: NotStarted,Running,Cancelled,Failed,Completed

TriggerEventarray
Workflowstring
Connectionstring
Secretsboolean
Threatsboolean
Searchstring
ConnectionTypestring

Enum: Unknown,SourceCode,Container,Binary

GET /api/v1/scans
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
Response
Copy

Add or start a scan

Auth
Request Body
objectobject
StorageIdstring
StorageNamestring
ScanTypestring

Enum: Instant,Scheduled,RealTime

WorkflowIdstring
RepositoryIdstring
RepositoryNamestring
ProtocolTypestring

Enum: GitHubSdk,DockerHubSdk,BitbucketSdk,AmazonEcrSdk,QuaySdk,JFrogContainerSdk,JFrogBinarySdk,AzureAcrSdk,GitLabSourceSdk,GitLabContainerSdk,SvnSdk

RepositoryReferencesarray[string]
Organizationstring
Connectionstring
PackageTypestring
RepositoryTypestring
POST /api/v1/scans
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
ScanIdsarray[string]
ReferencesUsedForScanningarray[string]
ProtocolTypestring

Enum: GitHubSdk,DockerHubSdk,BitbucketSdk,AmazonEcrSdk,QuaySdk,JFrogContainerSdk,JFrogBinarySdk,AzureAcrSdk,GitLabSourceSdk,GitLabContainerSdk,SvnSdk

RepositoryIdstring
RepositoryNamestring
ServiceIdstring
StorageNamestring
WorkflowIdstring
WorkflowNamestring
TriggerEventstring
TriggerBystring
Response
Copy

Delete multiple scans by their scan IDs

Auth
DELETE /api/v1/scans
Copy
Responses
200

Success

No response body
400

Bad Request

500

Server Error

Response
Copy

Get scan results by scan ID

Auth
Path Params
idstring
GET /api/v1/scans/{id}
Copy
Responses
200

Success

404

Not Found

Response
Copy

Stop a scan

Auth
Path Params
idstring
POST /api/v1/scans/{id}
Copy
Responses
200

Success

objectobject
StatusCodeint32
Response
Copy

Enumerate all latest scan results

Auth
Query String
Typearray

Enum: GitHubSdk,DockerHubSdk,BitbucketSdk,AmazonEcrSdk,QuaySdk,JFrogContainerSdk,JFrogBinarySdk,AzureAcrSdk,GitLabSourceSdk,GitLabContainerSdk,SvnSdk

TimeFramestring

Enum: OneDay,TwoDays,ThreeDays

Vulnerabilitiesarray

Enum: None,Critical,High,Medium,Low,Unknown

LicenseRisksarray
Statusarray

Enum: NotStarted,Running,Cancelled,Failed,Completed

TriggerEventarray
Workflowstring
Connectionstring
Secretsboolean
Threatsboolean
Searchstring
ConnectionTypestring

Enum: Unknown,SourceCode,Container,Binary

GET /api/v1/scans/latest
Copy
Responses
200

Success

404

Not Found

Enumerate all latest scan results by service ID

Auth
Path Params
serviceIdstring
Query String
Typearray

Enum: GitHubSdk,DockerHubSdk,BitbucketSdk,AmazonEcrSdk,QuaySdk,JFrogContainerSdk,JFrogBinarySdk,AzureAcrSdk,GitLabSourceSdk,GitLabContainerSdk,SvnSdk

TimeFramestring

Enum: OneDay,TwoDays,ThreeDays

Vulnerabilitiesarray

Enum: None,Critical,High,Medium,Low,Unknown

LicenseRisksarray
Statusarray

Enum: NotStarted,Running,Cancelled,Failed,Completed

TriggerEventarray
Workflowstring
Connectionstring
Secretsboolean
Threatsboolean
Searchstring
ConnectionTypestring

Enum: Unknown,SourceCode,Container,Binary

GET /api/v1/scans/{serviceId}/latest
Copy
Responses
200

Success

Get scan overview by scan ID

Auth
Path Params
idstring
GET /api/v1/scans/{id}/overview
Copy
Responses
200

Success

Enumerate all scan results by repository ID

Auth
Path Params
serviceIdstring
repositoryIdstring
GET /api/v1/scans/{serviceId}/{repositoryId}
Copy
Responses
200

Success

Enumerate all scan schedules

Auth
GET /api/v1/scans/schedules
Copy
Responses
200

Success

arrayarray[object]
Idstring
WorkflowIdstring
StorageIdstring
UserIdstring
Namestring
Prioritystring

Enum: Low,Medium,High

CreatedAtdate-time
LastUpdateddate-time
LastScanTimedate-time
NextScanTimedate-time
RecurrenceTypestring

Enum: Hourly,Daily,Weekly,Monthly

StartDatedate-time
TimeToStartdate-time
EveryNumberOfHoursint32
EveryNumberOfDaysint32
EveryNumberOfWeeksint32
EveryNumberOfMonthsint32
DaysOfWeekarray[string]

Enum: Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday

DayOfMonthint32
Response
Copy

Enumerate files by scan ID

Auth
Path Params
scanIdstring
Query String
pageinteger
pageSizeinteger
searchstring
includeArchivesboolean
GET /api/v1/scans/{scanId}/files
Copy
Responses
200

Success

404

Not Found

Response
Copy

Get the core result of a file by its scan result ID

Auth
Path Params
scanResultIdstring
GET /api/v1/scans/{scanResultId}/core-result
Copy
Responses
200

Success

Response
Copy

Get the core results of files in an archive by their scan result ID

Auth
Path Params
scanResultIdstring
Query String
countinteger
offsetinteger
GET /api/v1/scans/{scanResultId}/archive
Copy
Responses
200

Success

Response
Copy

Get the SMTP configuration

Auth
GET /api/v1/smtp
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
Smtpobject
Idstring
Hoststring
Portint32
SenderAddressstring
SenderNamestring
Domainstring
BaseUrlstring
UserNamestring
Passwordstring
SecureSocketOptionstring

Enum: None,Auto,SslOnConnect,StartTls,StartTlsWhenAvailable

IgnoreCertWarningsboolean
IsEnabledboolean
TenantIdstring
CreatedAtdate-time
LastUpdateddate-time
400

Bad Request

Response
Copy

Update the SMTP configuration

Auth
Request Body
objectobject
Hoststring
BaseUrlstring
Portint32
SenderAddressstring
SenderNamestring
Domainstring
Usernamestring
Passwordstring
SecureSocketOptionstring

Enum: None,Auto,SslOnConnect,StartTls,StartTlsWhenAvailable

IgnoreCertWarningsboolean
IsEnabledboolean
POST /api/v1/smtp
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
400

Bad Request

Response
Copy

Get All Jira Configurations

Auth
GET /api/v1/jira
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
JiraEntriesarray[object]
Idstring
Namestring
ApiKeystring
BaseAddressstring
ProductAddressstring
Usernamestring
TenantIdstring
CreatedAtdate-time
LastUpdateddate-time
400

Bad Request

Response
Copy

Add Jira Configuration

Auth
Request Body
objectobject
Namestring
ApiKeystring
BaseAddressstring
ProductAddressstring
Usernamestring
POST /api/v1/jira
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
400

Bad Request

Response
Copy

Get Jira Configuration by ID

Auth
Path Params
idstring
GET /api/v1/jira/{id}
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
Jiraobject
Idstring
Namestring
ApiKeystring
BaseAddressstring
ProductAddressstring
Usernamestring
TenantIdstring
CreatedAtdate-time
LastUpdateddate-time
404

Not Found

Response
Copy

Update Jira Configuration by ID

Auth
Path Params
idstring
Request Body
objectobject
Namestring
ApiKeystring
BaseAddressstring
ProductAddressstring
Usernamestring
PUT /api/v1/jira/{id}
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
404

Not Found

Response
Copy

Delete Jira Configuration by ID

Auth
Path Params
idstring
DELETE /api/v1/jira/{id}
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
JiraIdstring
404

Not Found

Response
Copy

Get Jira Projects by Connection ID

Auth
Path Params
idstring
GET /api/v1/jira/{id}/projects
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
Projectsarray[object]
Idstring
Namestring
404

Not Found

Response
Copy

Get users

Auth
Query String
Typestring

Enum: ActiveUsers,NewUsers

StartIndexinteger
Countinteger
SearchTermstring
GET /api/v1/users
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
EnumerateUsersDtoobject
Entriesarray[object]
UserIdstring
Usernamestring
FullNamestring
Emailstring
Rolestring

Enum: None,ReadOnlyAdministrator,Administrator,SsoAdministrator,SsoReadOnlyAdministrator,TenantAdministrator,Invalid

ShowTutorialboolean
TotalCountint64
400

Bad Request

Response
Copy

Update a user

Auth
Request Body
objectobject
UserIdstring
Rolestring

Enum: None,ReadOnlyAdministrator,Administrator,SsoAdministrator,SsoReadOnlyAdministrator,TenantAdministrator,Invalid

UserNamestring
FullNamestring
Emailstring
CurrentPasswordstring
NewPasswordstring
ShowTutorialboolean
PUT /api/v1/users
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
400

Bad Request

Response
Copy

Add a new user

Auth
Request Body
objectobject
FullNamestring
UserNamestring
Passwordstring
Emailstring
Rolestring

Enum: None,ReadOnlyAdministrator,Administrator,SsoAdministrator,SsoReadOnlyAdministrator,TenantAdministrator,Invalid

POST /api/v1/users
Copy
Responses
200

Success

objectobject
CreateUserParametersobject
FullNamestring
UserNamestring
Passwordstring
Emailstring
Rolestring

Enum: None,ReadOnlyAdministrator,Administrator,SsoAdministrator,SsoReadOnlyAdministrator,TenantAdministrator,Invalid

CurrentUserIdstring
400

Bad Request

Response
Copy

Get current user

Auth
GET /api/v1/user
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
UserDtoobject
UserIdstring
Usernamestring
FullNamestring
Emailstring
Rolestring

Enum: None,ReadOnlyAdministrator,Administrator,SsoAdministrator,SsoReadOnlyAdministrator,TenantAdministrator,Invalid

ShowTutorialboolean
400

Bad Request

Response
Copy

Delete a user

Auth
Path Params
userIdstring
DELETE /api/v1/users/{userId}
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
400

Bad Request

Response
Copy

Login user

Auth
Request Body
objectobject
Usernamestring
Passwordstring
POST /api/v1/user/login
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
JwtTokenobject
Tokenstring
400

Bad Request

Response
Copy

It will remove all tokens of this user

Auth
Path Params
userIdstring
DELETE /api/v1/user/login/{userId}
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
400

Bad Request

Response
Copy

Get new Access Token

Auth
Request Body
objectobject
AccessTokenstring
PUT /api/v1/user/token
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
JwtTokenobject
Tokenstring
400

Bad Request

Response
Copy

Request password reset

Auth
Request Body
objectobject
EmailInputstring

minLength: 1

POST /api/v1/user/password/request-reset
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
Response
Copy

Reset user password

Auth
Request Body
objectobject
NewPasswordstring

minLength: 12

NewPasswordConfirmationstring

minLength: 12

SecureTokenstring
UserIdstring
POST /api/v1/user/password/new-password
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
Userobject
UserIdstring
Usernamestring
FullNamestring
Emailstring
Rolestring

Enum: None,ReadOnlyAdministrator,Administrator,SsoAdministrator,SsoReadOnlyAdministrator,TenantAdministrator,Invalid

ShowTutorialboolean
Response
Copy

Version

Manage versions

Get application version

Auth
GET /api/v1/version
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
Versionstring
LastSupportedConfigVersionstring
Response
Copy

Handle No-Auth Scan Event

Handles a scan event triggered by a webhook. Requires a custom header and a body.

Auth
Path Params
routeParameterstring
Request Body
No request body
POST /api/v1/webhook/hmac/{routeParameter}
Copy
Responses
200

Success

No response body
400

Bad Request

500

Server Error

Response
Copy

Handle Scan Event

Handles a scan event triggered by a webhook. Requires a custom body.

Auth
Path Params
routeParameterstring
Request Body
No request body
POST /api/v1/webhook/{routeParameter}
Copy
Responses
200

Success

No response body
400

Bad Request

500

Server Error

Response
Copy

List all workflows

Auth
Query String
includeDeletedboolean
GET /api/v1/workflows
Copy
Responses
200

Success

Create a workflow

Auth
Request Body
POST /api/v1/workflows
Responses
200

Success

objectobject
Resultstring

Enum: Success,Error,InternalError,NotFound

ResponseKeystring
ResponseMessagestring
ResponseMessageParamsobject
*string
400

Bad Request

Response
Copy

Get workflow by Id

Auth
Path Params
idstring
GET /api/v1/workflows/{id}
Copy
Responses
200

Success

Update a workflow

Auth
Path Params
idstring
Request Body
PUT /api/v1/workflows/{id}
Responses
200

Success

objectobject
Resultstring

Enum: Success,Error,InternalError,NotFound

ResponseKeystring
ResponseMessagestring
ResponseMessageParamsobject
*string
400

Bad Request

Response
Copy

Delete Workflow by id

Auth
Path Params
idstring
DELETE /api/v1/workflows/{id}
Copy
Responses
200

Success

objectobject
Resultstring

Enum: Success,Error,InternalError,NotFound

ResponseKeystring
ResponseMessagestring
ResponseMessageParamsobject
*string
400

Bad Request

Response
Copy

Update workflow scan source

Auth
Path Params
idstring
Request Body
objectobject
ServiceIdstring
ServiceNamestring
Repositoriesarray[object]
RepositoryIdstring
RepositoryNamestring
Typestring
Connectionstring
PackageTypestring
Organizationstring
Registrystring
ReferencesToScanarray[string]
PUT /api/v1/workflows/{id}/scan-source
Copy
Responses
200

Success

objectobject
Resultstring

Enum: Success,Error,InternalError,NotFound

ResponseKeystring
ResponseMessagestring
ResponseMessageParamsobject
*string
400

Bad Request

Response
Copy

List all workflows by repositoryId

Auth
Path Params
repositoryIdstring
GET /api/v1/workflows/repositories/{repositoryId}
Copy
Responses
200

Success

Get licenses

Auth
GET /api/v1/licenses
Copy
Responses
200

Success

objectobject
Resultstring

Enum: Success,NotFound,Error

Licenseobject
ProductIdstring
ProductNamestring
Expirationint64
DeploymentIdstring
ActivationKeystring
LicenseContentstring
MaxDevelopersint32
ResponseMessagestring
400

Bad Request

404

Not Found

Response
Copy

Remove licenses

Auth
DELETE /api/v1/licenses
Copy
Responses
200

Success

objectobject
Resultstring

Enum: Success,FailedToDeactivate,FailedToDeactivateDeploymentIdMalformed,NotFound

ResponseMessagestring
400

Bad Request

404

Not Found

Response
Copy

Activate a online license

Auth
Request Body
objectobject
Keystring

minLength: 1

POST /api/v1/licenses/online
Copy
Responses
200

Success

objectobject
Resultstring

Enum: Success,FailedToActivate

ResponseMessagestring
400

Bad Request

Response
Copy

Get OCM

Auth
GET /api/v1/ocm
Copy
Responses
200

Success

Response
Copy

Update OCM

Auth
Request Body
objectobject
ServerApistring
RegCodestring
PUT /api/v1/ocm
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
Response
Copy

Delete OCM

Auth
DELETE /api/v1/ocm
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
Response
Copy

Get all services

Auth
Query String
contentboolean
typearray

Enum: GitHubSdk,DockerHubSdk,BitbucketSdk,AmazonEcrSdk,QuaySdk,JFrogContainerSdk,JFrogBinarySdk,AzureAcrSdk,GitLabSourceSdk,GitLabContainerSdk,SvnSdk

GET /api/v1/services
Copy
Responses
200

Success

objectobject
ServiceDtosarray[object]
Namestring
Idstring
CredentialsTypeint32
ScanWorkflowIdstring
Domainstring
StatusMessagestring
206

Success

400

Bad Request

Response
Copy

Add a service

Auth
Request Body
objectobject
Namestring
Credentialsstring
POST /api/v1/services
Copy
Responses
200

Success

objectobject
Resultstring

Enum: Success,Error,InternalError,NotFound

ResponseKeystring
ResponseMessagestring
ResponseMessageParamsobject
*string
Idstring
Namestring
400

Bad Request

Response
Copy

Get a service by id

Auth
Path Params
serviceIdstring
Query String
contentboolean
Searchstring
Pageinteger
PageSizeinteger
FilterValuestring
Cursorstring
PrioritizedRepositoriesReferencestring
GET /api/v1/services/{serviceId}
Copy
Responses
200

Success

objectobject
Namestring
Idstring
CredentialsTypeint32
ScanWorkflowIdstring
Domainstring
400

Bad Request

404

Not Found

Response
Copy

Update a service by id

Auth
Path Params
serviceIdstring
Request Body
objectobject
Namestring
Credentialsstring
HasNewCredentialsboolean
PUT /api/v1/services/{serviceId}
Copy
Responses
200

Success

objectobject
ResponseKeystring
ResponseMessagestring
ResponseMessageParamsobject
*string
Idstring
Namestring
400

Bad Request

Response
Copy

Delete a service by id

Auth
Path Params
serviceIdstring
DELETE /api/v1/services/{serviceId}
Copy
Responses
200

Success

objectobject
Resultstring

Enum: Success,Error,InternalError,NotFound

ResponseKeystring
ResponseMessagestring
ResponseMessageParamsobject
*string
404

Not Found

Response
Copy

Get service references by serviceId and repositoryId

Auth
Path Params
serviceIdstring
repositoryIdstring
Query String
Pageinteger
PageSizeinteger
FilterValuestring
Cursorstring
GET /api/v1/services/{serviceId}/{repositoryId}/references
Copy
Responses
200

Success

objectobject
Referencesarray[string]
TotalReferencesint32
404

Not Found

Response
Copy

Get service references by serviceId

Auth
Path Params
serviceIdstring
GET /api/v1/services/{serviceId}/references
Copy
Responses
200

Success

objectobject
ServiceIdstring
ServiceNamestring
404

Not Found

Response
Copy

Get service resources by serviceId

Auth
Path Params
serviceIdstring
GET /api/v1/services/{serviceId}/resources
Copy
Responses
200

Success

objectobject
Resourcesarray[string]
404

Not Found

Response
Copy

Add services references

Auth
Request Body
arrayarray[object]
ServiceIdstring
RepositoryIdsarray[string]
POST /api/v1/services/references
Copy
Responses
200

Success

arrayarray[object]
ServiceIdstring
ServiceNamestring
204

No Content

404

Not Found

Response
Copy

Startup

Get startup status

Auth
GET /api/v1/startup
Copy
Responses
200

Success

No response body
500

Server Error

Response
Copy