Skip to content
Start here

Vulnerability Scanner

Vulnerability ScannerCredential Sets

List Credential Sets
client.vulnerabilityScanner.credentialSets.list(CredentialSetListParams { account_id, page, per_page } params?, RequestOptionsoptions?): V4PagePaginationArray<CredentialSetListResponse { id, name } >
GET/accounts/{account_id}/vuln_scanner/credential_sets
Create Credential Set
client.vulnerabilityScanner.credentialSets.create(CredentialSetCreateParams { account_id, name } params, RequestOptionsoptions?): CredentialSetCreateResponse { id, name }
POST/accounts/{account_id}/vuln_scanner/credential_sets
Get Credential Set
client.vulnerabilityScanner.credentialSets.get(stringcredentialSetId, CredentialSetGetParams { account_id } params?, RequestOptionsoptions?): CredentialSetGetResponse { id, name }
GET/accounts/{account_id}/vuln_scanner/credential_sets/{credential_set_id}
Update Credential Set
client.vulnerabilityScanner.credentialSets.update(stringcredentialSetId, CredentialSetUpdateParams { account_id, name } params, RequestOptionsoptions?): CredentialSetUpdateResponse { id, name }
PUT/accounts/{account_id}/vuln_scanner/credential_sets/{credential_set_id}
Edit Credential Set
client.vulnerabilityScanner.credentialSets.edit(stringcredentialSetId, CredentialSetEditParams { account_id, name } params, RequestOptionsoptions?): CredentialSetEditResponse { id, name }
PATCH/accounts/{account_id}/vuln_scanner/credential_sets/{credential_set_id}
Delete Credential Set
client.vulnerabilityScanner.credentialSets.delete(stringcredentialSetId, CredentialSetDeleteParams { account_id } params?, RequestOptionsoptions?): CredentialSetDeleteResponse | null
DELETE/accounts/{account_id}/vuln_scanner/credential_sets/{credential_set_id}
ModelsExpand Collapse
CredentialSetListResponse { id, name }
id: string

Credential set identifier.

formatuuid
name: string

Human-readable name.

CredentialSetCreateResponse { id, name }
id: string

Credential set identifier.

formatuuid
name: string

Human-readable name.

CredentialSetGetResponse { id, name }
id: string

Credential set identifier.

formatuuid
name: string

Human-readable name.

CredentialSetUpdateResponse { id, name }
id: string

Credential set identifier.

formatuuid
name: string

Human-readable name.

CredentialSetEditResponse { id, name }
id: string

Credential set identifier.

formatuuid
name: string

Human-readable name.

CredentialSetDeleteResponse = unknown

Vulnerability ScannerCredential SetsCredentials

List Credentials
client.vulnerabilityScanner.credentialSets.credentials.list(stringcredentialSetId, CredentialListParams { account_id, page, per_page } params?, RequestOptionsoptions?): V4PagePaginationArray<CredentialListResponse { id, credential_set_id, location, 2 more } >
GET/accounts/{account_id}/vuln_scanner/credential_sets/{credential_set_id}/credentials
Create Credential
client.vulnerabilityScanner.credentialSets.credentials.create(stringcredentialSetId, CredentialCreateParams { account_id, location, location_name, 2 more } params, RequestOptionsoptions?): CredentialCreateResponse { id, credential_set_id, location, 2 more }
POST/accounts/{account_id}/vuln_scanner/credential_sets/{credential_set_id}/credentials
Get Credential
client.vulnerabilityScanner.credentialSets.credentials.get(stringcredentialSetId, stringcredentialId, CredentialGetParams { account_id } params?, RequestOptionsoptions?): CredentialGetResponse { id, credential_set_id, location, 2 more }
GET/accounts/{account_id}/vuln_scanner/credential_sets/{credential_set_id}/credentials/{credential_id}
Update Credential
client.vulnerabilityScanner.credentialSets.credentials.update(stringcredentialSetId, stringcredentialId, CredentialUpdateParams { account_id, location, location_name, 2 more } params, RequestOptionsoptions?): CredentialUpdateResponse { id, credential_set_id, location, 2 more }
PUT/accounts/{account_id}/vuln_scanner/credential_sets/{credential_set_id}/credentials/{credential_id}
Edit Credential
client.vulnerabilityScanner.credentialSets.credentials.edit(stringcredentialSetId, stringcredentialId, CredentialEditParams { account_id, location, location_name, 2 more } params, RequestOptionsoptions?): CredentialEditResponse { id, credential_set_id, location, 2 more }
PATCH/accounts/{account_id}/vuln_scanner/credential_sets/{credential_set_id}/credentials/{credential_id}
Delete Credential
client.vulnerabilityScanner.credentialSets.credentials.delete(stringcredentialSetId, stringcredentialId, CredentialDeleteParams { account_id } params?, RequestOptionsoptions?): CredentialDeleteResponse | null
DELETE/accounts/{account_id}/vuln_scanner/credential_sets/{credential_set_id}/credentials/{credential_id}
ModelsExpand Collapse
CredentialListResponse { id, credential_set_id, location, 2 more }

