For the complete documentation index, see llms.txt. This page is also available as Markdown.

Reference ↗

Reference for the Qwiet AI by Harness REST API, including authentication, every endpoint, its parameters and its request and response samples.

Download the OpenAPI specification.

The Qwiet API allows you to programmatically interact with Qwiet. You can manage users and their roles and get scan-related information, such as which applications were scanned and what vulnerabilities were identified by Qwiet as being present. You can also compare scans to see changes to your applications over time.

Authentication

Use of the Qwiet API requires an access token, which is available via the Qwiet UI.

Alerting

Notification and alerting related endpoints (such as webhooks)

Set up a webhook

Set up a webhook for the given organization

PUT https://app.shiftleft.io/api/v4/orgs/{orgID}/alerting/webhook

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Query parameters

Parameter
Description

version

integer Default: 2 Enum: 1 2 Example: version=2Webhook configuration version to use (1 = legacy flow, 2 = normal flow). Defaults to 2 (normal flow) if not specified.

Request body schema: application/json

The schema table for this request body is not available on this page. Go to the OpenAPI specification for the full schema.

Responses

Status
Description

200

Success

default

Error

Request samples

Example request body for webhook registration using Bearer token authentication

Response samples

Delete a webhook

Delete the webhook for the given organization

DELETE https://app.shiftleft.io/api/v4/orgs/{orgID}/alerting/webhook

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Query parameters

Parameter
Description

version

integer Default: 2 Enum: 1 2 Example: version=2Webhook configuration version to use (1 = legacy flow, 2 = normal flow). Defaults to 2 (normal flow) if not specified.

Responses

Status
Description

200

Success

default

Error

Response samples

Get a webhook

Get the webhook url and token ID for the given organization

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/alerting/webhook

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Query parameters

Parameter
Description

version

integer Default: 2 Enum: 1 2 Example: version=2Webhook configuration version to use (1 = legacy flow, 2 = normal flow). Defaults to 2 (normal flow) if not specified.

Responses

Status
Description

200

Success

default

Error

Response samples

Get alerting events

Get the list of events that can be subscribed to receive webhook notifications.

GET https://app.shiftleft.io/api/v4/alerting/events

Authorizations

BearerToken

Responses

Status
Description

200

Success

default

Error

Response samples

App groups

The user-created groups of applications.

Run in Postman

Read organization app groups

Return a list of all the organization groups.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/app_groups

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Responses

Status
Description

200

Success

default

Error

Response samples

Read app group

Return information about an app group.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/app_groups/{appGroupName}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appGroupName (required)

string The group name

Responses

Status
Description

200

Success

default

Error

Response samples

Create or update app group

Create or update an application group.

PUT https://app.shiftleft.io/api/v4/orgs/{orgID}/app_groups/{appGroupName}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appGroupName (required)

string The group name

Request body schema: application/json

Field
Description

rename

string A new name for the group (optional)

add_app_ids

Array of strings The application IDs to add to the group

remove_app_ids

Array of strings The application IDs to remove from the group

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

Delete app group

Deletes an application group.

DELETE https://app.shiftleft.io/api/v4/orgs/{orgID}/app_groups/{appGroupName}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appGroupName (required)

string The group name

Responses

Status
Description

200

Success

default

Error

Response samples

App labels

The user-created application labels.

Run in Postman

Update application labels

Update the application's labels.

POST https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/labels

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

Request body schema: application/json

Field
Description

add

Array of strings

remove

Array of strings

clear

boolean A boolean flag that is true when all labels should be removed from the application

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

Applications

The applications submitted for analysis by Qwiet AI by Harness.

Run in Postman

Create Apps

Create one or more apps owned by an organization and potentially assigned to a team.

PUT https://app.shiftleft.io/api/v4/orgs/{orgID}/apps

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Request body schema: application/json (array)

Field
Description

id (required)

string[a-zA-Z0-9]([a-zA-Z0-9_:.-]*[a-zA-Z0-9])? the id of the app

name

string the user friendly name of the app

team_id

string the id of the team the app belongs to

base_branch

string the name of the principal branch of the app.

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

List apps

Return a list of the apps owned by the org.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/apps

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Responses

Status
Description

200

Success

default

Error

Response samples

Delete app

Delete an app owned by an organization.

DELETE https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

Responses

Status
Description

200

Success

default

Error

Response samples

Read app

Return an app owned by an organization.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

Responses

Status
Description

200

Success

default

Error

Response samples

List app branches

Return a list of the branches of a specific app scanned for an org.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/branches

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Query parameters

Parameter
Description

app

string App name

from

integer The earliest scan time for a branch to be included. Value should be a Unix timestamp (in seconds). Defaults to 1 week ago

until

integer The latest scan time for a branch to be included. Value should be a Unix timestamp (in seconds). Defaults to now

Responses

Status
Description

200

Success

default

Error

Response samples

Read app config

Return the configuration of an application.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/configuration

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

Responses

Status
Description

200

Success

default

Error

Response samples

Update app config

Update the app's configuration.

PUT https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/configuration

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

Request body schema: application/json

The schema table for this request body is not available on this page. Go to the OpenAPI specification for the full schema.

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

Patch app config

Partially update the app's configuration. Only fields present in the request body will be updated; all other fields are preserved. This is safer than PUT when you only need to change a subset of the configuration.

PATCH https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/configuration

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

Request body schema: application/json

The schema table for this request body is not available on this page. Go to the OpenAPI specification for the full schema.

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

Update Application Default Branch

Update the application's default branch.

PATCH https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/configuration/default_branch

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

Request body schema: application/json

Field
Description

default_branch (required)

string The repository's default branch

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

Read merged app config

Return the effective configuration of an application by combining the organization configuration and the configuration of a potentially assigned team as defaults first, before merging in the actual app configuration on top, overriding those defaults.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/configuration/merged

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

Responses

Status
Description

200

Success

default

Error

Response samples

AutoFix

The AutoFix suggestions for findings in applications. Harness SAST and SCA AutoFix uses large language models (LLMs) to generate potential code fix suggestions for findings produced by Qwiet AI by Harness analyses.

Run in Postman

Get the number of fixes available per compound

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/stats/num_fixes_per_compound

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Responses

Status
Description

200

Success

default

Error

Response samples

Retrieve the recommended fix for a specific finding if it exists

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/findings/{findingID}/recommended_fix

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

findingID (required)

string The finding ID

Responses

Status
Description

200

Success

default

Error

Response samples

Read finding's fix if it exists

Retrieve the fix for a specific finding if it exists. This feature is disabled by default. Contact Qwiet AI Customer Success if you need assistance.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/findings/{findingID}/fixes

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

findingID (required)

string The finding ID

Responses

Status
Description

200

Success

default

Error

Response samples

Azure Boards

The endpoints to manage the Azure Boards integration.

Get azureboard authorization status

Get azureboard authorization status for organization

GET https://app.shiftleft.io/api/v4/azureboard/authorization/orgs/{orgID}/status

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Responses

Status
Description

200

Success (Authorized)

default

Error

Response samples

azureboard authorization at the org level

azureboard authorization at the org level

GET https://app.shiftleft.io/api/v4/azureboard/authorization/orgs/{orgID}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Responses

Status
Description

302

Redirect

default

Error

Response samples

AzureCallback is authorized redirect_url in oAuth2 app

AzureCallback is authorized redirect_url in oAuth2 app

GET https://app.shiftleft.io/api/v4/azureboard/callback

Responses

Status
Description

302

redirect

default

Error redirect

Get AzureBoard Association

Get AzureBoard Association

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/integrations/azureboard/association

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

Responses

Status
Description

200

Success

404

No azure project is associated with the application

default

Error

Response samples

Update AzureBoard Association

Update AzureBoard Association

PUT https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/integrations/azureboard/association

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

Request body schema: application/json

Field
Description

azure_org_name (required)

string The name of the Azure DevOps organization.

azure_project_name (required)

string The name of the Azure DevOps project.

