Skip to content

Async tasks & results

Quote a task, submit it safely, follow progress and download the result.

Use a confirmed asset and a tool from the catalog. The example uses image-sr with a 2× scale. To process a prior version, include sourceVersionId; otherwise the original is used. fitToLimits: true permits proportional downscaling to tool limits when applicable.

This request is read-only and does not charge credits. A non-null problem means the selection cannot currently be submitted. A valid quote returns quoteId, expiresAt and the integer costCredits. Quotes do not reserve balance or compute capacity.

POST/api/v1/tasks/quote
Bearer API KeyScope: readSuccess: 200
Request body fields · application/json
assetIdstringrequired
fitToLimitsbooleanoptional
maxCostCreditsinteger · int64optional

minimum: 0

paramsobject | object | object | object | object | objectrequired
Expand fields / variants
Variant 1 · object
type"none"required
Variant 2 · object
type"scale"required
valueinteger · int64required
Variant 3 · object
type"fps"required
valueinteger · int64required
Variant 4 · object
type"faceProtect"required
valuebooleanrequired
Variant 5 · object
type"regions"required
valueobject[]required

minItems: 1

Expand fields / variants
colorstringoptional

pattern: "^#[0-9a-fA-F]{6}$"

endMsinteger · int64optional

minimum: 0

heightnumber · doublerequired

minimum: 0 · maximum: 1

kind"positive" | "negative" | "absent" | "suggested"optional
objectIdinteger · int64optional

minimum: 0 · maximum: 7

strokesobject[]optional

maxItems: 64

Expand fields / variants
pointsnumber · double[][]required

minItems: 1 · maxItems: 4000

Expand fields / variants

number · double

radiusnumber · doublerequired

minimum: 0 · maximum: 0.25

timeMsinteger · int64optional

minimum: 0

widthnumber · doublerequired

minimum: 0 · maximum: 1

xnumber · doublerequired

minimum: 0 · maximum: 1

ynumber · doublerequired

minimum: 0 · maximum: 1

Variant 6 · object
type"watermark"required
valueobjectrequired
Expand fields / variants
objectsobject[]optional

maxItems: 8

Expand fields / variants
namestringrequired

minLength: 1 · maxLength: 24

objectIdinteger · int64required

minimum: 0 · maximum: 7

regionsobject[]required

maxItems: 64

Expand fields / variants
colorstringoptional

pattern: "^#[0-9a-fA-F]{6}$"

endMsinteger · int64optional

minimum: 0

heightnumber · doublerequired

minimum: 0 · maximum: 1

kind"positive" | "negative" | "absent" | "suggested"optional
objectIdinteger · int64optional

minimum: 0 · maximum: 7

strokesobject[]optional

maxItems: 64

Expand fields / variants
pointsnumber · double[][]required

minItems: 1 · maxItems: 4000

Expand fields / variants

number · double

radiusnumber · doublerequired

minimum: 0 · maximum: 0.25

timeMsinteger · int64optional

minimum: 0

widthnumber · doublerequired

minimum: 0 · maximum: 1

xnumber · doublerequired

minimum: 0 · maximum: 1

ynumber · doublerequired

minimum: 0 · maximum: 1

revisionIdstringoptional
quoteIdstringoptional
rushbooleanoptional
sourceVersionIdstringoptional
toolIdstringrequired
useImagePackbooleanoptional

Request example

Terminal window
curl --include --fail-with-body --silent --show-error --max-time 60 \
--request POST 'https://app.berserkapi.com/api/v1/tasks/quote' \
--header "Authorization: Bearer $GLACIER_API_KEY" \
--header 'Content-Type: application/json' \
--data-raw '{
"assetId": "ASSET_ID",
"toolId": "image-sr",
"params": {
"type": "scale",
"value": 2
}
}'
Response fields · 200
balanceCreditsinteger · int64required
canFitbooleanrequired
costCreditsinteger · int64required
expiresAtstring | null · date-timerequired
fixedCreditsinteger · int64required
imageUnitsinteger · int64required
minCreditsinteger · int64required
needsTopupbooleanrequired
outputHeightinteger · int64required
outputWidthinteger · int64required
priceIdstring | nullrequired
problemstring | nullrequired
quoteIdstring | nullrequired
resizedbooleanrequired
unitCreditsinteger · int64required
unitDivisorinteger · int64required
unitSizeinteger · int64required
unitsMilliinteger · int64required
usesFreeRushbooleanrequired