A credential attached to API requests during scanning. The credential value is write-only and never returned in responses.

id: string

Credential identifier.

formatuuid
credential_set_id: string

Parent credential set identifier.

formatuuid
location: "header" | "cookie"

Where the credential is attached in outgoing requests.

One of the following:
"header"
"cookie"
location_name: string

Name of the header or cookie where the credential is attached.

name: string

Human-readable name.

CredentialCreateResponse { id, credential_set_id, location, 2 more }

A credential attached to API requests during scanning. The credential value is write-only and never returned in responses.

id: string

Credential identifier.

formatuuid
credential_set_id: string

Parent credential set identifier.

formatuuid
location: "header" | "cookie"

Where the credential is attached in outgoing requests.

One of the following:
"header"
"cookie"
location_name: string

Name of the header or cookie where the credential is attached.

name: string

Human-readable name.

CredentialGetResponse { id, credential_set_id, location, 2 more }

A credential attached to API requests during scanning. The credential value is write-only and never returned in responses.

id: string

Credential identifier.

formatuuid
credential_set_id: string

Parent credential set identifier.

formatuuid
location: "header" | "cookie"

Where the credential is attached in outgoing requests.

One of the following:
"header"
"cookie"
location_name: string

Name of the header or cookie where the credential is attached.

name: string

Human-readable name.

CredentialUpdateResponse { id, credential_set_id, location, 2 more }

A credential attached to API requests during scanning. The credential value is write-only and never returned in responses.

id: string

Credential identifier.

formatuuid
credential_set_id: string

Parent credential set identifier.

formatuuid
location: "header" | "cookie"

Where the credential is attached in outgoing requests.

One of the following:
"header"
"cookie"
location_name: string

Name of the header or cookie where the credential is attached.

name: string

Human-readable name.

CredentialEditResponse { id, credential_set_id, location, 2 more }

A credential attached to API requests during scanning. The credential value is write-only and never returned in responses.

id: string

Credential identifier.

formatuuid
credential_set_id: string

Parent credential set identifier.

formatuuid
location: "header" | "cookie"

Where the credential is attached in outgoing requests.

One of the following:
"header"
"cookie"
location_name: string

Name of the header or cookie where the credential is attached.

name: string

Human-readable name.

CredentialDeleteResponse = unknown

Vulnerability ScannerScans

List Scans
client.vulnerabilityScanner.scans.list(ScanListParams { account_id, page, per_page } params?, RequestOptionsoptions?): V4PagePaginationArray<ScanListResponse { id, scan_type, status, 2 more } >
GET/accounts/{account_id}/vuln_scanner/scans
Create Scan
client.vulnerabilityScanner.scans.create(ScanCreateParams { account_id, credential_sets, open_api, 2 more } params, RequestOptionsoptions?): ScanCreateResponse { id, scan_type, status, 2 more }
POST/accounts/{account_id}/vuln_scanner/scans
Get Scan
client.vulnerabilityScanner.scans.get(stringscanId, ScanGetParams { account_id } params?, RequestOptionsoptions?): ScanGetResponse { id, scan_type, status, 2 more }
GET/accounts/{account_id}/vuln_scanner/scans/{scan_id}
ModelsExpand Collapse
ScanListResponse { id, scan_type, status, 2 more }
id: string