finding_work_item_type

string Work item type that will be used to create work items

Responses

Status
Description

200

Success

400

Bad Request

403

UnAuthorized

404

Not Found

default

Error

Request samples

Response samples

Get AzureBoard Association

Get AzureBoard Association

DELETE https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/integrations/azureboard/association

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

Responses

Status
Description

200

Success

404

No azure project is associated with the application

default

Error

Response samples

Get Azure organizations

Get Azure organizations

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/integrations/azureboard/organizations

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Responses

Status
Description

200

Success

default

Error

Response samples

Get azureboard association by finding id

Get azureboard association by finding id

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/integrations/azureboard/findings/{findingID}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

findingID (required)

string The finding ID

Responses

Status
Description

200

Success

default

Error

Response samples

Puts azureboard association by finding ids

Puts azureboard association by finding ids

PUT https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/integrations/azureboard/findings

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

Request body schema: application/json

The schema table for this request body is not available on this page. Go to the OpenAPI specification for the full schema.

Responses

Status
Description

200

Success

Request samples

Response samples

Branches

The branch information for Qwiet AI by Harness scans of applications.

List application scans branches

Return the list of branches of an application that have been scanned, not to be confused with the soon to be deprecated /branches endpoint.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/scanbranches

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

Responses

Status
Description

200

Success

default

Error

Response samples

Comments

The text threads (with individual comments ordered by time) attached to findings.

Run in Postman

Create app finding comment

Create a comment on a finding.

POST https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/findings/{findingID}/comments

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

findingID (required)

string The finding ID

Request body schema: application/json

Field
Description

comment

string The text of the comment

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

List app finding comments

Return a list of the finding's comments thread.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/findings/{findingID}/comments

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

findingID (required)

string The finding ID

Responses

Status
Description

200

Success

default

Error

Response samples

Read specific comment for a finding

Read a comment for a specific finding for an app.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/findings/{findingID}/comments/{commentID}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

findingID (required)

string The finding ID

commentID (required)

string The comment ID

Responses

Status
Description

200

Success

default

Error

Response samples

Multi-Language Apps

Multi-Language Apps are groups of applications that are scanned together as a single application. This is useful for applications that are a compound of various programming languages and configurations of frameworks.

Un/Archive Compound

Toggle the archived status of a compound

PATCH https://app.shiftleft.io/api/v4/orgs/{orgID}/compounds/named/{compoundName}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

compoundName (required)

string A compound's name

Request body schema: application/json (required)

Field
Description

is_archived (required)

boolean Whether to archive the compound (true) or unarchive it (false)

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

List scans in a compound, returning a subset of the scan summary information

The full information we can return about a scan is a lot of data, which slows down a UI that only wants to present a subset of it to the user. This endpoint returns only the subset actually needed for rendering that UI. As such it's meant for internal use only, but is documented because other API users may find it useful for similar reasons.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/compounds/named/{compoundName}/scans/streamlined

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

compoundName (required)

string A compound's name

Query parameters

Parameter
Description

limit

integer [ 1 .. 100 ] Default: 10 The number of scans to return.

branch

string Only consider scans on this branch.

upto

integer Only list scans created before this time (given in nanoseconds since the UNIX Epoch).

Responses

Status
Description

200

Success

default

Error

Response samples

Read compound scan

Retrieve details for a specific scan of a compound

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/compounds/named/{compoundName}/scans/{scanID}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

compoundName (required)

string A compound's name

scanID (required)

string The ID of the scan to retrieve

Query parameters

Parameter
Description

archived

boolean If present, includes archived compounds

Responses

Status
Description

200

Success

default

Error

Response samples

Read branches for compound

List all the branches for a specific compound

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/compounds/named/{compoundName}/branches

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

compoundName (required)

string A compound's name

Query parameters

Parameter
Description

archived

boolean If present, includes archived compounds

Responses

Status
Description

200

Success

default

Error

Response samples

List Scans of Compound

List all scans for a specific compound

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/compounds/named/{compoundName}/scans

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

compoundName (required)

string A compound's name

Query parameters

Parameter
Description

archived

boolean If present, includes archived compounds

status

string Enum: "completed" "running" "failed" Filter scans by status

branch

string Filter scans by branch

limit

integer The number of scans to return (must be between 1 and 50, inclusive). The default is 10 scans

Responses

Status
Description

200

Success

default

Error

Response samples

List Compounds

List all compounds for an organization

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/compounds

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Query parameters

Parameter
Description

archived

boolean If present, returns archived compounds (true) or non-archived compounds (false)

page

integer >= 1 Default: 1 Page number

per_page

integer [ 1 .. 100 ] Default: 20 Number of items per page

Responses

Status
Description

200

Success

default

Error

Response samples

Read shallow compound

Returns a shallow compound object, which includes the compound's ID, name, and description.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/compounds/shallow/{compoundID}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

compoundID (required)

string <uuid> A compound's ID

Responses

Status
Description

200

Success

default

Error

Response samples

Read shallow compound by ID

Returns a shallow compound object by its ID, which includes the compound's ID, name, and the IDs of the apps that are part of the compound.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/compounds/byid/{compoundID}/shallow

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

compoundID (required)

string <uuid> A compound's ID

Responses

Status
Description

200

Success

default

Error

Response samples

Read shallow compound by name

Returns a shallow compound object by its name. If no compound is found with the given name, falls back to looking up a project with that name.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/compounds/byname/{compoundName}/shallow

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

compoundName (required)

string A compound's name

Responses

Status
Description

200

Success

default

Error

Response samples

Delete compound

Deletes a compound and all of its associated apps.

DELETE https://app.shiftleft.io/api/v4/orgs/{orgID}/compounds/{compoundID}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

compoundID (required)

string <uuid> A compound's ID

Responses

Status
Description

200

Success

default

Error

Response samples

Read full compound

Returns a full compound object, which includes the compound's ID, name, description, and the IDs of the apps that are part of the compound.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/compounds/full/{compoundID}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

compoundID (required)

string <uuid> A compound's ID

Responses

Status
Description

200

Success

default

Error

Response samples

Findings

The results of a Qwiet AI by Harness scan (which can include vulnerabilities, secrets, or insights).

List app findings

List findings for the specified app. Results are filtered to a single scan (by default, this is the latest scan).

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/findings

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

Query parameters

Parameter
Description

type

string The type of findings. Accepted values are oss_vuln, vuln, and secret

severity

string (Severity) Enum: "low" "medium" "high" "critical" The severity filter

tags

Array of strings The scan tags to filter by (e.g., branch=main)

finding_tags

Array of strings Example: finding_tags=category=XSSThe findings' filtering tag

assignee

string The email addresses of users assigned to this finding

assignment

string (Assignment) Enum: "unassigned" "assigned" The assignment status filter. By default, all findings, both unassigned and assigned, are returned.

category

string The category filter

details_tags

Array of strings The filter for the finding's details tags

status

string (Status) Enum: "unset" "fixed" "ignored" "3rdparty" "any" The status filter. By default, only unset findings are included.

sort

string How to sort results; defaults to ID

order

string Enum: "desc" "asc" Direction of the sort; defaults to descending

only_counts

boolean Whether to include only finding counts; excludes the list of findings

page

integer The page of results to fetch. Results are not guaranteed to be deterministic using this approach; we recommended using the next_page URL in a paginated response

per_page

integer Number of results per page; defaults to 50

version

string Version to filter findings for; defaults to the latest scan

scan

string ID of the scan to filter to; defaults to the latest scan

source

string^scan\\d+|tag\\w=\w$ Example: source=scan.128|tag.branch=samplebranchThe source scan for a comparision

diff

string (Diff) Enum: "new" "regression" "common" "fixed" Return a diff of findings (as compared to the source)

fields

Array of stringsItems Enum: "-description" "-details" "-related_findings" Specifies the fields included or excluded in the response.

Responses

Status
Description

200

Success

default

Error

Response samples

List compound findings Deprecated