Replace QUOTE_ID with the quote you just received, keeping the same asset, source version, tool, parameters and fit-to-limits setting. Within its validity window the quote locks the price; expired or mismatched quotes return 409. One quote creates at most one task. maxCostCredits can additionally cap the charge.

Set GLACIER_IDEMPOTENCY_KEY to a unique value for this logical task (for example, a UUID). Save the key and exact request body before sending. Reuse both on retries, including after restarting your process. Create a new key only for an intentionally new task. The allowed characters are letters, digits, ., _, : and -, with a maximum length of 128.

Success returns 202 Accepted, not a completed image. Credits are precharged atomically with task creation. The response includes id, status, urls.status, urls.result, urls.cancel, plus Location and Retry-After: 2 headers. A network timeout only stops your client’s wait; it does not cancel the server task.

POST/api/v1/tasks
Bearer API KeyScope: writeSuccess: 202
Path, query and headers
ParameterLocationType & constraints
Idempotency-Key
required
headerstring

minLength: 1 · maxLength: 128 · pattern: "^[A-Za-z0-9._:-]+$"

Request body fields · application/json
assetIdstringrequired
fitToLimitsbooleanoptional
maxCostCreditsinteger · int64optional

minimum: 0

paramsobject | object | object | object | object | objectrequired
Expand fields / variants
Variant 1 · object
type"none"required
Variant 2 · object
type"scale"required
valueinteger · int64required
Variant 3 · object
type"fps"required
valueinteger · int64required
Variant 4 · object
type"faceProtect"required
valuebooleanrequired
Variant 5 · object
type"regions"required
valueobject[]required

minItems: 1

Expand fields / variants
colorstringoptional

pattern: "^#[0-9a-fA-F]{6}$"

endMsinteger · int64optional

minimum: 0

heightnumber · doublerequired

minimum: 0 · maximum: 1

kind"positive" | "negative" | "absent" | "suggested"optional
objectIdinteger · int64optional

minimum: 0 · maximum: 7

strokesobject[]optional

maxItems: 64

Expand fields / variants
pointsnumber · double[][]required

minItems: 1 · maxItems: 4000

Expand fields / variants

number · double

radiusnumber · doublerequired

minimum: 0 · maximum: 0.25

timeMsinteger · int64optional

minimum: 0

widthnumber · doublerequired

minimum: 0 · maximum: 1

xnumber · doublerequired

minimum: 0 · maximum: 1

ynumber · doublerequired

minimum: 0 · maximum: 1

Variant 6 · object
type"watermark"required
valueobjectrequired
Expand fields / variants
objectsobject[]optional

maxItems: 8

Expand fields / variants
namestringrequired

minLength: 1 · maxLength: 24

objectIdinteger · int64required

minimum: 0 · maximum: 7

regionsobject[]required

maxItems: 64

Expand fields / variants
colorstringoptional

pattern: "^#[0-9a-fA-F]{6}$"

endMsinteger · int64optional

minimum: 0

heightnumber · doublerequired

minimum: 0 · maximum: 1

kind"positive" | "negative" | "absent" | "suggested"optional
objectIdinteger · int64optional

minimum: 0 · maximum: 7

strokesobject[]optional

maxItems: 64

Expand fields / variants
pointsnumber · double[][]required

minItems: 1 · maxItems: 4000

Expand fields / variants

number · double

radiusnumber · doublerequired

minimum: 0 · maximum: 0.25

timeMsinteger · int64optional

minimum: 0

widthnumber · doublerequired

minimum: 0 · maximum: 1

xnumber · doublerequired

minimum: 0 · maximum: 1

ynumber · doublerequired

minimum: 0 · maximum: 1

revisionIdstringoptional
quoteIdstringoptional
rushbooleanoptional
sourceVersionIdstringoptional
toolIdstringrequired
useImagePackbooleanoptional

Request example