Scan identifier.

formatuuid
scan_type: "bola"

The type of vulnerability scan.

status: "created" | "scheduled" | "planning" | 3 more

Current lifecycle status of the scan.

One of the following:
"created"
"scheduled"
"planning"
"running"
"finished"
"failed"
target_environment_id: string

The target environment this scan runs against.

formatuuid
report?: Report | null

Vulnerability report produced after the scan completes. The shape depends on the scan type. Present only for finished scans.

report: Report { summary, tests }

Version 1 of the BOLA vulnerability scan report.

summary: Summary { verdict }

Summary of all steps and findings.

verdict: "ok" | "warning" | "inconclusive"

Overall verdict of the vulnerability scan.

One of the following:
"ok"
"warning"
"inconclusive"
tests: Array<Test>

List of tests that were run.

steps: Array<Step>

Steps that were executed.

assertions: Array<Assertion>

Assertions that were made against the received response.

description: string

Human-readable description of the assertion, explaining what was checked.

kind: Kind { parameters, type }

Kind of assertion.

parameters: Parameters { max, min }

Range of HTTP status codes.

max: number

Maximum (inclusive) status code of the range.

maximum65535
minimum0
min: number

Minimum (inclusive) status code of the range.

maximum65535
minimum0
type: "http_status_within_range"
observed: number | null

Observed value on which the assertion was made.

outcome: "ok" | "fail" | "inconclusive"

Outcome of the assertion.

One of the following:
"ok"
"fail"
"inconclusive"
errors?: Array<Error>

Errors the step encountered that may explain absent or incomplete fields.

description: string

Human-readable error description.

error_code?: number | null

Numeric error code identifying the class of error, if available.

formatuint32
minimum0
request?: Request | null

HTTP request that was made, if any.

credential_set: CredentialSet { id, role }

Credential set that was used.

id: string

ID of the credential set.

formatuuid
role: "owner" | "attacker"

Role of the credential set.

One of the following:
"owner"
"attacker"
header_names: Array<string>

Names of headers that were sent.

method: "GET" | "DELETE" | "PATCH" | 2 more

HTTP method.

One of the following:
"GET"
"DELETE"
"PATCH"
"POST"
"PUT"
url: string

Exact and full URL (including host, query parameters) that was requested.

formaturi
variable_captures: Array<VariableCapture>

Variable captures requested for this step.

json_path: string

JSONPath expression used for capture, e.g. "$.id".

name: string

Variable name, e.g. "resource_id".

body?: unknown

Request body, if any.

response?: Response | null

HTTP response that was received, if any.

body: Kind { kind } | UnionMember1 { contents, kind, truncated } | UnionMember2 { contents, kind, truncated } | UnionMember3 { contents, kind, truncated }

HTTP response body.

One of the following:
Kind { kind }

No body was received.

kind: "not_found"
UnionMember1 { contents, kind, truncated }

Body received but unable to read as UTF-8. Raw bytes, base64-encoded.

contents: string
kind: "bytes"
truncated: boolean
UnionMember2 { contents, kind, truncated }

Body received as valid UTF-8 text but not valid JSON.

contents: string
kind: "text"
truncated: boolean
UnionMember3 { contents, kind, truncated }

Body received as valid JSON.

contents: string
kind: "json"
truncated: boolean
header_names: Array<string>

Names of headers that were received.

status: number

HTTP status code.

maximum65535
minimum0
status_text?: string | null

HTTP status text, if available for the status code.

verdict: "ok" | "warning" | "inconclusive"

Verdict of this single test.

One of the following:
"ok"
"warning"
"inconclusive"
preflight_errors?: Array<PreflightError>

Errors that prevented step execution.

description: string

Human-readable error description.

error_code?: number | null

Numeric error code identifying the class of error, if available.

formatuint32
minimum0
report_schema_version: "v1"