DEPRECATED - use /orgs/{orgID}/compounds/byname/{compoundName}/findings instead. List findings for the specified compound. Results are filtered to a single scan (by default, this is the latest scan).

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/compounds/named/{compoundName}/findings

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

compoundName (required)

string A compound's name

Query parameters

Parameter
Description

type

string The type of findings. Accepted values are oss_vuln, vuln, and secret

severity

string (Severity) Enum: "low" "medium" "high" "critical" The severity filter

tags

Array of strings The scan tags to filter by (e.g., branch=main)

finding_tags

Array of strings Example: finding_tags=category=XSSThe findings' filtering tag

assignee

string The email addresses of users assigned to this finding

assignment

string (Assignment) Enum: "unassigned" "assigned" The assignment status filter. By default, all findings, both unassigned and assigned, are returned.

category

string The category filter

details_tags

Array of strings The filter for the finding's details tags

status

string (Status) Enum: "unset" "fixed" "ignored" "3rdparty" "any" The status filter. By default, only unset findings are included.

sort

string How to sort results; defaults to ID

order

string Enum: "desc" "asc" Direction of the sort; defaults to descending

only_counts

boolean Whether to include only finding counts; excludes the list of findings

page

integer The page of results to fetch. Results are not guaranteed to be deterministic using this approach; we recommended using the next_page URL in a paginated response

per_page

integer Number of results per page; defaults to 50

version

string Version to filter findings for; defaults to the latest scan

scan

string Polyglot scan ID to filter to; defaults to the latest scan

source

string^scan\\d+|tag\\w=\w$ Example: source=scan.128|tag.branch=samplebranchThe source scan for a comparision

diff

string (Diff) Enum: "new" "regression" "common" "fixed" Return a diff of findings (as compared to the source)

fields

Array of stringsItems Enum: "-description" "-details" "-related_findings" Specifies the fields included or excluded in the response.

Responses

Status
Description

200

Success

default

Error

Response samples

List compound findings

List findings for the specified compound. Results are for a single polyglot scan (by default, this is the latest scan).

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/compounds/byname/{compoundName}/findings

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

compoundName (required)

string A compound's name

Query parameters

The schema table for this request body is not available on this page. Go to the OpenAPI specification for the full schema.

Responses

Status
Description

200

Success

default

Error

Response samples

Read app finding detail

Read the details for a single finding

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/findings/{findingID}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

findingID (required)

string The finding ID

Responses

Status
Description

200

Success

default

Error

Response samples

Set finding status

Set the current status for a finding

PUT https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/findings/{findingID}/status

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

findingID (required)

string The finding ID

Request body schema: application/json

Field
Description

status

string Enum: "fixed" "ignore" "codeviolationfixed" "codeviolationignore" "codeviolationremovestatus" The status to be set; leaving it blank will remove status

optional_comment

string Optional text to be used as the comment that is created along with every status.

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

Set finding assignee

Set the current assignee for a finding

PUT https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/findings/{findingID}/assignment

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

findingID (required)

string The finding ID

Request body schema: application/json

Field
Description

assignee

string The email of the person to be assigned to the finding

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

Set multiple findings status

Set the current status for multiple findings

PUT https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/findings_status

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

Request body schema: application/json

Field
Description

findings

Array of integers

status

string Enum: "fixed" "ignore" "codeviolationfixed" "codeviolationignore" "codeviolationremovestatus" The status to be set; leaving it blank will remove status

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

Set multiple findings assignee

Set the current assignee for a finding

PUT https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/findings_assignment

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

Request body schema: application/json

Field
Description

findings

Array of integers

assignee

string The email of the person to be assigned to the findings

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

Read the SCA packages of a compound scan

Return information about the packages found in a scan of an app

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/compounds/named/{compoundName}/sca/packages

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

compoundName (required)

string A compound's name

Query parameters

Parameter
Description

polyglot_scan

integer Example: polyglot_scan=42Polyglot scan ID of the scan to filter to; defaults to the latest scan.

scan_version

string Example: scan_version=9b7e138e1b16dc5261803cceffb86c36800c2c7fThe version of which to get the latest scan. This is usually a SHA1. Ignored if polyglot_scan is given.

scan_branch

string Example: scan_branch=feature/1234The branch of which to get the latest scan. Ignored if polygot_scan or scan_version are given.

scan_tag

string^(?<key>.*?)__eq__(?<value>.*)$ Tags passed to the analyzer at scan time. Ignored if polygot_scan, scan_version, or scan_branch are given.

scan_platform

string (ScanPlatform) Enum: "java" "go" "csharp" "javascript" "c" "python" "terraform_hcl" "ruby" "php" "fuzzytestlang" "kotlin" "javasrc" "pythonsrc" "jssrc" "secrets" "swiftsrc" "plsql" "apex" "groovy" The analysis platform. Cannot be specified together with scan_language.

scan_language

string (ScanLanguage) Enum: "java" "go" "csharp" "javascript" "c" "python" "terraform_hcl" "ruby" "php" "fuzzytestlang" "kotlin" "swift" "plsql" "apex" "groovy" The analysis language. Cannot be specified together with scan_platform.

type

string Enum: "package" "container_package" Example: type=packageThe package finding types to include.

tag

string Example: tag=package_type__eq__alpinea tag query used to filter the findings

per_page

integer [ 1 .. 10000 ] Default: 100 The number of results per page.

page

integer >= 1 Default: 1 The specific page of the results to fetch.

sort

string Enum: "package" "url" "name" "namespace" "type" "version" "license" "created_at" "num_vulns" "num_reachable" "num_exploitable" How to sort results; defaults to ID

order

string Enum: "desc" "asc" Direction of the sort; defaults to descending

Responses

Status
Description

200

Success

default

Error

Response samples

Read the count of multiple tags of an app.

Return information about the packages found in a scan of an app

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/sca/packages

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

Query parameters

Parameter
Description

scan

integer Example: scan=42The ID of the scan to filter to. Defaults to the latest scan.

branch

string Example: branch=feature/1234The branch of which to get the latest scan.

type

string Enum: "package" "container_package" Example: type=packageThe package finding types to include.

tag

string Example: tag=package_type__eq__alpinea tag query used to filter the findings

per_page

integer Number of results per page; defaults to 50

page

integer The page of results to fetch. Results are not guaranteed to be deterministic using this approach; we recommended using the next_page URL in a paginated response

sort

string Enum: "package" "url" "name" "namespace" "type" "version" "license" "created_at" "num_vulns" "num_reachable" "num_exploitable" How to sort results; defaults to ID

order

string Enum: "desc" "asc" Direction of the sort; defaults to descending

Responses

Status
Description

200

Success

default

Error

Response samples

List org findings

Return all findings for the org.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/findings

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Query parameters

Parameter
Description

tags

Array of strings The scan tags to filter by (e.g., branch=main)

finding_tags

Array of strings Example: finding_tags=category=XSSThe findings' filtering tag

type

string The type of findings. Accepted values are oss_vuln, vuln, and secret

severity

string (Severity) Enum: "low" "medium" "high" "critical" The severity filter

assignee

string The email addresses of users assigned to this finding

assignment

string (Assignment) Enum: "unassigned" "assigned" The assignment status filter. By default, all findings, both unassigned and assigned, are returned.

category

string The category filter

details_tags

Array of strings The filter for the finding's details tags

status

string (Status) Enum: "unset" "fixed" "ignored" "3rdparty" "any" The status filter. By default, only unset findings are included.

sort

string How to sort results; defaults to ID

order

string Enum: "desc" "asc" Direction of the sort; defaults to descending

only_counts

boolean Whether to include only finding counts; excludes the list of findings

page

integer The page of results to fetch. Results are not guaranteed to be deterministic using this approach; we recommended using the next_page URL in a paginated response

per_page

integer Number of results per page; defaults to 50

Responses

Status
Description

200

Success

default

Error

Response samples

Read org findings summary

Return a summary of findings for the org.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/findings/summary

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Query parameters

Parameter
Description