Terminal window
# Set GLACIER_IDEMPOTENCY_KEY once per logical task; reuse it AND the body on retries.
curl --include --fail-with-body --silent --show-error --max-time 60 \
--request POST 'https://app.berserkapi.com/api/v1/tasks' \
--header "Authorization: Bearer $GLACIER_API_KEY" \
--header "Idempotency-Key: $GLACIER_IDEMPOTENCY_KEY" \
--header 'Content-Type: application/json' \
--data-raw '{
"assetId": "ASSET_ID",
"toolId": "image-sr",
"params": {
"type": "scale",
"value": 2
},
"quoteId": "QUOTE_ID"
}'
Response fields · 202
assetIdstringrequired
assetNamestringrequired
costCreditsinteger · int64required
createdAtstring · date-timerequired
enginestringrequired
errorstring | nullrequired
finishedAtstring | null · date-timerequired
idstringrequired
maskPreviewUrlstring | nullrequired
modelLoadingbooleanrequired
outputVersionDeletedbooleanrequired
outputVersionIdstring | nullrequired
outputVersionIndexinteger | null · int64required
paramsobject | object | object | object | object | objectrequired
Expand fields / variants
Variant 1 · object
type"none"required
Variant 2 · object
type"scale"required
valueinteger · int64required
Variant 3 · object
type"fps"required
valueinteger · int64required
Variant 4 · object
type"faceProtect"required
valuebooleanrequired
Variant 5 · object
type"regions"required
valueobject[]required

minItems: 1

Expand fields / variants
colorstringoptional

pattern: "^#[0-9a-fA-F]{6}$"

endMsinteger · int64optional

minimum: 0

heightnumber · doublerequired

minimum: 0 · maximum: 1

kind"positive" | "negative" | "absent" | "suggested"optional
objectIdinteger · int64optional

minimum: 0 · maximum: 7

strokesobject[]optional

maxItems: 64

Expand fields / variants
pointsnumber · double[][]required

minItems: 1 · maxItems: 4000

Expand fields / variants

number · double

radiusnumber · doublerequired

minimum: 0 · maximum: 0.25

timeMsinteger · int64optional

minimum: 0

widthnumber · doublerequired

minimum: 0 · maximum: 1

xnumber · doublerequired

minimum: 0 · maximum: 1

ynumber · doublerequired

minimum: 0 · maximum: 1

Variant 6 · object
type"watermark"required
valueobjectrequired
Expand fields / variants
objectsobject[]optional

maxItems: 8

Expand fields / variants
namestringrequired

minLength: 1 · maxLength: 24

objectIdinteger · int64required

minimum: 0 · maximum: 7

regionsobject[]required

maxItems: 64

Expand fields / variants
colorstringoptional

pattern: "^#[0-9a-fA-F]{6}$"

endMsinteger · int64optional

minimum: 0

heightnumber · doublerequired

minimum: 0 · maximum: 1

kind"positive" | "negative" | "absent" | "suggested"optional
objectIdinteger · int64optional

minimum: 0 · maximum: 7

strokesobject[]optional

maxItems: 64

Expand fields / variants
pointsnumber · double[][]required

minItems: 1 · maxItems: 4000

Expand fields / variants

number · double

radiusnumber · doublerequired

minimum: 0 · maximum: 0.25

timeMsinteger · int64optional

minimum: 0

widthnumber · doublerequired

minimum: 0 · maximum: 1

xnumber · doublerequired

minimum: 0 · maximum: 1

ynumber · doublerequired

minimum: 0 · maximum: 1

revisionIdstringoptional
processingStartProgressnumber · doublerequired
processingStartedAtstring | null · date-timerequired
progressnumber · doublerequired
queuePositioninteger | null · int64required
queueRunninginteger | null · int64required
reportobjectrequired
Expand fields / variants
degradedbooleanrequired
detectorsobject[]required
Expand fields / variants
idstringrequired
marginnumber | null · doublerequired
modelVersionstringrequired
probabilitynumber · doublerequired

minimum: 0 · maximum: 1

scorenumber | null · doublerequired

minimum: 0 · maximum: 100

thresholdnumber · doublerequired

minimum: 0 · maximum: 1

verdict"ai" | "real"required
sourceVersionIdstring | nullrequired
sourceVersionIndexinteger · int64required
startedAtstring | null · date-timerequired
status"queued" | "running" | "succeeded" | "failed" | "canceled"required
toolIdstringrequired
toolNamestringrequired
urlsobjectrequired
Expand fields / variants
cancelstringrequired
resultstringrequired
statusstringrequired
watermarkAnalysisbooleanrequired
watermarkFindobjectrequired
Expand fields / variants
candidatesobject[]required
Expand fields / variants
boxobjectrequired
Expand fields / variants
heightnumber · doublerequired