Version of the report schema.

ScanCreateResponse { id, scan_type, status, 2 more }
id: string

Scan identifier.

formatuuid
scan_type: "bola"

The type of vulnerability scan.

status: "created" | "scheduled" | "planning" | 3 more

Current lifecycle status of the scan.

One of the following:
"created"
"scheduled"
"planning"
"running"
"finished"
"failed"
target_environment_id: string

The target environment this scan runs against.

formatuuid
report?: Report | null

Vulnerability report produced after the scan completes. The shape depends on the scan type. Present only for finished scans.

report: Report { summary, tests }

Version 1 of the BOLA vulnerability scan report.

summary: Summary { verdict }

Summary of all steps and findings.

verdict: "ok" | "warning" | "inconclusive"

Overall verdict of the vulnerability scan.

One of the following:
"ok"
"warning"
"inconclusive"
tests: Array<Test>

List of tests that were run.

steps: Array<Step>

Steps that were executed.

assertions: Array<Assertion>

Assertions that were made against the received response.

description: string

Human-readable description of the assertion, explaining what was checked.

kind: Kind { parameters, type }

Kind of assertion.

parameters: Parameters { max, min }

Range of HTTP status codes.

max: number

Maximum (inclusive) status code of the range.

maximum65535
minimum0
min: number

Minimum (inclusive) status code of the range.

maximum65535
minimum0
type: "http_status_within_range"
observed: number | null

Observed value on which the assertion was made.

outcome: "ok" | "fail" | "inconclusive"

Outcome of the assertion.

One of the following:
"ok"
"fail"
"inconclusive"
errors?: Array<Error>

Errors the step encountered that may explain absent or incomplete fields.

description: string

Human-readable error description.

error_code?: number | null

Numeric error code identifying the class of error, if available.

formatuint32
minimum0
request?: Request | null

HTTP request that was made, if any.

credential_set: CredentialSet { id, role }

Credential set that was used.

id: string

ID of the credential set.

formatuuid
role: "owner" | "attacker"

Role of the credential set.

One of the following:
"owner"
"attacker"
header_names: Array<string>

Names of headers that were sent.

method: "GET" | "DELETE" | "PATCH" | 2 more

HTTP method.

One of the following:
"GET"
"DELETE"
"PATCH"
"POST"
"PUT"
url: string

Exact and full URL (including host, query parameters) that was requested.

formaturi
variable_captures: Array<VariableCapture>

Variable captures requested for this step.

json_path: string

JSONPath expression used for capture, e.g. "$.id".

name: string

Variable name, e.g. "resource_id".

body?: unknown

Request body, if any.

response?: Response | null

HTTP response that was received, if any.

body: Kind { kind } | UnionMember1 { contents, kind, truncated } | UnionMember2 { contents, kind, truncated } | UnionMember3 { contents, kind, truncated }

HTTP response body.

One of the following:
Kind { kind }

No body was received.

kind: "not_found"
UnionMember1 { contents, kind, truncated }

Body received but unable to read as UTF-8. Raw bytes, base64-encoded.

contents: string
kind: "bytes"
truncated: boolean
UnionMember2 { contents, kind, truncated }

Body received as valid UTF-8 text but not valid JSON.

contents: string
kind: "text"
truncated: boolean
UnionMember3 { contents, kind, truncated }

Body received as valid JSON.

contents: string
kind: "json"
truncated: boolean
header_names: Array<string>

Names of headers that were received.

status: number

HTTP status code.

maximum65535
minimum0
status_text?: string | null

HTTP status text, if available for the status code.

verdict: "ok" | "warning" | "inconclusive"

Verdict of this single test.

One of the following:
"ok"
"warning"
"inconclusive"
preflight_errors?: Array<PreflightError>

Errors that prevented step execution.

description: string

Human-readable error description.

error_code?: number | null

Numeric error code identifying the class of error, if available.

formatuint32
minimum0
report_schema_version: "v1"

Version of the report schema.

ScanGetResponse { id, scan_type, status, 2 more }
id: string

Scan identifier.

formatuuid
scan_type: "bola"