tags

Array of strings The scan tags to filter by (e.g., branch=main)

type

string The type of findings. Accepted values are oss_vuln, vuln, and secret

default_branch

boolean Return findings from scans of the app's configured default branch

Responses

Status
Description

200

Success

default

Error

Response samples

Organization Backup

The endpoints for downloading backups of an organization's data.

Download Organization Backup

Downloads the backup for the specified organization.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/backup/download

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Query parameters

Parameter
Description

backup_id

string Backup ID to filter to; defaults to the latest backup.

Responses

Status
Description

200

Organization backup file streamed as a .tar.gz download

default

Error

Response samples

List Organization Backups

Lists the existing backups for the specified organization.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/backup

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Responses

Status
Description

200

Success

default

Error

Response samples

Organizations

The logical grouping (e.g., tenant/account) within Qwiet that defines a set of users, teams, and applications.

Run in Postman

Download audit log CSV

Download the CSV formatted audit log for an organization for a specific month. This feature is disabled by default. Contact Qwiet AI Customer Success to enable it.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/audit/csv/{auditYear}/{auditMonth}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

auditYear (required)

number The year for a requested report

auditMonth (required)

number The month for a requested report

Responses

Status
Description

200

Success

Upsert check-analysis Configuration

Upload configuration file for the check-analysis server-side configuration and returns the hash of the uploaded file when successful. The reference here takes no tag, just a name.

PUT https://app.shiftleft.io/api/v4/orgs/{orgID}/checkanalysis/policies/{reference}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

reference (required)

string the reference

Query parameters

Parameter
Description

tag

string the tags

useDefaults

boolean whether to apply the default versioning mechanism

Request body schema: application/yaml

string <binary>

Responses

Status
Description

200

Success

default

Error

Response samples

Resolve check-analysis Configuration

Resolve the given reference (name plus a tag, which is usually a version number) and return the raw file back to the caller.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/checkanalysis/policies/{reference}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

reference (required)

string the reference

Responses

Status
Description

200

Success

default

Error

Response samples

List check-analysis Configurations

List all check-analysis configurations for the given

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/checkanalysis/policies

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Query parameters

Parameter
Description

name

string Any names to filter for, only those policies tagged with these names will be returned

Responses

Status
Description

200

Success

default

Error

Response samples

Returns the audit log report for the org's SCM secrets

Returns the audit log report for the org's SCM secrets, showing the number of times secrets were attempted to be committed to a repository. The report can be grouped by project or user. One of the 'by-project' or 'by-user' query parameters must be specified.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/scm-secrets-audit-log

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Query parameters

Parameter
Description

days

integer Default: 31 Specifies the number of days for which the audit log should be calculated; defaults to 31.

by-project

boolean If present, the report will be grouped by project.

by-user

boolean If present, the report will be grouped by user.

Responses

Status
Description

200

Success

default

Error

Response samples

Update org configuration

Update configuration options for the organization. Note that this endpoint will overwrite all configuration existing configuration options. We recommend using the GET endpoint to obtain the current configuration for your records before proceeding. Alternatively, if you intend to change only analysis configuration, then you can use UpdateOrgAnalysisConfig endpoint

PUT https://app.shiftleft.io/api/v4/orgs/{orgID}/configuration

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Request body schema: application/json

The schema table for this request body is not available on this page. Go to the OpenAPI specification for the full schema.

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

Patch org configuration

Partially update configuration options for the organization. Only fields present in the request body will be updated; all other fields are preserved. This is safer than PUT when you only need to change a subset of the configuration.

PATCH https://app.shiftleft.io/api/v4/orgs/{orgID}/configuration

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Request body schema: application/json

The schema table for this request body is not available on this page. Go to the OpenAPI specification for the full schema.

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

Read org configuration

Return the configuration options for the organization

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/configuration

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Responses

Status
Description

200

Success

default

Error

Response samples

Read AutoFix configuration for the organization

Return the AutoFix configuration options for the organization

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/autofix_configuration

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Responses

Status
Description

200

Success

default

Error

Response samples

Update org analysis configuration

Create analysis analysis configuration options for the organization. Doesn't touch other parts of configuration (like e.g. default_saml_config)

PUT https://app.shiftleft.io/api/v4/orgs/{orgID}/configuration/analysis

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Request body schema: application/json

The schema table for this request body is not available on this page. Go to the OpenAPI specification for the full schema.

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

Update org analysis configuration

Update analysis analysis configuration options for the organization. Doesn't touch other parts of configuration (like e.g. default_saml_config)

PATCH https://app.shiftleft.io/api/v4/orgs/{orgID}/configuration/analysis

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Request body schema: application/json

The schema table for this request body is not available on this page. Go to the OpenAPI specification for the full schema.

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

RBAC (users and teams)

Roles-based access control (RBAC) allows you to control the permissions users in an organization are granted.

The permissions granted to a user are additive. The base level of a user's permission is determined by their role in the organization.

A team represents a group of users and the applications that group of users can access. Users are granted additional permissions based on their team role.

Users can belong to multiple teams, but an application can only belong to one team.

You can use the TEAM_DEFINED organization role to limit user access to only the apps assigned to their team.

Run in Postman

List roles

Return a list of roles an org has available to use (includes only the roles that are managed by Qwiet). Note that the ID and role ID for a CI token are also used for access tokens. The ID and role ID for an integration token are also used for a Jira integration token.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/rbac/roles

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Responses

Status
Description

200

Success

default

Error

Response samples

Create custom RBAC role

Creates a custom RBAC role for the provided organization

POST https://app.shiftleft.io/api/v4/orgs/{orgID}/rbac/roles

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Request body schema: application/json

Field
Description

name (required)

string The name of the role

description

string The description of the role

scopes (required)

Array of strings (Scope) [^\w+:\w+$|^\w+:\$] The array of scopes that are granted by the role

role_type

string (RoleType) Enum: "team" "organization" "qwiet" The type of role. This is used to categorize roles and determine in what context they can be used. Team roles can only be used in teams, organization roles can be used across the organization, and qwiet roles are predefined roles. Note that 'qwiet' type is reserved for system-defined roles and cannot be used when creating or updating custom roles.

Responses

Status
Description

201

Created

409

Conflict

default

Error

Request samples

Response samples

Update RBAC role

Update the scopes of an existing RBAC role.

PUT https://app.shiftleft.io/api/v4/orgs/{orgID}/rbac/roles/{rbacRoleID}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

rbacRoleID (required)

string <uuid> The role ID

Request body schema: application/json

Field
Description

name

string The name of the role

description

string The description of the role

scopes (required)

Array of strings (Scope) [^\w+:\w+$|^\w+:\$] The array of scopes that are granted by the role

Responses

Status
Description

200

Success

404

Not found

default

Error

Request samples

Response samples

Delete a custom RBAC role

Deletes a custom RBAC role for the provided organization. This operation only applies to custom roles and will not delete built-in system roles.

DELETE https://app.shiftleft.io/api/v4/orgs/{orgID}/rbac/roles/{rbacRoleID}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

rbacRoleID (required)

string <uuid> The role ID

Responses

Status
Description

200

Successfully deleted the role

404

Role not found

default

Error

Response samples

List available RBAC scopes

Returns a list of RBAC scopes available for an organization to use when creating custom roles. These will match directly with the Super Admin role scopes.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/rbac/scopes

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Responses

Status
Description

200

Success

default

Error

Response samples

List users

Returns a list users in the organization, along with their team membership and roles, it allows filter by email.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/rbac/users

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Query parameters

Parameter
Description

email (required)

string <email> The user's email

Responses

Status
Description

200

Success

default

Error

Response samples

Update user

Update a user

PUT https://app.shiftleft.io/api/v4/orgs/{orgID}/rbac/users/{userIDv2}

Authorizations

BearerToken

Path parameters

Parameter
Description

userIDv2 (required)

string <uuid> The user's ID

orgID (required)

string <uuid> The org ID

Request body schema: application/json

Field
Description