minimum: 0 · maximum: 1

widthnumber · doublerequired

minimum: 0 · maximum: 1

xnumber · doublerequired

minimum: 0 · maximum: 1

ynumber · doublerequired

minimum: 0 · maximum: 1

endMsinteger | null · int64required
evidencestring[]required
Expand fields / variants

string

keyframesMsinteger · int64[]required
Expand fields / variants

integer · int64

namestring | nullrequired
objectIdinteger · int64required

minimum: 0 · maximum: 7

startMsinteger · int64required
subtitlebooleanrequired
thumbnailstring | nullrequired

maxLength: 65536

modelVersionstringrequired
watermarkRevisionbooleanrequired

Response headers: Location, Retry-After

Call this endpoint using the returned id, or resolve urls.status against the site origin (it already starts with /api/v1; do not append it to the API base a second time). Respect Retry-After; the suggested interval is two seconds. Stop polling on a terminal state. progress ranges from 0 to 1; queue position and timestamps may be null.

State Next step
queued Wait for compute; keep polling
running Processing; keep polling
succeeded Fetch the result
failed Read the task error; no output is available
canceled Processing stopped; do not fetch a result
GET/api/v1/tasks/{taskId}
Bearer API KeyScope: readSuccess: 200
Path, query and headers
ParameterLocationType & constraints
taskId
required
pathstring

Request example

Terminal window
curl --include --fail-with-body --silent --show-error --max-time 60 \
--request GET 'https://app.berserkapi.com/api/v1/tasks/TASK_ID' \
--header "Authorization: Bearer $GLACIER_API_KEY"
Response fields · 200
assetIdstringrequired
assetNamestringrequired
costCreditsinteger · int64required
createdAtstring · date-timerequired
enginestringrequired
errorstring | nullrequired
finishedAtstring | null · date-timerequired
idstringrequired
maskPreviewUrlstring | nullrequired
modelLoadingbooleanrequired
outputVersionDeletedbooleanrequired
outputVersionIdstring | nullrequired
outputVersionIndexinteger | null · int64required
paramsobject | object | object | object | object | objectrequired
Expand fields / variants
Variant 1 · object
type"none"required
Variant 2 · object
type"scale"required
valueinteger · int64required
Variant 3 · object
type"fps"required
valueinteger · int64required
Variant 4 · object
type"faceProtect"required
valuebooleanrequired
Variant 5 · object
type"regions"required
valueobject[]required

minItems: 1

Expand fields / variants
colorstringoptional

pattern: "^#[0-9a-fA-F]{6}$"

endMsinteger · int64optional

minimum: 0

heightnumber · doublerequired

minimum: 0 · maximum: 1

kind"positive" | "negative" | "absent" | "suggested"optional
objectIdinteger · int64optional

minimum: 0 · maximum: 7

strokesobject[]optional

maxItems: 64

Expand fields / variants
pointsnumber · double[][]required

minItems: 1 · maxItems: 4000

Expand fields / variants

number · double

radiusnumber · doublerequired

minimum: 0 · maximum: 0.25

timeMsinteger · int64optional

minimum: 0

widthnumber · doublerequired

minimum: 0 · maximum: 1

xnumber · doublerequired

minimum: 0 · maximum: 1

ynumber · doublerequired

minimum: 0 · maximum: 1

Variant 6 · object
type"watermark"required
valueobjectrequired
Expand fields / variants
objectsobject[]optional

maxItems: 8

Expand fields / variants
namestringrequired

minLength: 1 · maxLength: 24

objectIdinteger · int64required

minimum: 0 · maximum: 7

regionsobject[]required

maxItems: 64

Expand fields / variants
colorstringoptional

pattern: "^#[0-9a-fA-F]{6}$"

endMsinteger · int64optional

minimum: 0

heightnumber · doublerequired

minimum: 0 · maximum: 1

kind"positive" | "negative" | "absent" | "suggested"optional
objectIdinteger · int64optional

minimum: 0 · maximum: 7

strokesobject[]optional

maxItems: 64

Expand fields / variants
pointsnumber · double[][]required

minItems: 1 · maxItems: 4000

Expand fields / variants

number · double

radiusnumber · doublerequired

minimum: 0 · maximum: 0.25

timeMsinteger · int64optional