The type of vulnerability scan.

status: "created" | "scheduled" | "planning" | 3 more

Current lifecycle status of the scan.

One of the following:
"created"
"scheduled"
"planning"
"running"
"finished"
"failed"
target_environment_id: string

The target environment this scan runs against.

formatuuid
report?: Report | null

Vulnerability report produced after the scan completes. The shape depends on the scan type. Present only for finished scans.

report: Report { summary, tests }

Version 1 of the BOLA vulnerability scan report.

summary: Summary { verdict }

Summary of all steps and findings.

verdict: "ok" | "warning" | "inconclusive"

Overall verdict of the vulnerability scan.

One of the following:
"ok"
"warning"
"inconclusive"
tests: Array<Test>

List of tests that were run.

steps: Array<Step>

Steps that were executed.

assertions: Array<Assertion>

Assertions that were made against the received response.

description: string

Human-readable description of the assertion, explaining what was checked.

kind: Kind { parameters, type }

Kind of assertion.

parameters: Parameters { max, min }

Range of HTTP status codes.

max: number

Maximum (inclusive) status code of the range.

maximum65535
minimum0
min: number

Minimum (inclusive) status code of the range.

maximum65535
minimum0
type: "http_status_within_range"
observed: number | null

Observed value on which the assertion was made.

outcome: "ok" | "fail" | "inconclusive"

Outcome of the assertion.

One of the following:
"ok"
"fail"
"inconclusive"
errors?: Array<Error>

Errors the step encountered that may explain absent or incomplete fields.

description: string

Human-readable error description.

error_code?: number | null

Numeric error code identifying the class of error, if available.

formatuint32
minimum0
request?: Request | null

HTTP request that was made, if any.

credential_set: CredentialSet { id, role }

Credential set that was used.

id: string

ID of the credential set.

formatuuid
role: "owner" | "attacker"

Role of the credential set.

One of the following:
"owner"
"attacker"
header_names: Array<string>

Names of headers that were sent.

method: "GET" | "DELETE" | "PATCH" | 2 more

HTTP method.

One of the following:
"GET"
"DELETE"
"PATCH"
"POST"
"PUT"
url: string

Exact and full URL (including host, query parameters) that was requested.

formaturi
variable_captures: Array<VariableCapture>

Variable captures requested for this step.

json_path: string

JSONPath expression used for capture, e.g. "$.id".

name: string

Variable name, e.g. "resource_id".

body?: unknown

Request body, if any.

response?: Response | null

HTTP response that was received, if any.

body: Kind { kind } | UnionMember1 { contents, kind, truncated } | UnionMember2 { contents, kind, truncated } | UnionMember3 { contents, kind, truncated }

HTTP response body.

One of the following:
Kind { kind }

No body was received.

kind: "not_found"
UnionMember1 { contents, kind, truncated }

Body received but unable to read as UTF-8. Raw bytes, base64-encoded.

contents: string
kind: "bytes"
truncated: boolean
UnionMember2 { contents, kind, truncated }

Body received as valid UTF-8 text but not valid JSON.

contents: string
kind: "text"
truncated: boolean
UnionMember3 { contents, kind, truncated }

Body received as valid JSON.

contents: string
kind: "json"
truncated: boolean
header_names: Array<string>

Names of headers that were received.

status: number

HTTP status code.

maximum65535
minimum0
status_text?: string | null

HTTP status text, if available for the status code.

verdict: "ok" | "warning" | "inconclusive"

Verdict of this single test.

One of the following:
"ok"
"warning"
"inconclusive"
preflight_errors?: Array<PreflightError>

Errors that prevented step execution.

description: string

Human-readable error description.

error_code?: number | null

Numeric error code identifying the class of error, if available.

formatuint32
minimum0
report_schema_version: "v1"

Version of the report schema.

Vulnerability ScannerTarget Environments