org_role (required)

string Enum: "SUPER_ADMIN" "POWER_USER" "MEMBER" "GUEST" "TEAM_DEFINED" The role that should be assigned to the user.

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

Delete user

Delete a user

DELETE https://app.shiftleft.io/api/v4/orgs/{orgID}/rbac/users/{userIDv2}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

userIDv2 (required)

string <uuid> The user's ID

Responses

Status
Description

200

Success

409

Conflict

default

Error

Response samples

List human groups

Return a list of human groups in the organization.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/rbac/groups

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Query parameters

Parameter
Description

name

string The human group name, case sensitive

iname

string The human group name, case insensitive

Responses

Status
Description

200

Success

default

Error

Response samples

Create team

Create a new team for an organization.

POST https://app.shiftleft.io/api/v4/orgs/{orgID}/rbac/teams

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Request body schema: application/json

The schema table for this request body is not available on this page. Go to the OpenAPI specification for the full schema.

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

List teams

Return a list of all teams within an organization.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/rbac/teams

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Query parameters

Parameter
Description

teamName

string The team name

no_members

boolean Value: true Indicates whether or not to include the team members in the response

Responses

Status
Description

200

Success

default

Error

Response samples

Update the members of a team

Update the members of a team.

PUT https://app.shiftleft.io/api/v4/orgs/{orgID}/rbac/teams/{rbacTeamID}/membership

Authorizations

BearerToken

Path parameters

Parameter
Description

rbacTeamID (required)

string <uuid> The team ID

orgID (required)

string <uuid> The org ID

Request body schema: application/json

The schema table for this request body is not available on this page. Go to the OpenAPI specification for the full schema.

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

Update a team's applications

Update the apps assigned to a team.

PUT https://app.shiftleft.io/api/v4/orgs/{orgID}/rbac/teams/{rbacTeamID}/apps

Authorizations

BearerToken

Path parameters

Parameter
Description

rbacTeamID (required)

string <uuid> The team ID

orgID (required)

string <uuid> The org ID

Request body schema: application/json

Field
Description

version (required)

integer The team configuration version

add_applications

Array of strings A list of the applications to add to the team

force_app_inclusion

boolean Whether the app should be added if it belongs to another team. The app will be removed from the conflicting team if added

remove_applications

Array of strings A list of the application IDs to remove from the team

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

Update the metadata of a team

Update the metadata of a team.

PUT https://app.shiftleft.io/api/v4/orgs/{orgID}/rbac/teams/{rbacTeamID}/metadata

Authorizations

BearerToken

Path parameters

Parameter
Description

rbacTeamID (required)

string <uuid> The team ID

orgID (required)

string <uuid> The org ID

Request body schema: application/json

Field
Description

version (required)

integer The team configuration version

change_name

string The team's new name

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

Read team

Return information about a team.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/rbac/teams/{rbacTeamID}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

rbacTeamID (required)

string <uuid> The team ID

Responses

Status
Description

200

Success

default

Error

Response samples

Update a team

Update a team within an organization.

PUT https://app.shiftleft.io/api/v4/orgs/{orgID}/rbac/teams/{rbacTeamID}

Authorizations

BearerToken

Path parameters

Parameter
Description

rbacTeamID (required)

string <uuid> The team ID

orgID (required)

string <uuid> The org ID

Request body schema: application/json

The schema table for this request body is not available on this page. Go to the OpenAPI specification for the full schema.

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

Delete team

Delete a team within an organization.

DELETE https://app.shiftleft.io/api/v4/orgs/{orgID}/rbac/teams/{rbacTeamID}

Authorizations

BearerToken

Path parameters

Parameter
Description

rbacTeamID (required)

string <uuid> The team ID

orgID (required)

string <uuid> The org ID

Request body schema: application/json

Field
Description

version (required)

integer The team's configuration version

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

List groups

Return a list of all groups within a team.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/rbac/teams/{rbacTeamID}/groups

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

rbacTeamID (required)

string <uuid> The team ID

Responses

Status
Description

200

Success

Response samples

Create or update group

Create or update a group within a team.

PUT https://app.shiftleft.io/api/v4/orgs/{orgID}/rbac/teams/{rbacTeamID}/groups

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

rbacTeamID (required)

string <uuid> The team ID

Request body schema: application/json

The schema table for this request body is not available on this page. Go to the OpenAPI specification for the full schema.

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

Read group

Return information about a group.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/rbac/groups/{groupID}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

groupID (required)

string <uuid> A human group's ID

Responses

Status
Description

200

Success

default

Error

Response samples

Update group

Update a group's role within a team.

POST https://app.shiftleft.io/api/v4/orgs/{orgID}/rbac/teams/{rbacTeamID}/groups/{groupID}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

rbacTeamID (required)

string <uuid> The team ID

groupID (required)

string <uuid> A human group's ID

Request body schema: application/json

Field
Description

team_role

string

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

Remove group from team

Remove a group's membership to a team.

DELETE https://app.shiftleft.io/api/v4/orgs/{orgID}/rbac/teams/{rbacTeamID}/groups/{groupID}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

rbacTeamID (required)

string <uuid> The team ID

groupID (required)

string <uuid> A human group's ID

Responses

Status
Description

200

Success

default

Error

Response samples

Read Team group

Return information about a group.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/rbac/teams/{rbacTeamID}/groups/{groupID}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

rbacTeamID (required)

string <uuid> The team ID

groupID (required)

string <uuid> A human group's ID

Responses

Status
Description

200

Success

default

Error

Response samples

Reports

The summaries of applications and their findings for a specific organization.

Run in Postman

Read HTML PCI DSS report for a scan

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/scans/{scanID}/reports/pci_dss/html

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

scanID (required)

string ID of the scan

Query parameters

Parameter
Description

ignore_info_findings

boolean Whether findings marked as informational should be included in the report or not

Responses

Status
Description

200

Success

default

Error

Response samples

Read Detailed OWASP report for a scan

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/scans/{scanID}/reports/owasp-{year}.{ext}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

scanID (required)

string ID of the scan

ext (required)

string Enum: "html" "pdf" Example: pdfthe extension wanted

year (required)

string Enum: "2017" "2021" Example: 2021the year wanted

Query parameters

Parameter
Description

comments

boolean Whether to include comments

status

string (Status) Enum: "unset" "fixed" "ignored" "3rdparty" "any" The status filter. By default, only unset findings are included.

tz

string Example: tz=America/New_YorkThe timezone for any times shown in the report. By default, times are shown in UTC.

Responses

Status
Description

200

Success

default

Error

Response samples

Read CWE report for a scan

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/scans/{scanID}/reports/cwe.{ext}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

scanID (required)

string ID of the scan

ext (required)

string Enum: "html" "pdf" Example: pdfthe extension wanted

Query parameters

Parameter
Description

comments

boolean Whether to include comments

status

string (Status) Enum: "unset" "fixed" "ignored" "3rdparty" "any" The status filter. By default, only unset findings are included.

tz

string Example: tz=America/New_YorkThe timezone for any times shown in the report. By default, times are shown in UTC.

Responses

Status
Description

200

Success

default

Error

Response samples

SAML

The integration endpoints allowing orgs to configure Qwiet to act as a SAML service provider (SP) that uses the customer's identity provider (IdP) to log users in.

Run in Postman

Create a SAML configuration for an org

Create a SAML configuration that can be used to authenticate users for an organization

POST https://app.shiftleft.io/api/v4/orgs/{orgID}/saml_configs

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Request body schema: application/json

Field
Description

idp_metadata_url

string <uri> The URL of the SAML Identity Provider's (IdP) metadata endpoint

idp_metadata

string The raw XML metadata that can be provided instead of idp_metadata_url

allow_implicit_invites

boolean Sets whether any successful SAML-identified user should be allowed to join your org (true) or not (false)

default_org_role

string The default role that new users in the org are given when joining via SAML. If not specified, this defaults to "TEAM_DEFINED"

sign_auth_requests