minimum: 0

widthnumber · doublerequired

minimum: 0 · maximum: 1

xnumber · doublerequired

minimum: 0 · maximum: 1

ynumber · doublerequired

minimum: 0 · maximum: 1

revisionIdstringoptional
processingStartProgressnumber · doublerequired
processingStartedAtstring | null · date-timerequired
progressnumber · doublerequired
queuePositioninteger | null · int64required
queueRunninginteger | null · int64required
reportobjectrequired
Expand fields / variants
degradedbooleanrequired
detectorsobject[]required
Expand fields / variants
idstringrequired
marginnumber | null · doublerequired
modelVersionstringrequired
probabilitynumber · doublerequired

minimum: 0 · maximum: 1

scorenumber | null · doublerequired

minimum: 0 · maximum: 100

thresholdnumber · doublerequired

minimum: 0 · maximum: 1

verdict"ai" | "real"required
sourceVersionIdstring | nullrequired
sourceVersionIndexinteger · int64required
startedAtstring | null · date-timerequired
status"queued" | "running" | "succeeded" | "failed" | "canceled"required
toolIdstringrequired
toolNamestringrequired
urlsobjectrequired
Expand fields / variants
cancelstringrequired
resultstringrequired
statusstringrequired
watermarkAnalysisbooleanrequired
watermarkFindobjectrequired
Expand fields / variants
candidatesobject[]required
Expand fields / variants
boxobjectrequired
Expand fields / variants
heightnumber · doublerequired

minimum: 0 · maximum: 1

widthnumber · doublerequired

minimum: 0 · maximum: 1

xnumber · doublerequired

minimum: 0 · maximum: 1

ynumber · doublerequired

minimum: 0 · maximum: 1

endMsinteger | null · int64required
evidencestring[]required
Expand fields / variants

string

keyframesMsinteger · int64[]required
Expand fields / variants

integer · int64

namestring | nullrequired
objectIdinteger · int64required

minimum: 0 · maximum: 7

startMsinteger · int64required
subtitlebooleanrequired
thumbnailstring | nullrequired

maxLength: 65536

modelVersionstringrequired
watermarkRevisionbooleanrequired

Response headers: Location, Retry-After

Call only after success. File tasks return an output version with downloadUrl. Download that signed URL without an API key. Detection and watermark helper tasks may instead return report, watermarkFind or maskPreviewUrl, with output: null; check the field before accessing it. watermarkAnalysisUrl is an API path and does require the API key.

urlExpiresAt indicates when this set of signed URLs expires. Call this result endpoint again to refresh them without another processing charge. A task not yet successful returns 409; deleted output returns 410.

GET/api/v1/tasks/{taskId}/result
Bearer API KeyScope: readSuccess: 200
Path, query and headers
ParameterLocationType & constraints
taskId
required
pathstring

Request example

Terminal window
curl --include --fail-with-body --silent --show-error --max-time 60 \
--request GET 'https://app.berserkapi.com/api/v1/tasks/TASK_ID/result' \
--header "Authorization: Bearer $GLACIER_API_KEY"
Response fields · 200
maskPreviewUrlstring | nullrequired
outputobjectrequired
Expand fields / variants
assetIdstringrequired
createdAtstring · date-timerequired
downloadUrlstringrequired
durationMsinteger | null · int64required
frameCountinteger | null · int64required
frameRatenumber | null · doublerequired
heightinteger · int64required
idstringrequired
indexinteger · int64required
labelstringrequired
maskUrlstring | nullrequired
mimeTypestringrequired
previewPendingbooleanrequired
previewUrlstring | nullrequired
sizeBytesinteger · int64required
sourceVersionIdstring | nullrequired
thumbnailUrlstring | nullrequired
toolIdstring | nullrequired
urlstringrequired
watermarkMarksobject[]required
Expand fields / variants
colorstringoptional

pattern: "^#[0-9a-fA-F]{6}$"

endMsinteger · int64optional

minimum: 0

heightnumber · doublerequired

minimum: 0 · maximum: 1

kind"positive" | "negative" | "absent" | "suggested"optional
objectIdinteger · int64optional

minimum: 0 · maximum: 7

strokesobject[]optional

maxItems: 64

Expand fields / variants
pointsnumber · double[][]required

minItems: 1 · maxItems: 4000

Expand fields / variants

number · double