List Target Environments
client.vulnerabilityScanner.targetEnvironments.list(TargetEnvironmentListParams { account_id, page, per_page } params?, RequestOptionsoptions?): V4PagePaginationArray<TargetEnvironmentListResponse { id, name, target, description } >
GET/accounts/{account_id}/vuln_scanner/target_environments
Create Target Environment
client.vulnerabilityScanner.targetEnvironments.create(TargetEnvironmentCreateParams { account_id, name, target, description } params, RequestOptionsoptions?): TargetEnvironmentCreateResponse { id, name, target, description }
POST/accounts/{account_id}/vuln_scanner/target_environments
Get Target Environment
client.vulnerabilityScanner.targetEnvironments.get(stringtargetEnvironmentId, TargetEnvironmentGetParams { account_id } params?, RequestOptionsoptions?): TargetEnvironmentGetResponse { id, name, target, description }
GET/accounts/{account_id}/vuln_scanner/target_environments/{target_environment_id}
Update Target Environment
client.vulnerabilityScanner.targetEnvironments.update(stringtargetEnvironmentId, TargetEnvironmentUpdateParams { account_id, name, target, description } params, RequestOptionsoptions?): TargetEnvironmentUpdateResponse { id, name, target, description }
PUT/accounts/{account_id}/vuln_scanner/target_environments/{target_environment_id}
Edit Target Environment
client.vulnerabilityScanner.targetEnvironments.edit(stringtargetEnvironmentId, TargetEnvironmentEditParams { account_id, description, name, target } params, RequestOptionsoptions?): TargetEnvironmentEditResponse { id, name, target, description }
PATCH/accounts/{account_id}/vuln_scanner/target_environments/{target_environment_id}
Delete Target Environment
client.vulnerabilityScanner.targetEnvironments.delete(stringtargetEnvironmentId, TargetEnvironmentDeleteParams { account_id } params?, RequestOptionsoptions?): TargetEnvironmentDeleteResponse | null
DELETE/accounts/{account_id}/vuln_scanner/target_environments/{target_environment_id}
ModelsExpand Collapse
TargetEnvironmentListResponse { id, name, target, description }
id: string

Target environment identifier.

formatuuid
name: string

Human-readable name.

target: Target { type, zone_tag }

Identifies the Cloudflare asset to scan. Uses a type discriminator. Currently the service supports only zone targets.

type: "zone"
zone_tag: string

Cloudflare zone tag. The zone must belong to the account.

maxLength32
description?: string | null

Optional description providing additional context.

TargetEnvironmentCreateResponse { id, name, target, description }
id: string

Target environment identifier.

formatuuid
name: string

Human-readable name.

target: Target { type, zone_tag }

Identifies the Cloudflare asset to scan. Uses a type discriminator. Currently the service supports only zone targets.

type: "zone"
zone_tag: string

Cloudflare zone tag. The zone must belong to the account.

maxLength32
description?: string | null

Optional description providing additional context.

TargetEnvironmentGetResponse { id, name, target, description }
id: string

Target environment identifier.

formatuuid
name: string

Human-readable name.

target: Target { type, zone_tag }

Identifies the Cloudflare asset to scan. Uses a type discriminator. Currently the service supports only zone targets.

type: "zone"
zone_tag: string

Cloudflare zone tag. The zone must belong to the account.

maxLength32
description?: string | null

Optional description providing additional context.

TargetEnvironmentUpdateResponse { id, name, target, description }
id: string

Target environment identifier.

formatuuid
name: string

Human-readable name.

target: Target { type, zone_tag }

Identifies the Cloudflare asset to scan. Uses a type discriminator. Currently the service supports only zone targets.

type: "zone"
zone_tag: string

Cloudflare zone tag. The zone must belong to the account.

maxLength32
description?: string | null

Optional description providing additional context.

TargetEnvironmentEditResponse { id, name, target, description }
id: string

Target environment identifier.

formatuuid
name: string

Human-readable name.

target: Target { type, zone_tag }

Identifies the Cloudflare asset to scan. Uses a type discriminator. Currently the service supports only zone targets.

type: "zone"
zone_tag: string

Cloudflare zone tag. The zone must belong to the account.

maxLength32
description?: string | null

Optional description providing additional context.

TargetEnvironmentDeleteResponse = unknown