boolean Whether to sign SAML requests sent from Qwiet to the SAML IdP

allow_idp_initiated_logins

boolean Whether SAML-initiated logins should be allowed or not. By default they are disabled, as service provider (SP) initiated logins are generally considered safer. When enabled, the saml_config endpoint will have another field, "idp_default_relay_state", which contains an opaque blob that needs to be set as the default relay state in the IdP configuration. This state will be sent on every request where no relay state was provided and contains some additional information to help the SP (Qwiet) properly route the request.

name (required)

string (SAMLConfigName) ^[a-zA-Z0-9-_]{1, 255}$ The name and ID of the specified SAML configuration

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

List SAML configurations for an org

List the SAML Configurations that can be used to authenticate users in an organization

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/saml_configs

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Responses

Status
Description

200

Success

default

Error

Response samples

Update SAML configuration for an org

Update a SAML Configuration used to authenticate users for an organization

PUT https://app.shiftleft.io/api/v4/orgs/{orgID}/saml_configs/{SAMLConfigName}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

SAMLConfigName (required)

string (SAMLConfigName) ^[a-zA-Z0-9-_]{1, 255}$ The name and ID of the specified SAML configuration

Request body schema: application/json

Field
Description

idp_metadata_url

string <uri> The URL of the SAML Identity Provider's (IdP) metadata endpoint

idp_metadata

string The raw XML metadata that can be provided instead of idp_metadata_url

allow_implicit_invites

boolean Sets whether any successful SAML-identified user should be allowed to join your org (true) or not (false)

default_org_role

string The default role that new users in the org are given when joining via SAML. If not specified, this defaults to "TEAM_DEFINED"

sign_auth_requests

boolean Whether to sign SAML requests sent from Qwiet to the SAML IdP

allow_idp_initiated_logins

boolean Whether SAML-initiated logins should be allowed or not. By default they are disabled, as service provider (SP) initiated logins are generally considered safer. When enabled, the saml_config endpoint will have another field, "idp_default_relay_state", which contains an opaque blob that needs to be set as the default relay state in the IdP configuration. This state will be sent on every request where no relay state was provided and contains some additional information to help the SP (Qwiet) properly route the request.

Responses

Status
Description

200

Success

Request samples

Response samples

Delete an org's SAML configuration

Delete a SAML Configuration that is used to authenticate users in an organization

DELETE https://app.shiftleft.io/api/v4/orgs/{orgID}/saml_configs/{SAMLConfigName}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

SAMLConfigName (required)

string (SAMLConfigName) ^[a-zA-Z0-9-_]{1, 255}$ The name and ID of the specified SAML configuration

Responses

Status
Description

200

Success

default

Error

Response samples

Provision or update SAML users for an organization.

Create or update SAML users and their org or team roles. Users cannot be deleted.

POST https://app.shiftleft.io/api/v4/orgs/{orgID}/saml/provision

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Request body schema: application/json (array)

The schema table for this request body is not available on this page. Go to the OpenAPI specification for the full schema.

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

Reset a SAML user's access token.

Blanks the access token of a specific SAML user in the organization. The organization must have SAML enabled and the target user must be a SAML user.

POST https://app.shiftleft.io/api/v4/orgs/{orgID}/saml/users/{userIDv2}/access_token/reset

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

userIDv2 (required)

string <uuid> The user's ID

Responses

Status
Description

204

Access token successfully reset.

default

Error

Response samples

Bulk reset SAML user access tokens.

Blanks the access tokens of multiple SAML users in the organization. The organization must have SAML enabled. Users that are not found or are not SAML users are reported separately in the response.

POST https://app.shiftleft.io/api/v4/orgs/{orgID}/saml/access_token/reset

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Request body schema: application/json

Field
Description

user_ids (required)

Array of strings <uuid> non-empty [ items <uuid > ] list of user IDs (v2) whose access tokens should be reset.

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

SARIF

The integration endpoints for generating and downloading SARIF reports for applications.

Download Compound SARIF Report

Downloads the SARIF report for the specified compound.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/compounds/named/{compoundName}/reports/sarif

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

compoundName (required)

string A compound's name

Query parameters

Parameter
Description

polyglot_scan

string Polyglot scan ID to filter to; defaults to the latest scan.

scan_version

string The version of the code at scan time. Ignored if polyglot_scan is given.

scan_branch

string The code branch at scan time. Ignored if polygot_scan or scan_version are given.

scan_tag

string^(?<key>.*?)__eq__(?<value>.*)$ Tags passed to the analyzer at scan time. Ignored if polygot_scan, scan_version, or scan_branch are given.

scan_platform

string (ScanPlatform) Enum: "java" "go" "csharp" "javascript" "c" "python" "terraform_hcl" "ruby" "php" "fuzzytestlang" "kotlin" "javasrc" "pythonsrc" "jssrc" "secrets" "swiftsrc" "plsql" "apex" "groovy" The analysis platform. Cannot be specified together with scan_language.

scan_language

string (ScanLanguage) Enum: "java" "go" "csharp" "javascript" "c" "python" "terraform_hcl" "ruby" "php" "fuzzytestlang" "kotlin" "swift" "plsql" "apex" "groovy" The analysis language. Cannot be specified together with scan_platform.

Responses

Status
Description

200

SARIF report file streamed as download

default

Error

Response samples

Saved Searches

The saved searches endpoints allow users to save specific search queries for organization and app findings

Get all saved searches for an user

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/saved_searches

Path parameters

Parameter
Description

orgID (required)

string

Responses

Status
Description

200

A list of saved searches

Response samples

Create a new saved search for a user

POST https://app.shiftleft.io/api/v4/orgs/{orgID}/saved_searches

Path parameters

Parameter
Description

orgID (required)

string

Request body schema: application/json (required)

Field
Description

search_name

string

path_name

string

search_query

string

Responses

Status
Description

201

Saved search created

Request samples

Update a saved search for a user

PUT https://app.shiftleft.io/api/v4/orgs/{orgID}/saved_searches/{searchID}

Path parameters

Parameter
Description

orgID (required)

string

searchID (required)

string

Request body schema: application/json (required)

Field
Description

search_name

string

path_name

string

search_query

string

Responses

Status
Description

200

Saved search updated

Request samples

Delete a saved search for a user

DELETE https://app.shiftleft.io/api/v4/orgs/{orgID}/saved_searches/{searchID}

Path parameters

Parameter
Description

orgID (required)

string

searchID (required)

string

Responses

Status
Description

204

Saved search deleted

SCA

The summaries of software composition analysis (SCA) results for apps in an organization.

Run in Postman

Read the SCA packages of a compound scan

Return information about the packages found in a scan of an app

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/compounds/named/{compoundName}/sca/packages

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

compoundName (required)

string A compound's name

Query parameters

Parameter
Description

polyglot_scan

integer Example: polyglot_scan=42Polyglot scan ID of the scan to filter to; defaults to the latest scan.

scan_version

string Example: scan_version=9b7e138e1b16dc5261803cceffb86c36800c2c7fThe version of which to get the latest scan. This is usually a SHA1. Ignored if polyglot_scan is given.

scan_branch

string Example: scan_branch=feature/1234The branch of which to get the latest scan. Ignored if polygot_scan or scan_version are given.

scan_tag

string^(?<key>.*?)__eq__(?<value>.*)$ Tags passed to the analyzer at scan time. Ignored if polygot_scan, scan_version, or scan_branch are given.

scan_platform

string (ScanPlatform) Enum: "java" "go" "csharp" "javascript" "c" "python" "terraform_hcl" "ruby" "php" "fuzzytestlang" "kotlin" "javasrc" "pythonsrc" "jssrc" "secrets" "swiftsrc" "plsql" "apex" "groovy" The analysis platform. Cannot be specified together with scan_language.

scan_language

string (ScanLanguage) Enum: "java" "go" "csharp" "javascript" "c" "python" "terraform_hcl" "ruby" "php" "fuzzytestlang" "kotlin" "swift" "plsql" "apex" "groovy" The analysis language. Cannot be specified together with scan_platform.