radiusnumber · doublerequired

minimum: 0 · maximum: 0.25

timeMsinteger · int64optional

minimum: 0

widthnumber · doublerequired

minimum: 0 · maximum: 1

xnumber · doublerequired

minimum: 0 · maximum: 1

ynumber · doublerequired

minimum: 0 · maximum: 1

watermarkObjectsobject[]required
Expand fields / variants
namestringrequired

minLength: 1 · maxLength: 24

objectIdinteger · int64required

minimum: 0 · maximum: 7

widthinteger · int64required
reportobjectrequired
Expand fields / variants
degradedbooleanrequired
detectorsobject[]required
Expand fields / variants
idstringrequired
marginnumber | null · doublerequired
modelVersionstringrequired
probabilitynumber · doublerequired

minimum: 0 · maximum: 1

scorenumber | null · doublerequired

minimum: 0 · maximum: 100

thresholdnumber · doublerequired

minimum: 0 · maximum: 1

verdict"ai" | "real"required
status"queued" | "running" | "succeeded" | "failed" | "canceled"required
taskIdstringrequired
urlExpiresAtstring | null · date-timerequired
watermarkAnalysisUrlstring | nullrequired
watermarkFindobjectrequired
Expand fields / variants
candidatesobject[]required
Expand fields / variants
boxobjectrequired
Expand fields / variants
heightnumber · doublerequired

minimum: 0 · maximum: 1

widthnumber · doublerequired

minimum: 0 · maximum: 1

xnumber · doublerequired

minimum: 0 · maximum: 1

ynumber · doublerequired

minimum: 0 · maximum: 1

endMsinteger | null · int64required
evidencestring[]required
Expand fields / variants

string

keyframesMsinteger · int64[]required
Expand fields / variants

integer · int64

namestring | nullrequired
objectIdinteger · int64required

minimum: 0 · maximum: 7

startMsinteger · int64required
subtitlebooleanrequired
thumbnailstring | nullrequired

maxLength: 65536

modelVersionstringrequired

Filter with assetId, toolId and status. limit defaults to 50 and supports up to 200; this endpoint has no cursor pagination. Use your saved task IDs to poll individual jobs.

GET/api/v1/tasks
Bearer API KeyScope: readSuccess: 200
Path, query and headers
ParameterLocationType & constraints
assetId
optional
querystring

toolId
optional
querystring

status
optional
query"queued" | "running" | "succeeded" | "failed" | "canceled"

limit
optional
queryinteger · int64

minimum: 1 · maximum: 200 · default: 50

Request example

Terminal window
curl --include --fail-with-body --silent --show-error --max-time 60 \
--request GET 'https://app.berserkapi.com/api/v1/tasks?limit=20' \
--header "Authorization: Bearer $GLACIER_API_KEY"
Response fields · 200
assetIdstringrequired
assetNamestringrequired
costCreditsinteger · int64required
createdAtstring · date-timerequired
enginestringrequired
errorstring | nullrequired
finishedAtstring | null · date-timerequired
idstringrequired
maskPreviewUrlstring | nullrequired
modelLoadingbooleanrequired
outputVersionDeletedbooleanrequired
outputVersionIdstring | nullrequired
outputVersionIndexinteger | null · int64required
paramsobject | object | object | object | object | objectrequired
Expand fields / variants
Variant 1 · object
type"none"required
Variant 2 · object
type"scale"required
valueinteger · int64required
Variant 3 · object
type"fps"required
valueinteger · int64required
Variant 4 · object
type"faceProtect"required
valuebooleanrequired
Variant 5 · object
type"regions"required
valueobject[]required

minItems: 1

Expand fields / variants
colorstringoptional

pattern: "^#[0-9a-fA-F]{6}$"

endMsinteger · int64optional

minimum: 0

heightnumber · doublerequired

minimum: 0 · maximum: 1

kind"positive" | "negative" | "absent" | "suggested"optional
objectIdinteger · int64optional

minimum: 0 · maximum: 7

strokesobject[]optional

maxItems: 64

Expand fields / variants
pointsnumber · double[][]required

minItems: 1 · maxItems: 4000

Expand fields / variants

number · double

radiusnumber · doublerequired

minimum: 0 · maximum: 0.25

timeMsinteger · int64optional

minimum: 0

widthnumber · doublerequired

minimum: 0 · maximum: 1

