Skip to content
These docs describe staging.zkao.io and the @zksecurity/zkao-cli@next release. For production, see docs.zkao.io.

List the scan presets (scan types) the project can launch

GET
/projects/{projectId}/scan-presets
curl --request GET \
--url https://zkao.io/api/v1/projects/example/scan-presets \
--header 'Authorization: Bearer <token>'

Requires scope: read. Use a preset’s ref as presetRef when launching.

projectId
required
string

OK

Media typeapplication/json
object
presets
required
Array<object>
object
ref
required

Pass as presetRef when launching.

string
name
required
string
description
string | null
minCredits
required

Minimum budget for a launch. 0 = use the default floor.

integer
modelTier
required
string
Examplegenerated
{
"presets": [
{
"ref": "example",
"name": "example",
"description": "example",
"minCredits": 1,
"modelTier": "example"
}
]
}

Missing, malformed, expired, or revoked token

Media typeapplication/json
object
error
required
object
code
required
string
Allowed values: unauthorized forbidden not_found bad_request conflict insufficient_credits repository_initializing diff_base_required diff_base_not_allowed diff_base_invalid diff_empty rate_limited internal
message
required
string
Example
{
"error": {
"code": "unauthorized"
}
}

The token lacks the required scope

Media typeapplication/json
object
error
required
object
code
required
string
Allowed values: unauthorized forbidden not_found bad_request conflict insufficient_credits repository_initializing diff_base_required diff_base_not_allowed diff_base_invalid diff_empty rate_limited internal
message
required
string
Example
{
"error": {
"code": "unauthorized"
}
}

Resource not in this token’s project or repo allowlist

Media typeapplication/json
object
error
required
object
code
required
string
Allowed values: unauthorized forbidden not_found bad_request conflict insufficient_credits repository_initializing diff_base_required diff_base_not_allowed diff_base_invalid diff_empty rate_limited internal
message
required
string
Example
{
"error": {
"code": "unauthorized"
}
}