type

string Enum: "package" "container_package" Example: type=packageThe package finding types to include.

tag

string Example: tag=package_type__eq__alpinea tag query used to filter the findings

per_page

integer [ 1 .. 10000 ] Default: 100 The number of results per page.

page

integer >= 1 Default: 1 The specific page of the results to fetch.

sort

string Enum: "package" "url" "name" "namespace" "type" "version" "license" "created_at" "num_vulns" "num_reachable" "num_exploitable" How to sort results; defaults to ID

order

string Enum: "desc" "asc" Direction of the sort; defaults to descending

Responses

Status
Description

200

Success

default

Error

Response samples

Read the count of multiple tags of an app.

Return information about the packages found in a scan of an app

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/sca/packages

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

Query parameters

Parameter
Description

scan

integer Example: scan=42The ID of the scan to filter to. Defaults to the latest scan.

branch

string Example: branch=feature/1234The branch of which to get the latest scan.

type

string Enum: "package" "container_package" Example: type=packageThe package finding types to include.

tag

string Example: tag=package_type__eq__alpinea tag query used to filter the findings

per_page

integer Number of results per page; defaults to 50

page

integer The page of results to fetch. Results are not guaranteed to be deterministic using this approach; we recommended using the next_page URL in a paginated response

sort

string Enum: "package" "url" "name" "namespace" "type" "version" "license" "created_at" "num_vulns" "num_reachable" "num_exploitable" How to sort results; defaults to ID

order

string Enum: "desc" "asc" Direction of the sort; defaults to descending

Responses

Status
Description

200

Success

default

Error

Response samples

Return all dependencies for the org apps if they match the search criteria.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/dependencies

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Query parameters

Parameter
Description

search

string Search filter that looks for matches in finding titles and tags

page

integer [ 1 .. 20 ] Default: 1 Example: page=1The page of results to fetch. Currently asking for pages beyond 20 will fail.

per_page

integer [ 0 .. 1000 ] Default: 250 Number of results per page.

from

integer Packages found during scans created as of this time are included in the search. Value should be a Unix timestamp (in seconds). Defaults to 4 months before until. Increasing the time window increases the chance that the search will timeout.

until

integer Packages found during scans created up to this time are included in the search. Value should be a Unix timestamp (in seconds). Defaults to the creation timestamp of the most recent successful scan.

Responses

Status
Description

200

Success

default

Error

Response samples

Retrieve package information (CVEs, licenses, and more) for a list of PURLs

POST https://app.shiftleft.io/api/v4/package_info

Request body schema: application/json

Field
Description

purls

Array of strings

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

Scans

The instances where Qwiet AI by Harness is invoked to identify findings in an application.

Run in Postman

List scans

Return the most recent scans for the indicated app.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/scans

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

Query parameters

Parameter
Description

tags

Array of strings The scan tags to filter by (e.g., branch=main)

limit

integer The number of scans to return (must be between 1 and 50, inclusive). The default is 10 scans

Responses

Status
Description

200

Success

default

Error

Response samples

Compare scans

Compare two scans and return a list of the findings in each, along with regression information.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/scans/compare

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

Query parameters

Parameter
Description

source (required)

string^scan\\d+|tag\\w=\w$ Example: source=scan.128|tag.branch=samplebranchThe source scan for a comparison

target (required)

string^scan\\d+|tag\\w=\w$ Example: target=scan.128|tag.branch=samplebranchThe target scan for a comparison

Responses

Status
Description

200

Success

default

Error

Response samples

Check a scan against a set of rules

Check a scan against a set of rules, using another scan as a reference.

POST https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{compoundName}/scans/check

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

compoundName (required)

string A compound's name

Request body schema: application/json

The schema table for this request body is not available on this page. Go to the OpenAPI specification for the full schema.

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

Read scan details

Return details for the specified scan.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/scans/{scanID}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

scanID (required)

string ID of the scan

Responses

Status
Description

200

Success

default

Error

Response samples

Read check scans report

Read Check Scans Report.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/scans/{scanID}/report

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

scanID (required)

string ID of the scan

Responses

Status
Description

200

Success

default

Error

Response samples

List scans in a compound, returning a subset of the scan summary information

The full information we can return about a scan is a lot of data, which slows down a UI that only wants to present a subset of it to the user. This endpoint returns only the subset actually needed for rendering that UI. As such it's meant for internal use only, but is documented because other API users may find it useful for similar reasons.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/compounds/named/{compoundName}/scans/streamlined

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

compoundName (required)

string A compound's name

Query parameters

Parameter
Description

limit

integer [ 1 .. 100 ] Default: 10 The number of scans to return.

branch

string Only consider scans on this branch.

upto

integer Only list scans created before this time (given in nanoseconds since the UNIX Epoch).

Responses

Status
Description

200

Success

default

Error

Response samples

Read compound scan

Retrieve details for a specific scan of a compound

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/compounds/named/{compoundName}/scans/{scanID}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

compoundName (required)

string A compound's name

scanID (required)

string The ID of the scan to retrieve

Query parameters

Parameter
Description

archived

boolean If present, includes archived compounds

Responses

Status
Description

200

Success

default

Error

Response samples

List Scans of Compound

List all scans for a specific compound

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/compounds/named/{compoundName}/scans

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

compoundName (required)

string A compound's name

Query parameters

Parameter
Description

archived

boolean If present, includes archived compounds

status

string Enum: "completed" "running" "failed" Filter scans by status

branch

string Filter scans by branch

limit

integer The number of scans to return (must be between 1 and 50, inclusive). The default is 10 scans

Responses

Status
Description

200

Success

default

Error

Response samples

Read scan's finding counts (grouped by OWASP category)

Returns a detailed list of OWASP categories and sub-categories and their counts (where available).

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/scans/{scanID}/owasp_counts

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

scanID (required)

string ID of the scan

Responses

Status
Description

200

Success

default

Error

Response samples

Scopes

Scopes define the type of resource and the operation that you can perform with the access token you bear. For example, scans:create means that the bearer of the token with this scope can create scans via the API.

For each endpoint, we indicate the scope required to perform an operation under Authorizations.

We also offer helper endpoints that allow you to determine what the allowed scopes for your access token are in the context of a specific API resource.

Run in Postman

List user's org scopes

Return a list of the scopes the user's bearer token is allowed to perform in the context of an org.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/my_scopes

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Responses

Status
Description

200

Success

default

Error

Response samples

List user's app scopes

Return a list of scopes the user is allowed to perform in the context of an app.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/my_scopes

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

Responses

Status
Description

200

Success

default

Error

Response samples

List user's team scopes

Return a list of scopes the user is allowed to perform in the context of their team.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/rbac/teams/{rbacTeamID}/my_scopes

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

rbacTeamID (required)

string <uuid> The team ID

Responses

Status
Description

200

Success

default

Error

Response samples

Slack

The integration endpoints enabling users to set up a Slack integration.

Authorize Slack

Authorize Slack for the given organization and redirect to Slack authorization prompt

GET https://app.shiftleft.io/api/v4/slack/authorize/orgs/{orgID}

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Responses

Status
Description

302

Redirect

default

Error

Response samples

Receive Slack OAuth 2.0 data

Receive Slack OAuth 2.0 data and set up organization configuration with API token

GET https://app.shiftleft.io/api/v4/slack/orgs/{orgID}

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Responses

Status
Description

302

Redirect

default

Error

Response samples

Delete Slack OAuth 2.0 data

Delete the Slack configuration for the given organization and revoke stored API token

DELETE https://app.shiftleft.io/api/v4/slack/orgs/{orgID}

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Responses

Status
Description

200

Success

default

Error

Response samples

Team configuration

The endpoints to manage team-level configuration.

Read team config

Return the configuration of a team.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/rbac/teams/{rbacTeamID}/configuration

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

rbacTeamID (required)

string <uuid> The team ID

Responses

Status
Description

200