xnumber · doublerequired

minimum: 0 · maximum: 1

ynumber · doublerequired

minimum: 0 · maximum: 1

Variant 6 · object
type"watermark"required
valueobjectrequired
Expand fields / variants
objectsobject[]optional

maxItems: 8

Expand fields / variants
namestringrequired

minLength: 1 · maxLength: 24

objectIdinteger · int64required

minimum: 0 · maximum: 7

regionsobject[]required

maxItems: 64

Expand fields / variants
colorstringoptional

pattern: "^#[0-9a-fA-F]{6}$"

endMsinteger · int64optional

minimum: 0

heightnumber · doublerequired

minimum: 0 · maximum: 1

kind"positive" | "negative" | "absent" | "suggested"optional
objectIdinteger · int64optional

minimum: 0 · maximum: 7

strokesobject[]optional

maxItems: 64

Expand fields / variants
pointsnumber · double[][]required

minItems: 1 · maxItems: 4000

Expand fields / variants

number · double

radiusnumber · doublerequired

minimum: 0 · maximum: 0.25

timeMsinteger · int64optional

minimum: 0

widthnumber · doublerequired

minimum: 0 · maximum: 1

xnumber · doublerequired

minimum: 0 · maximum: 1

ynumber · doublerequired

minimum: 0 · maximum: 1

revisionIdstringoptional
processingStartProgressnumber · doublerequired
processingStartedAtstring | null · date-timerequired
progressnumber · doublerequired
queuePositioninteger | null · int64required
queueRunninginteger | null · int64required
reportobjectrequired
Expand fields / variants
degradedbooleanrequired
detectorsobject[]required
Expand fields / variants
idstringrequired
marginnumber | null · doublerequired
modelVersionstringrequired
probabilitynumber · doublerequired

minimum: 0 · maximum: 1

scorenumber | null · doublerequired

minimum: 0 · maximum: 100

thresholdnumber · doublerequired

minimum: 0 · maximum: 1

verdict"ai" | "real"required
sourceVersionIdstring | nullrequired
sourceVersionIndexinteger · int64required
startedAtstring | null · date-timerequired
status"queued" | "running" | "succeeded" | "failed" | "canceled"required
toolIdstringrequired
toolNamestringrequired
watermarkAnalysisbooleanrequired
watermarkFindobjectrequired
Expand fields / variants
candidatesobject[]required
Expand fields / variants
boxobjectrequired
Expand fields / variants
heightnumber · doublerequired

minimum: 0 · maximum: 1

widthnumber · doublerequired

minimum: 0 · maximum: 1

xnumber · doublerequired

minimum: 0 · maximum: 1

ynumber · doublerequired

minimum: 0 · maximum: 1

endMsinteger | null · int64required
evidencestring[]required
Expand fields / variants

string

keyframesMsinteger · int64[]required
Expand fields / variants

integer · int64

namestring | nullrequired
objectIdinteger · int64required

minimum: 0 · maximum: 7

startMsinteger · int64required
subtitlebooleanrequired
thumbnailstring | nullrequired

maxLength: 65536

modelVersionstringrequired
watermarkRevisionbooleanrequired

Cancellation is idempotent. Queued tasks cancel immediately; running tasks wait for worker acknowledgement. Continue checking the state because a task can finish before cancellation reaches it. Failed or canceled tasks follow the normal refund rules. Canceling a successful task does not refund it.

POST/api/v1/tasks/{taskId}/cancel
Bearer API KeyScope: writeSuccess: 200
Path, query and headers
ParameterLocationType & constraints
taskId
required
pathstring

Request example

Terminal window
curl --include --fail-with-body --silent --show-error --max-time 60 \
--request POST 'https://app.berserkapi.com/api/v1/tasks/TASK_ID/cancel' \
--header "Authorization: Bearer $GLACIER_API_KEY"
Response fields · 200
assetIdstringrequired
assetNamestringrequired
costCreditsinteger · int64required
createdAtstring · date-timerequired
enginestringrequired
errorstring | nullrequired
finishedAtstring | null · date-timerequired
idstringrequired
maskPreviewUrlstring | nullrequired
modelLoadingbooleanrequired
outputVersionDeletedbooleanrequired
outputVersionIdstring | nullrequired
outputVersionIndexinteger | null · int64required
paramsobject | object | object | object | object | objectrequired
Expand fields / variants
Variant 1 · object
type"none"required
Variant 2 · object
type"scale"required
valueinteger · int64required
Variant 3 · object
type"fps"required
valueinteger · int64required
Variant 4 · object
type"faceProtect"required
valuebooleanrequired
Variant 5 · object
type"regions"required
valueobject[]required