Success

default

Error

Response samples

Update team config

Update the team's configuration.

PUT https://app.shiftleft.io/api/v4/orgs/{orgID}/rbac/teams/{rbacTeamID}/configuration

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

rbacTeamID (required)

string <uuid> The team ID

Request body schema: application/json

The schema table for this request body is not available on this page. Go to the OpenAPI specification for the full schema.

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

Patch team config

Partially update the team's configuration. Only fields present in the request body will be updated; all other fields are preserved.

PATCH https://app.shiftleft.io/api/v4/orgs/{orgID}/rbac/teams/{rbacTeamID}/configuration

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

rbacTeamID (required)

string <uuid> The team ID

Request body schema: application/json

The schema table for this request body is not available on this page. Go to the OpenAPI specification for the full schema.

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

Read merged team config

Return the effective configuration of a team by taking the organization configuration before merging in the actual team configuration on top, overriding those defaults.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/rbac/teams/{rbacTeamID}/configuration/merged

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

rbacTeamID (required)

string <uuid> The team ID

Responses

Status
Description

200

Success

default

Error

Response samples

Access tokens

Used to authenticate with the API.

Can be issued by org admins. Each access token is owned by the org that issued it.

Run in Postman

List access token roles

Return a list of roles an that are assigned to an access token and are available for use (includes only the roles that are managed by Qwiet).

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/roles

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Responses

Status
Description

200

Success

default

Error

Response samples

List tokens

Return a list of tokens issued by the org.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/tokens

The token data returned includes metadata that identifies a token, included permissions, and an ID you can use to delete/revoke the token. The token data does NOT return the token value, which is exposed only when Qwiet issues the token.

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Query parameters

Parameter
Description

show_expired

boolean Whether expired tokens should be returned or not

token_type

string (TokenType) Enum: "access" "integration" Filter the response by the type of token

Responses

Status
Description

200

Success

default

Error

Response samples

Create token

Create a new token for use with the API. The token can be assigned a role using the role_id parameter in the request body.

POST https://app.shiftleft.io/api/v4/orgs/{orgID}/tokens

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Request body schema: application/json

Field
Description

label (required)

string A user-defined label to identify the token

description

string A user-defined description that describes why this token was created and how it should be used

role_id (required)

string The ID of the role attached to this token. For integration tokens, this can be either a predefined role ID from the List access token roles endpoint or a custom organization role ID from the List custom RBAC roles endpoint.

token_type

string (TokenType) Enum: "access" "integration"

valid_for_seconds

integer The duration (in seconds) for which the token is valid (optional)

Responses

Status
Description

200

Success

default

Error

Request samples

Response samples

Delete token

Delete an access token using its identifier.

DELETE https://app.shiftleft.io/api/v4/orgs/{orgID}/tokens/{tokenID}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

tokenID (required)

string <uuid> The token ID

Responses

Status
Description

200

Success

default

Error

Response samples

Users

Users pertains the users in general as qwiet.ai users and of each org as organization users.

Read user and their organization information.

Read the user and their organization membership and invites information.

GET https://app.shiftleft.io/api/v4/user

Authorizations

BearerToken

Responses

Status
Description

200

Success

default

Error

Response samples

Versions

The specific instances of an application scanned using Qwiet AI by Harness.

List app versions

Return a list of the versions of the app that Qwiet has scanned

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/versions

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

Query parameters

Parameter
Description

tags

Array of strings The scan tags to filter by (e.g., branch=main)

type

string The type of findings. Accepted values are oss_vuln, vuln, and secret

Responses

Status
Description

200

Success

default

Error

Response samples

Read summary of findings for an app version

Return a summary of findings for a single version

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/apps/{appID}/versions/{versionID}

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

appID (required)

string The app ID (e.g., HelloQwiet)

versionID (required)

string The version ID (e.g., 7d0...8b10)

Query parameters

Parameter
Description

type

string The type of findings. Accepted values are oss_vuln, vuln, and secret

scan

string The ID of the scan to filter to. Defaults to the latest scan

Responses

Status
Description

200

Success

default

Error

Response samples

Wiz

The endpoints to manage the Wiz integration.

Get WIZ client credentials

Get the client credentials i.e. authURL, apiURL.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/integrations/wiz/creds

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Responses

Status
Description

200

Success

404

Credentials Not Found

default

Error

Response samples

Store WIZ client credentials

Captures the wiz client credentials such as clientID, clientSecret, authentication url & API endpoint.

PUT https://app.shiftleft.io/api/v4/orgs/{orgID}/integrations/wiz/creds

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Request body schema: application/json

Field
Description

client_id

string service account client id

client_secret

string service account client secret

auth_url

string wiz authentication url (i.e. "https://auth.app.wiz.io/oauth/token")

api_url

string wiz api endpoint (i.e. "https://api.us17.app.wiz.io/graphql")

Responses

Status
Description

200

Success

400

The provided wiz auth/api url is invalid

401

The provided wiz client credentials are invalid

403

The provided wiz credentials does not have sufficient permissions for enrichment

default

Error

Request samples

Response samples

Get Wiz Compound enrollment status

Get the compound enrollment status. Provides detail about enrolled enrichments. If no compound level configuration present, it fetches the organization level configurations.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/compounds/named/{compoundName}/integrations/wiz/enrollment

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

compoundName (required)

string A compound's name

Responses

Status
Description

200

Success

400

Enrollment not found

default

Error

Response samples

Update Wiz Compound enrollment

Updates compound enrollment. A compound can be enrolled for multiple supported enrichment [SAST/SCA]. Only the projects under enrolled compound are allowed for wiz integration after the successful project scan.

PUT https://app.shiftleft.io/api/v4/orgs/{orgID}/compounds/named/{compoundName}/integrations/wiz/enrollment

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

compoundName (required)

string A compound's name

Request body schema: application/json

Field
Description

enrolled_for

Array of strings enrichment type, possible values [SAST, SCA]

scope

string indicates the scope from which configuration are fetched. If no config found for requested scope, it fetches the config from higher level. possible values- compound / organization.

is_enabled

boolean disables enrichment at the config level. i.e. If a compound level enrichment is disabled, the compound will be ignored during enrichment even if the org level enrichment is enabled. Granular level configuration takes the higher precedence.

Responses

Status
Description

200

Success

400

The provided wiz enrichment type is invalid

default

Error

Request samples

Response samples

Remove Wiz Compound enrollment

Removes compoud enrollment. Removed compound will not be used for wiz enrichment.

DELETE https://app.shiftleft.io/api/v4/orgs/{orgID}/compounds/named/{compoundName}/integrations/wiz/enrollment

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

compoundName (required)

string A compound's name

Responses

Status
Description

200

Success

400

Enrollment not found

default

Error

Response samples

Get Wiz Org enrollment status

Get the org enrollment status. Provides detail about enrolled enrichments.

GET https://app.shiftleft.io/api/v4/orgs/{orgID}/integrations/wiz/enrollment

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Responses

Status
Description

200

Success

400

Enrollment not found

default

Error

Response samples

Update Wiz Org enrollment

Updates Wiz org enrollment. This configuration will be default for all compounds under the organization unless overridden at compound level.

PUT https://app.shiftleft.io/api/v4/orgs/{orgID}/integrations/wiz/enrollment

Authorizations

BearerToken

Path parameters

Parameter
Description

orgID (required)

string <uuid> The org ID

Request body schema: application/json

Field
Description

enrolled_for

Array of strings enrichment type, possible values [SAST, SCA]

scope

string indicates the scope from which configuration are fetched. If no config found for requested scope, it fetches the config from higher level. possible values- compound / organization.

is_enabled

boolean disables enrichment at the config level. i.e. If a compound level enrichment is disabled, the compound will be ignored during enrichment even if the org level enrichment is enabled. Granular level configuration takes the higher precedence.

Responses

Status
Description

200

Success

400

The provided wiz enrichment type is invalid

default

Error

Request samples

Response samples

Last updated

Was this helpful?