minItems: 1

Expand fields / variants
colorstringoptional

pattern: "^#[0-9a-fA-F]{6}$"

endMsinteger · int64optional

minimum: 0

heightnumber · doublerequired

minimum: 0 · maximum: 1

kind"positive" | "negative" | "absent" | "suggested"optional
objectIdinteger · int64optional

minimum: 0 · maximum: 7

strokesobject[]optional

maxItems: 64

Expand fields / variants
pointsnumber · double[][]required

minItems: 1 · maxItems: 4000

Expand fields / variants

number · double

radiusnumber · doublerequired

minimum: 0 · maximum: 0.25

timeMsinteger · int64optional

minimum: 0

widthnumber · doublerequired

minimum: 0 · maximum: 1

xnumber · doublerequired

minimum: 0 · maximum: 1

ynumber · doublerequired

minimum: 0 · maximum: 1

Variant 6 · object
type"watermark"required
valueobjectrequired
Expand fields / variants
objectsobject[]optional

maxItems: 8

Expand fields / variants
namestringrequired

minLength: 1 · maxLength: 24

objectIdinteger · int64required

minimum: 0 · maximum: 7

regionsobject[]required

maxItems: 64

Expand fields / variants
colorstringoptional

pattern: "^#[0-9a-fA-F]{6}$"

endMsinteger · int64optional

minimum: 0

heightnumber · doublerequired

minimum: 0 · maximum: 1

kind"positive" | "negative" | "absent" | "suggested"optional
objectIdinteger · int64optional

minimum: 0 · maximum: 7

strokesobject[]optional

maxItems: 64

Expand fields / variants
pointsnumber · double[][]required

minItems: 1 · maxItems: 4000

Expand fields / variants

number · double

radiusnumber · doublerequired

minimum: 0 · maximum: 0.25

timeMsinteger · int64optional

minimum: 0

widthnumber · doublerequired

minimum: 0 · maximum: 1

xnumber · doublerequired

minimum: 0 · maximum: 1

ynumber · doublerequired

minimum: 0 · maximum: 1

revisionIdstringoptional
processingStartProgressnumber · doublerequired
processingStartedAtstring | null · date-timerequired
progressnumber · doublerequired
queuePositioninteger | null · int64required
queueRunninginteger | null · int64required
reportobjectrequired
Expand fields / variants
degradedbooleanrequired
detectorsobject[]required
Expand fields / variants
idstringrequired
marginnumber | null · doublerequired
modelVersionstringrequired
probabilitynumber · doublerequired

minimum: 0 · maximum: 1

scorenumber | null · doublerequired

minimum: 0 · maximum: 100

thresholdnumber · doublerequired

minimum: 0 · maximum: 1

verdict"ai" | "real"required
sourceVersionIdstring | nullrequired
sourceVersionIndexinteger · int64required
startedAtstring | null · date-timerequired
status"queued" | "running" | "succeeded" | "failed" | "canceled"required
toolIdstringrequired
toolNamestringrequired
urlsobjectrequired
Expand fields / variants
cancelstringrequired
resultstringrequired
statusstringrequired
watermarkAnalysisbooleanrequired
watermarkFindobjectrequired
Expand fields / variants
candidatesobject[]required
Expand fields / variants
boxobjectrequired
Expand fields / variants
heightnumber · doublerequired

minimum: 0 · maximum: 1

widthnumber · doublerequired

minimum: 0 · maximum: 1

xnumber · doublerequired

minimum: 0 · maximum: 1

ynumber · doublerequired

minimum: 0 · maximum: 1

endMsinteger | null · int64required
evidencestring[]required
Expand fields / variants

string

keyframesMsinteger · int64[]required
Expand fields / variants

integer · int64

namestring | nullrequired
objectIdinteger · int64required

minimum: 0 · maximum: 7

startMsinteger · int64required
subtitlebooleanrequired
thumbnailstring | nullrequired

maxLength: 65536

modelVersionstringrequired
watermarkRevisionbooleanrequired

Response headers: Location, Retry-After