API endpoints
Every route of the REST API, with the parameters it takes and the fields it answers with. The page comes from the backend's OpenAPI spec at every docs build, so it lists what the code serves.
Send an API token as a bearer token with each call. REST API covers tokens, the error shape every failed call shares, and the parameters every list takes. Your instance serves the spec at /api/openapi.json, and this copy suits Postman, code generators and AI assistants.
- get
/api/jobsList jobs - post
/api/jobsCreate job - post
/api/jobs/compileCompile job - get
/api/jobs/{id}Get job - patch
/api/jobs/{id}Update job - delete
/api/jobs/{id}Delete job - post
/api/jobs/{id}/runsRun job - post
/api/jobs/{id}/webhook-tokenRotate webhook token
List jobs
Section titled “List jobs”/api/jobsQuery parameters
pageinteger1-based page number
at least 1 · defaults to
1pageSizeintegerItems per page
1 to 100 · defaults to
25sortstringComma-separated sort keys, prefix with - for descending
at most 200 characters
searchstringFree-text search
at most 200 characters
enabledstringComma-separated enabled states, true and/or false
Response
4 fields
itemsarray of objects16 fields per item
createdAtintegercronstring or nullenabledbooleanidstringinputsarray of objects or nullThe run inputs the job declares, the same as spec.inputs of the job
3 fields per item
descriptionstringnamestringtypestring
lastModestring or nullThe mode the latest run used, which can differ from nextMode once the playbook changed
lastRunobjectThe latest run, the same as the first of recentRuns
4 fields
idstringnumberintegerqueuedAtintegerstatusstring
modePinstring or nullnamestringnextModestringThe mode the next run starts in, which the mode pin can force
One of
explore,assisted,scriptednextRunAtinteger or nullrecentRunsarray of objects or nullThe job's latest runs, at most 10, newest first
at most 10 items
4 fields per item
idstringnumberintegerqueuedAtintegerstatusstring
runCountintegerscheduleHumanstring or nulltimezonestring or nullupdatedAtinteger
pageintegerpageSizeintegertotalinteger
Create job
Section titled “Create job”/api/jobsBody application/json
instructionstringrequired1 to 20000 characters
namestringrequired1 to 200 characters
allowPrivateNetworkbooleanallowedDomainsarray of strings or nullat most 100 items
concurrencystringOne of
skip,queue,parallelcronstringat most 100 characters
enabledbooleanimagestringat most 500 characters
limitsobject6 fields
cpusnumber0.1 to 64
maxCostUsdnumberat least 0
maxTurnsinteger1 to 1000
memoryMbinteger64 to 262144
pidsLimitinteger16 to 65536
timeoutSecondsinteger30 to 86400
modePinstringOne of
explore,assisted,scriptedmodelIdstringnetworkstringOne of
none,internet,allowlistrunAsRootbooleanselfImprovebooleanspecobject11 fields
dockerfilestring or nullrequiredgoalstringrequiredinputsarray of objects or nullrequired3 fields per item
namestringrequiredtypestringrequireddescriptionstring
mcparray of objects or nullrequired2 fields per item
serverstringrequiredwhystringrequired
networkstringrequiredOne of
none,internetoutputsarray of objects or nullrequired3 fields per item
namestringrequiredtypestringrequireddescriptionstring
sideEffectsarray of strings or nullrequiredsuccessCriteriaarray of strings or nullrequiredtitlestringrequiredwarningsarray of strings or nullrequiredscheduleobject3 fields
cronstringrequiredhumanstringrequiredtimezonestringrequired
timezonestringat most 100 characters
Response
26 fields
allowPrivateNetworkbooleanallowedDomainsarray of strings or nullconcurrencystringcreatedAtintegercronstring or nulldemotedbooleanenabledbooleangraduatedVersioninteger or nullThe playbook version the job last graduated to Scripted mode at
hasWebhookTokenbooleanidstringimagestring or nullinstructionstringlastRunobject4 fields
idstringnumberintegerqueuedAtintegerstatusstring
limitsobject6 fields
cpusnumber0.1 to 64
maxCostUsdnumberat least 0
maxTurnsinteger1 to 1000
memoryMbinteger64 to 262144
pidsLimitinteger16 to 65536
timeoutSecondsinteger30 to 86400
modePinstring or nullmodelIdstring or nullnamestringnetworkstringOne of
none,internet,allowlistnextModestringOne of
explore,assisted,scriptednextRunAtinteger or nullplaybookVersionintegerrunAsRootbooleanselfImprovebooleanspecobject11 fields
dockerfilestring or nullgoalstringinputsarray of objects or null3 fields per item
descriptionstringnamestringtypestring
mcparray of objects or null2 fields per item
serverstringwhystring
networkstringOne of
none,internetoutputsarray of objects or null3 fields per item
descriptionstringnamestringtypestring
scheduleobject3 fields
cronstringhumanstringtimezonestring
sideEffectsarray of strings or nullsuccessCriteriaarray of strings or nulltitlestringwarningsarray of strings or null
timezonestring or nullupdatedAtinteger
Compile job
Section titled “Compile job”/api/jobs/compileBody application/json
instructionstringrequired1 to 20000 characters
Response
11 fields
dockerfilestring or nullgoalstringinputsarray of objects or null3 fields per item
descriptionstringnamestringtypestring
mcparray of objects or null2 fields per item
serverstringwhystring
networkstringOne of
none,internetoutputsarray of objects or null3 fields per item
descriptionstringnamestringtypestring
scheduleobject3 fields
cronstringhumanstringtimezonestring
sideEffectsarray of strings or nullsuccessCriteriaarray of strings or nulltitlestringwarningsarray of strings or null
Get job
Section titled “Get job”/api/jobs/{id}Path parameters
idstringrequired
Response
26 fields
allowPrivateNetworkbooleanallowedDomainsarray of strings or nullconcurrencystringcreatedAtintegercronstring or nulldemotedbooleanenabledbooleangraduatedVersioninteger or nullThe playbook version the job last graduated to Scripted mode at
hasWebhookTokenbooleanidstringimagestring or nullinstructionstringlastRunobject4 fields
idstringnumberintegerqueuedAtintegerstatusstring
limitsobject6 fields
cpusnumber0.1 to 64
maxCostUsdnumberat least 0
maxTurnsinteger1 to 1000
memoryMbinteger64 to 262144
pidsLimitinteger16 to 65536
timeoutSecondsinteger30 to 86400
modePinstring or nullmodelIdstring or nullnamestringnetworkstringOne of
none,internet,allowlistnextModestringOne of
explore,assisted,scriptednextRunAtinteger or nullplaybookVersionintegerrunAsRootbooleanselfImprovebooleanspecobject11 fields
dockerfilestring or nullgoalstringinputsarray of objects or null3 fields per item
descriptionstringnamestringtypestring
mcparray of objects or null2 fields per item
serverstringwhystring
networkstringOne of
none,internetoutputsarray of objects or null3 fields per item
descriptionstringnamestringtypestring
scheduleobject3 fields
cronstringhumanstringtimezonestring
sideEffectsarray of strings or nullsuccessCriteriaarray of strings or nulltitlestringwarningsarray of strings or null
timezonestring or nullupdatedAtinteger
Update job
Section titled “Update job”/api/jobs/{id}Path parameters
idstringrequired
Body application/json
allowPrivateNetworkbooleanallowedDomainsarray of stringsat most 100 items
concurrencystringOne of
skip,queue,parallelcronstringat most 100 characters
enabledbooleanimagestringat most 500 characters
instructionstring1 to 20000 characters
limitsobject6 fields
cpusnumber0.1 to 64
maxCostUsdnumberat least 0
maxTurnsinteger1 to 1000
memoryMbinteger64 to 262144
pidsLimitinteger16 to 65536
timeoutSecondsinteger30 to 86400
modePinstringOne of
explore,assisted,scripted,modelIdstringnamestring1 to 200 characters
networkstringOne of
none,internet,allowlistrunAsRootbooleanselfImprovebooleanspecobject11 fields
dockerfilestring or nullrequiredgoalstringrequiredinputsarray of objects or nullrequired3 fields per item
namestringrequiredtypestringrequireddescriptionstring
mcparray of objects or nullrequired2 fields per item
serverstringrequiredwhystringrequired
networkstringrequiredOne of
none,internetoutputsarray of objects or nullrequired3 fields per item
namestringrequiredtypestringrequireddescriptionstring
sideEffectsarray of strings or nullrequiredsuccessCriteriaarray of strings or nullrequiredtitlestringrequiredwarningsarray of strings or nullrequiredscheduleobject3 fields
cronstringrequiredhumanstringrequiredtimezonestringrequired
timezonestringat most 100 characters
Response
26 fields
allowPrivateNetworkbooleanallowedDomainsarray of strings or nullconcurrencystringcreatedAtintegercronstring or nulldemotedbooleanenabledbooleangraduatedVersioninteger or nullThe playbook version the job last graduated to Scripted mode at
hasWebhookTokenbooleanidstringimagestring or nullinstructionstringlastRunobject4 fields
idstringnumberintegerqueuedAtintegerstatusstring
limitsobject6 fields
cpusnumber0.1 to 64
maxCostUsdnumberat least 0
maxTurnsinteger1 to 1000
memoryMbinteger64 to 262144
pidsLimitinteger16 to 65536
timeoutSecondsinteger30 to 86400
modePinstring or nullmodelIdstring or nullnamestringnetworkstringOne of
none,internet,allowlistnextModestringOne of
explore,assisted,scriptednextRunAtinteger or nullplaybookVersionintegerrunAsRootbooleanselfImprovebooleanspecobject11 fields
dockerfilestring or nullgoalstringinputsarray of objects or null3 fields per item
descriptionstringnamestringtypestring
mcparray of objects or null2 fields per item
serverstringwhystring
networkstringOne of
none,internetoutputsarray of objects or null3 fields per item
descriptionstringnamestringtypestring
scheduleobject3 fields
cronstringhumanstringtimezonestring
sideEffectsarray of strings or nullsuccessCriteriaarray of strings or nulltitlestringwarningsarray of strings or null
timezonestring or nullupdatedAtinteger
Delete job
Section titled “Delete job”/api/jobs/{id}Path parameters
idstringrequired
Response
Run job
Section titled “Run job”/api/jobs/{id}/runsExamples and details in Start a run.
Path parameters
idstringrequired
Body application/json
inputanyRun input, available as /ump/input.json
instructionsstringAdditional instructions for this run only
at most 10000 characters
Response
2 fields
runIdstringstatusstring
Rotate webhook token
Section titled “Rotate webhook token”/api/jobs/{id}/webhook-tokenExamples and details in Webhooks.
Path parameters
idstringrequired
Response
2 fields
tokenstringShown once
urlstring
- get
/api/eventsStream workspace events - get
/api/runsList runs - get
/api/runs/{id}Get run - get
/api/runs/{id}/artifactGet run artifact - get
/api/runs/{id}/artifactsList run artifacts - post
/api/runs/{id}/cancelCancel run - get
/api/runs/{id}/eventsList run events - post
/api/runs/{id}/learnLearn from run - post
/api/runs/{id}/retryRetry run - get
/api/runs/{id}/streamStream run
Stream workspace events
Section titled “Stream workspace events”/api/eventsResponse
- event
run4 data fields
jobIdstringkindstringOne of
run,reflectionrunIdstringstatusstring
List runs
Section titled “List runs”/api/runsQuery parameters
pageinteger1-based page number
at least 1 · defaults to
1pageSizeintegerItems per page
1 to 100 · defaults to
25sortstringComma-separated sort keys, prefix with - for descending
at most 200 characters
searchstringFree-text search
at most 200 characters
statusstringComma-separated statuses
jobstringComma-separated job IDs
modestringComma-separated modes
triggerstringComma-separated triggers
fromintegerQueued at or after, unix ms
tointegerQueued before, unix ms
Response
4 fields
itemsarray of objects26 fields per item
costintegerMicro-USD
errorstring or nullfinishedAtinteger or nullidstringjobIdstringjobNamestringmodestringmodelLabelstring or nullThe model's display name: its label, or its ID when it has none
modelNamestring or nullThe model's ID at its provider, such as claude-sonnet-4-5
msLlmintegermsProvisioninteger or nullmsQueueinteger or nullmsToolsintegermsTotalinteger or nullnumberintegerqueuedAtintegersandboxIsolationstring or nullstartedAtinteger or nullstatusstringsummarystring or nulltokCacheReadintegertokCacheWriteintegertokInintegertokOutintegertriggerstringturnsinteger
pageintegerpageSizeintegertotalinteger
Get run
Section titled “Get run”/api/runs/{id}Examples and details in Read a run.
Path parameters
idstringrequired
Response
43 fields
cancelRequestedbooleancostintegerMicro-USD
errorstring or nullfellBackbooleanfinishedAtinteger or nullidstringimageRefstring or nullinputanyinstructionsstring or nulljobIdstringjobNamestringmodestringmodelLabelstring or nullThe model's display name: its label, or its ID when it has none
modelNamestring or nullThe model's ID at its provider, such as claude-sonnet-4-5
msLlmintegermsProvisioninteger or nullmsQueueinteger or nullmsToolsintegermsTotalinteger or nullnumberintegeroutputsanyplaybookVersionintegerqueuedAtintegerreflectionstringOne of
skipped,pending,done,failedreflectionCostintegerMicro-USD
reflectionErrorstring or nullreflectionOpsarray of objects or null13 fields per item
contentstring or nullflagsarray of strings or nullidstring or nullkindstring or nullnamestring or nullopstringOne of
add_learning,update_learning,retire_learning,upsert_script,delete_script,set_setup,set_dockerfile,propose_main,update_main,set_verifyrationalestringreasonstringstatusstringOne of
applied,held,rejectedtargetstringtestobject3 fields
detailstringoutputstringstatusstringOne of
passed,failed,skipped
textstring or nullwhenstring or null
reflectionSummarystring or nullreflectionVersioninteger or nullThe playbook version reflection on this run created
sandboxAdapterstring or nullsandboxIsolationstring or nullstartedAtinteger or nullstatusstringsummarystring or nulltokCacheReadintegertokCacheWriteintegertokInintegertokOutintegertriggerstringtriggeredBystring or nulltriggeredByNamestring or nullName or email of the user who started the run
turnsintegerverifyCostintegerWhat the utility model's verification of a scripted run cost, in micro-USD
Get run artifact
Section titled “Get run artifact”/api/runs/{id}/artifactExamples and details in Artifacts.
Path parameters
idstringrequired
Query parameters
pathstringrequired
Response
List run artifacts
Section titled “List run artifacts”/api/runs/{id}/artifactsExamples and details in Artifacts.
Path parameters
idstringrequired
Response
2 fields per item
namestringsizeinteger
Cancel run
Section titled “Cancel run”/api/runs/{id}/cancelExamples and details in Cancel, retry and learn.
Path parameters
idstringrequired
Response
List run events
Section titled “List run events”/api/runs/{id}/eventsExamples and details in Timeline and live stream.
Path parameters
idstringrequired
Query parameters
afterintegerReturn events with a sequence number greater than this
limitinteger1 to 2000 · defaults to
500
Response
7 fields per item
msinteger or nullparentSpanIdstring or nullpayloadanyseqintegerspanIdstring or nulltsintegertypestring
Learn from run
Section titled “Learn from run”/api/runs/{id}/learnExamples and details in Cancel, retry and learn.
Path parameters
idstringrequired
Response
1 field
reflectionstring
Retry run
Section titled “Retry run”/api/runs/{id}/retryExamples and details in Cancel, retry and learn.
Path parameters
idstringrequired
Response
2 fields
runIdstringstatusstring
Stream run
Section titled “Stream run”/api/runs/{id}/streamExamples and details in Timeline and live stream.
Path parameters
idstringrequired
Query parameters
afterintegerResume after this event sequence, for clients that cannot send Last-Event-ID
Headers
Last-Event-IDstring
Responses
- event
delta3 data fields
callIdstringtextstringtypestring
- event
end1 data field
statusstring
- event
event7 data fields
msinteger or nullparentSpanIdstring or nullpayloadanyseqintegerspanIdstring or nulltsintegertypestring
- event
status1 data field
statusstring
5 fields
codestringdetailsmap of stringsfieldsarray of objects or null3 fields per item
codestringfieldstringmessagestring
messagestringrequestIdstring
5 fields
codestringdetailsmap of stringsfieldsarray of objects or null3 fields per item
codestringfieldstringmessagestring
messagestringrequestIdstring
5 fields
codestringdetailsmap of stringsfieldsarray of objects or null3 fields per item
codestringfieldstringmessagestring
messagestringrequestIdstring
Playbook
Section titled “Playbook”- get
/api/jobs/{id}/playbookGet playbook - put
/api/jobs/{id}/playbookUpdate playbook - post
/api/jobs/{id}/playbook/rollbackRollback playbook - get
/api/jobs/{id}/playbook/versionsList playbook versions - get
/api/jobs/{id}/playbook/versions/{version}Get playbook version
Get playbook
Section titled “Get playbook”/api/jobs/{id}/playbookPath parameters
idstringrequired
Response
8 fields
authorstringcontentobject6 fields
dockerfilestring or nulllearningsarray of objects or null7 fields per item
hitsintegeridstringkindstringsourcesarray of strings or nullstatusstringOne of
active,retiredtextstringwhenstring
mainstring or nullsetupstring or nulltoolkitarray of objects or null8 fields per item
argsanycontentstringdescriptionstringlangstringnamestringsideEffectsbooleansourcesarray of strings or nullstatsobject2 fields
callsintegerfailuresinteger
verifyany
createdAtintegeropsarray of objects or null13 fields per item
contentstring or nullflagsarray of strings or nullidstring or nullkindstring or nullnamestring or nullopstringOne of
add_learning,update_learning,retire_learning,upsert_script,delete_script,set_setup,set_dockerfile,propose_main,update_main,set_verifyrationalestringreasonstringstatusstringOne of
applied,held,rejectedtargetstringtestobject3 fields
detailstringoutputstringstatusstringOne of
passed,failed,skipped
textstring or nullwhenstring or null
previousobject6 fields
dockerfilestring or nulllearningsarray of objects or null7 fields per item
hitsintegeridstringkindstringsourcesarray of strings or nullstatusstringOne of
active,retiredtextstringwhenstring
mainstring or nullsetupstring or nulltoolkitarray of objects or null8 fields per item
argsanycontentstringdescriptionstringlangstringnamestringsideEffectsbooleansourcesarray of strings or nullstatsobject2 fields
callsintegerfailuresinteger
verifyany
sourceRunIdstring or nullsummarystring or nullversioninteger
Update playbook
Section titled “Update playbook”/api/jobs/{id}/playbookPath parameters
idstringrequired
Body application/json
contentobjectrequired6 fields
dockerfilestring or nullrequiredlearningsarray of objects or nullrequired7 fields per item
hitsintegerrequiredidstringrequiredkindstringrequiredstatusstringrequiredOne of
active,retiredtextstringrequiredsourcesarray of strings or nullwhenstring
mainstring or nullrequiredsetupstring or nullrequiredtoolkitarray of objects or nullrequired8 fields per item
contentstringrequireddescriptionstringrequiredlangstringrequirednamestringrequiredsideEffectsbooleanrequiredstatsobjectrequired2 fields
callsintegerrequiredfailuresintegerrequired
argsanysourcesarray of strings or null
verifyany
baseVersionintegerThe version the edit started from; a newer current version makes the save fail with 409
summarystringat most 500 characters
Response
8 fields
authorstringcontentobject6 fields
dockerfilestring or nulllearningsarray of objects or null7 fields per item
hitsintegeridstringkindstringsourcesarray of strings or nullstatusstringOne of
active,retiredtextstringwhenstring
mainstring or nullsetupstring or nulltoolkitarray of objects or null8 fields per item
argsanycontentstringdescriptionstringlangstringnamestringsideEffectsbooleansourcesarray of strings or nullstatsobject2 fields
callsintegerfailuresinteger
verifyany
createdAtintegeropsarray of objects or null13 fields per item
contentstring or nullflagsarray of strings or nullidstring or nullkindstring or nullnamestring or nullopstringOne of
add_learning,update_learning,retire_learning,upsert_script,delete_script,set_setup,set_dockerfile,propose_main,update_main,set_verifyrationalestringreasonstringstatusstringOne of
applied,held,rejectedtargetstringtestobject3 fields
detailstringoutputstringstatusstringOne of
passed,failed,skipped
textstring or nullwhenstring or null
previousobject6 fields
dockerfilestring or nulllearningsarray of objects or null7 fields per item
hitsintegeridstringkindstringsourcesarray of strings or nullstatusstringOne of
active,retiredtextstringwhenstring
mainstring or nullsetupstring or nulltoolkitarray of objects or null8 fields per item
argsanycontentstringdescriptionstringlangstringnamestringsideEffectsbooleansourcesarray of strings or nullstatsobject2 fields
callsintegerfailuresinteger
verifyany
sourceRunIdstring or nullsummarystring or nullversioninteger
Rollback playbook
Section titled “Rollback playbook”/api/jobs/{id}/playbook/rollbackPath parameters
idstringrequired
Body application/json
versionintegerrequiredat least 0
Response
8 fields
authorstringcontentobject6 fields
dockerfilestring or nulllearningsarray of objects or null7 fields per item
hitsintegeridstringkindstringsourcesarray of strings or nullstatusstringOne of
active,retiredtextstringwhenstring
mainstring or nullsetupstring or nulltoolkitarray of objects or null8 fields per item
argsanycontentstringdescriptionstringlangstringnamestringsideEffectsbooleansourcesarray of strings or nullstatsobject2 fields
callsintegerfailuresinteger
verifyany
createdAtintegeropsarray of objects or null13 fields per item
contentstring or nullflagsarray of strings or nullidstring or nullkindstring or nullnamestring or nullopstringOne of
add_learning,update_learning,retire_learning,upsert_script,delete_script,set_setup,set_dockerfile,propose_main,update_main,set_verifyrationalestringreasonstringstatusstringOne of
applied,held,rejectedtargetstringtestobject3 fields
detailstringoutputstringstatusstringOne of
passed,failed,skipped
textstring or nullwhenstring or null
previousobject6 fields
dockerfilestring or nulllearningsarray of objects or null7 fields per item
hitsintegeridstringkindstringsourcesarray of strings or nullstatusstringOne of
active,retiredtextstringwhenstring
mainstring or nullsetupstring or nulltoolkitarray of objects or null8 fields per item
argsanycontentstringdescriptionstringlangstringnamestringsideEffectsbooleansourcesarray of strings or nullstatsobject2 fields
callsintegerfailuresinteger
verifyany
sourceRunIdstring or nullsummarystring or nullversioninteger
List playbook versions
Section titled “List playbook versions”/api/jobs/{id}/playbook/versionsPath parameters
idstringrequired
Query parameters
pageinteger1-based page number
at least 1 · defaults to
1pageSizeintegerItems per page
1 to 100 · defaults to
25sortstringComma-separated sort keys, prefix with - for descending
at most 200 characters
searchstringFree-text search
at most 200 characters
Response
4 fields
itemsarray of objects5 fields per item
authorstringcreatedAtintegersourceRunIdstring or nullsummarystring or nullversioninteger
pageintegerpageSizeintegertotalinteger
Get playbook version
Section titled “Get playbook version”/api/jobs/{id}/playbook/versions/{version}Path parameters
idstringrequiredversionintegerrequired
Response
8 fields
authorstringcontentobject6 fields
dockerfilestring or nulllearningsarray of objects or null7 fields per item
hitsintegeridstringkindstringsourcesarray of strings or nullstatusstringOne of
active,retiredtextstringwhenstring
mainstring or nullsetupstring or nulltoolkitarray of objects or null8 fields per item
argsanycontentstringdescriptionstringlangstringnamestringsideEffectsbooleansourcesarray of strings or nullstatsobject2 fields
callsintegerfailuresinteger
verifyany
createdAtintegeropsarray of objects or null13 fields per item
contentstring or nullflagsarray of strings or nullidstring or nullkindstring or nullnamestring or nullopstringOne of
add_learning,update_learning,retire_learning,upsert_script,delete_script,set_setup,set_dockerfile,propose_main,update_main,set_verifyrationalestringreasonstringstatusstringOne of
applied,held,rejectedtargetstringtestobject3 fields
detailstringoutputstringstatusstringOne of
passed,failed,skipped
textstring or nullwhenstring or null
previousobject6 fields
dockerfilestring or nulllearningsarray of objects or null7 fields per item
hitsintegeridstringkindstringsourcesarray of strings or nullstatusstringOne of
active,retiredtextstringwhenstring
mainstring or nullsetupstring or nulltoolkitarray of objects or null8 fields per item
argsanycontentstringdescriptionstringlangstringnamestringsideEffectsbooleansourcesarray of strings or nullstatsobject2 fields
callsintegerfailuresinteger
verifyany
sourceRunIdstring or nullsummarystring or nullversioninteger
Job state
Section titled “Job state”- get
/api/jobs/{id}/stateList job state - get
/api/jobs/{id}/state/{key}Get job state - put
/api/jobs/{id}/state/{key}Put job state - delete
/api/jobs/{id}/state/{key}Delete job state
List job state
Section titled “List job state”/api/jobs/{id}/statePath parameters
idstringrequired
Query parameters
pageinteger1-based page number
at least 1 · defaults to
1pageSizeintegerItems per page
1 to 100 · defaults to
25sortstringComma-separated sort keys, prefix with - for descending
at most 200 characters
searchstringFree-text search
at most 200 characters
Response
4 fields
itemsarray of objects3 fields per item
keystringupdatedAtintegervaluestring
pageintegerpageSizeintegertotalinteger
Get job state
Section titled “Get job state”/api/jobs/{id}/state/{key}Path parameters
idstringrequiredkeystringrequired
Response
3 fields
keystringupdatedAtintegervaluestring
Put job state
Section titled “Put job state”/api/jobs/{id}/state/{key}Path parameters
idstringrequiredkeystringrequiredat most 200 characters
Body application/json
valuestringrequired
Response
Delete job state
Section titled “Delete job state”/api/jobs/{id}/state/{key}Path parameters
idstringrequiredkeystringrequired
Response
Images
Section titled “Images”- get
/api/jobs/{id}/imagesList job images - post
/api/jobs/{id}/images/rebuildRebuild job image - get
/api/jobs/{id}/images/{imageId}Get image
List job images
Section titled “List job images”/api/jobs/{id}/imagesPath parameters
idstringrequired
Query parameters
pageinteger1-based page number
at least 1 · defaults to
1pageSizeintegerItems per page
1 to 100 · defaults to
25sortstringComma-separated sort keys, prefix with - for descending
at most 200 characters
searchstringFree-text search
at most 200 characters
statusstring
Response
4 fields
itemsarray of objects11 fields per item
baseDigeststring or nullcreatedAtintegerdigeststring or nulldockerfileHashstringerrorstring or nullfinishedAtinteger or nullidstringrefstring or nullsizeBytesinteger or nullstartedAtinteger or nullstatusstring
pageintegerpageSizeintegertotalinteger
Rebuild job image
Section titled “Rebuild job image”/api/jobs/{id}/images/rebuildPath parameters
idstringrequired
Response
1 field
idstring
Get image
Section titled “Get image”/api/jobs/{id}/images/{imageId}Path parameters
idstringrequiredimageIdstringrequired
Response
13 fields
baseDigeststring or nullcreatedAtintegerdigeststring or nulldockerfilestringdockerfileHashstringerrorstring or nullfinishedAtinteger or nullidstringlogstringrefstring or nullsizeBytesinteger or nullstartedAtinteger or nullstatusstring
Webhooks
Section titled “Webhooks”Trigger webhook
Section titled “Trigger webhook”/hooks/{jobId}Examples and details in Triggers and schedules.
Path parameters
jobIdstringrequired
Headers
Authorizationstring
Body application/octet-stream
binary The raw request body.
Response
2 fields
runIdstringstatusstring
Secrets
Section titled “Secrets”- get
/api/jobs/{id}/secretsGet job secrets - put
/api/jobs/{id}/secretsSet job secrets - get
/api/secretsList secrets - post
/api/secretsCreate secret - put
/api/secrets/{id}Update secret - delete
/api/secrets/{id}Delete secret
Get job secrets
Section titled “Get job secrets”/api/jobs/{id}/secretsPath parameters
idstringrequired
Response
3 fields per item
envNamestringat most 100 characters · matches
^[A-Za-z_][A-Za-z0-9_]*$secretIdstringsecretNamestring
Set job secrets
Section titled “Set job secrets”/api/jobs/{id}/secretsPath parameters
idstringrequired
Body application/json
An array, with these fields per item:
envNamestringrequiredat most 100 characters · matches
^[A-Za-z_][A-Za-z0-9_]*$secretIdstringrequired
Response
3 fields per item
envNamestringat most 100 characters · matches
^[A-Za-z_][A-Za-z0-9_]*$secretIdstringsecretNamestring
List secrets
Section titled “List secrets”/api/secretsQuery parameters
pageinteger1-based page number
at least 1 · defaults to
1pageSizeintegerItems per page
1 to 100 · defaults to
25sortstringComma-separated sort keys, prefix with - for descending
at most 200 characters
searchstringFree-text search
at most 200 characters
Response
4 fields
itemsarray of objects4 fields per item
createdAtintegeridstringnamestringupdatedAtinteger
pageintegerpageSizeintegertotalinteger
Create secret
Section titled “Create secret”/api/secretsBody application/json
namestringrequired1 to 100 characters
valuestringrequiredat most 65536 characters
Response
1 field
idstring
Update secret
Section titled “Update secret”/api/secrets/{id}Path parameters
idstringrequired
Body application/json
valuestringrequiredat most 65536 characters
Response
Delete secret
Section titled “Delete secret”/api/secrets/{id}Path parameters
idstringrequired
Response
- get
/api/jobs/{id}/mcp-serversGet job mcp servers - put
/api/jobs/{id}/mcp-serversSet job mcp servers - get
/api/mcp-serversList mcp servers - post
/api/mcp-serversCreate mcp server - get
/api/mcp-servers/{id}Get mcp server - put
/api/mcp-servers/{id}Update mcp server - delete
/api/mcp-servers/{id}Delete mcp server - delete
/api/mcp-servers/{id}/oauthLogout mcp server - get
/api/mcp-servers/{id}/oauth/callbackMcp server oauth callback - post
/api/mcp-servers/{id}/oauth/loginLogin mcp server - post
/api/mcp-servers/{id}/testTest mcp server
Get job mcp servers
Section titled “Get job mcp servers”/api/jobs/{id}/mcp-serversPath parameters
idstringrequired
Response
3 fields per item
allowedToolsarray of strings or nullnull exposes all tools
serverIdstringserverNamestring
Set job mcp servers
Section titled “Set job mcp servers”/api/jobs/{id}/mcp-serversPath parameters
idstringrequired
Body application/json
An array, with these fields per item:
allowedToolsarray of strings or nullrequirednull exposes all tools
serverIdstringrequired
Response
3 fields per item
allowedToolsarray of strings or nullnull exposes all tools
serverIdstringserverNamestring
List mcp servers
Section titled “List mcp servers”/api/mcp-serversQuery parameters
pageinteger1-based page number
at least 1 · defaults to
1pageSizeintegerItems per page
1 to 100 · defaults to
25sortstringComma-separated sort keys, prefix with - for descending
at most 200 characters
searchstringFree-text search
at most 200 characters
transportstring
Response
4 fields
itemsarray of objects16 fields per item
argsarray of strings or nullauthobject5 fields
callbackUrlstringWhere the authorization server sends the browser back to, which an OAuth client configured by hand must allow
expiresAtinteger or nullWhen the current access token expires
loggedInAtinteger or nullWhen the OAuth login was made, also set once it expired
refreshablebooleanThe login has a refresh token, so it outlives its access token
statusstringunsupported: no login needed or possible, unknown: OAuth detection hasn't succeeded yet, bearer_token: an Authorization header is configured, not_logged_in: the server advertises OAuth but has no usable login, oauth: logged in
One of
unsupported,unknown,bearer_token,not_logged_in,oauth
commandstring or nullcreatedAtintegerdescriptionstring or nullenabledbooleanenvmap of stringsValues may reference secrets as {{secret:NAME}}
headersmap of stringsValues may reference secrets as {{secret:NAME}}
idstringnamestringoauthobject3 fields
clientIdstringA client registered with the authorization server beforehand, for servers without dynamic client registration
at most 500 characters
clientSecretstringThe client's secret, may reference a secret as {{secret:NAME}}
at most 2000 characters
scopesarray of strings or nullScopes to request instead of the ones the server advertises
at most 50 items
toolsarray of objects or null5 fields per item
descriptionstringdestructivebooleaninputSchemaanynamestringreadOnlyboolean
toolsCachedAtinteger or nulltransportstringupdatedAtintegerurlstring or null
pageintegerpageSizeintegertotalinteger
Create mcp server
Section titled “Create mcp server”/api/mcp-serversBody application/json
namestringrequired1 to 64 characters · matches
^[A-Za-z0-9_-]+$transportstringrequiredOne of
stdio,httpargsarray of strings or nullcommandstringat most 500 characters
descriptionstringat most 500 characters
enabledbooleanenvmap of stringsheadersmap of stringsoauthobjectOAuth client settings of HTTP servers, only needed when the server's authorization server can't register clients itself
3 fields
clientIdstringA client registered with the authorization server beforehand, for servers without dynamic client registration
at most 500 characters
clientSecretstringThe client's secret, may reference a secret as {{secret:NAME}}
at most 2000 characters
scopesarray of strings or nullScopes to request instead of the ones the server advertises
at most 50 items
urlstringat most 2000 characters
Response
16 fields
argsarray of strings or nullauthobject5 fields
callbackUrlstringWhere the authorization server sends the browser back to, which an OAuth client configured by hand must allow
expiresAtinteger or nullWhen the current access token expires
loggedInAtinteger or nullWhen the OAuth login was made, also set once it expired
refreshablebooleanThe login has a refresh token, so it outlives its access token
statusstringunsupported: no login needed or possible, unknown: OAuth detection hasn't succeeded yet, bearer_token: an Authorization header is configured, not_logged_in: the server advertises OAuth but has no usable login, oauth: logged in
One of
unsupported,unknown,bearer_token,not_logged_in,oauth
commandstring or nullcreatedAtintegerdescriptionstring or nullenabledbooleanenvmap of stringsValues may reference secrets as {{secret:NAME}}
headersmap of stringsValues may reference secrets as {{secret:NAME}}
idstringnamestringoauthobject3 fields
clientIdstringA client registered with the authorization server beforehand, for servers without dynamic client registration
at most 500 characters
clientSecretstringThe client's secret, may reference a secret as {{secret:NAME}}
at most 2000 characters
scopesarray of strings or nullScopes to request instead of the ones the server advertises
at most 50 items
toolsarray of objects or null5 fields per item
descriptionstringdestructivebooleaninputSchemaanynamestringreadOnlyboolean
toolsCachedAtinteger or nulltransportstringupdatedAtintegerurlstring or null
Get mcp server
Section titled “Get mcp server”/api/mcp-servers/{id}Path parameters
idstringrequired
Response
16 fields
argsarray of strings or nullauthobject5 fields
callbackUrlstringWhere the authorization server sends the browser back to, which an OAuth client configured by hand must allow
expiresAtinteger or nullWhen the current access token expires
loggedInAtinteger or nullWhen the OAuth login was made, also set once it expired
refreshablebooleanThe login has a refresh token, so it outlives its access token
statusstringunsupported: no login needed or possible, unknown: OAuth detection hasn't succeeded yet, bearer_token: an Authorization header is configured, not_logged_in: the server advertises OAuth but has no usable login, oauth: logged in
One of
unsupported,unknown,bearer_token,not_logged_in,oauth
commandstring or nullcreatedAtintegerdescriptionstring or nullenabledbooleanenvmap of stringsValues may reference secrets as {{secret:NAME}}
headersmap of stringsValues may reference secrets as {{secret:NAME}}
idstringnamestringoauthobject3 fields
clientIdstringA client registered with the authorization server beforehand, for servers without dynamic client registration
at most 500 characters
clientSecretstringThe client's secret, may reference a secret as {{secret:NAME}}
at most 2000 characters
scopesarray of strings or nullScopes to request instead of the ones the server advertises
at most 50 items
toolsarray of objects or null5 fields per item
descriptionstringdestructivebooleaninputSchemaanynamestringreadOnlyboolean
toolsCachedAtinteger or nulltransportstringupdatedAtintegerurlstring or null
Update mcp server
Section titled “Update mcp server”/api/mcp-servers/{id}Path parameters
idstringrequired
Body application/json
namestringrequired1 to 64 characters · matches
^[A-Za-z0-9_-]+$transportstringrequiredOne of
stdio,httpargsarray of strings or nullcommandstringat most 500 characters
descriptionstringat most 500 characters
enabledbooleanenvmap of stringsheadersmap of stringsoauthobjectOAuth client settings of HTTP servers, only needed when the server's authorization server can't register clients itself
3 fields
clientIdstringA client registered with the authorization server beforehand, for servers without dynamic client registration
at most 500 characters
clientSecretstringThe client's secret, may reference a secret as {{secret:NAME}}
at most 2000 characters
scopesarray of strings or nullScopes to request instead of the ones the server advertises
at most 50 items
urlstringat most 2000 characters
Response
16 fields
argsarray of strings or nullauthobject5 fields
callbackUrlstringWhere the authorization server sends the browser back to, which an OAuth client configured by hand must allow
expiresAtinteger or nullWhen the current access token expires
loggedInAtinteger or nullWhen the OAuth login was made, also set once it expired
refreshablebooleanThe login has a refresh token, so it outlives its access token
statusstringunsupported: no login needed or possible, unknown: OAuth detection hasn't succeeded yet, bearer_token: an Authorization header is configured, not_logged_in: the server advertises OAuth but has no usable login, oauth: logged in
One of
unsupported,unknown,bearer_token,not_logged_in,oauth
commandstring or nullcreatedAtintegerdescriptionstring or nullenabledbooleanenvmap of stringsValues may reference secrets as {{secret:NAME}}
headersmap of stringsValues may reference secrets as {{secret:NAME}}
idstringnamestringoauthobject3 fields
clientIdstringA client registered with the authorization server beforehand, for servers without dynamic client registration
at most 500 characters
clientSecretstringThe client's secret, may reference a secret as {{secret:NAME}}
at most 2000 characters
scopesarray of strings or nullScopes to request instead of the ones the server advertises
at most 50 items
toolsarray of objects or null5 fields per item
descriptionstringdestructivebooleaninputSchemaanynamestringreadOnlyboolean
toolsCachedAtinteger or nulltransportstringupdatedAtintegerurlstring or null
Delete mcp server
Section titled “Delete mcp server”/api/mcp-servers/{id}Path parameters
idstringrequired
Response
Logout mcp server
Section titled “Logout mcp server”/api/mcp-servers/{id}/oauthPath parameters
idstringrequired
Response
16 fields
argsarray of strings or nullauthobject5 fields
callbackUrlstringWhere the authorization server sends the browser back to, which an OAuth client configured by hand must allow
expiresAtinteger or nullWhen the current access token expires
loggedInAtinteger or nullWhen the OAuth login was made, also set once it expired
refreshablebooleanThe login has a refresh token, so it outlives its access token
statusstringunsupported: no login needed or possible, unknown: OAuth detection hasn't succeeded yet, bearer_token: an Authorization header is configured, not_logged_in: the server advertises OAuth but has no usable login, oauth: logged in
One of
unsupported,unknown,bearer_token,not_logged_in,oauth
commandstring or nullcreatedAtintegerdescriptionstring or nullenabledbooleanenvmap of stringsValues may reference secrets as {{secret:NAME}}
headersmap of stringsValues may reference secrets as {{secret:NAME}}
idstringnamestringoauthobject3 fields
clientIdstringA client registered with the authorization server beforehand, for servers without dynamic client registration
at most 500 characters
clientSecretstringThe client's secret, may reference a secret as {{secret:NAME}}
at most 2000 characters
scopesarray of strings or nullScopes to request instead of the ones the server advertises
at most 50 items
toolsarray of objects or null5 fields per item
descriptionstringdestructivebooleaninputSchemaanynamestringreadOnlyboolean
toolsCachedAtinteger or nulltransportstringupdatedAtintegerurlstring or null
Mcp server oauth callback
Section titled “Mcp server oauth callback”/api/mcp-servers/{id}/oauth/callbackPath parameters
idstringrequired
Query parameters
codestringstatestringissstringerrorstringerror_descriptionstring
Response
Login mcp server
Section titled “Login mcp server”/api/mcp-servers/{id}/oauth/loginPath parameters
idstringrequired
Response
1 field
authorizationUrlstringWhere to send the browser to log in
Test mcp server
Section titled “Test mcp server”/api/mcp-servers/{id}/testPath parameters
idstringrequired
Response
5 fields
authobjectThe server's authentication status after the test
5 fields
callbackUrlstringWhere the authorization server sends the browser back to, which an OAuth client configured by hand must allow
expiresAtinteger or nullWhen the current access token expires
loggedInAtinteger or nullWhen the OAuth login was made, also set once it expired
refreshablebooleanThe login has a refresh token, so it outlives its access token
statusstringunsupported: no login needed or possible, unknown: OAuth detection hasn't succeeded yet, bearer_token: an Authorization header is configured, not_logged_in: the server advertises OAuth but has no usable login, oauth: logged in
One of
unsupported,unknown,bearer_token,not_logged_in,oauth
errorstringlatencyMsintegerokbooleantoolsarray of objects or null5 fields per item
descriptionstringdestructivebooleaninputSchemaanynamestringreadOnlyboolean
Providers
Section titled “Providers”- get
/api/catalog/modelsGet model catalog - get
/api/modelsList models - post
/api/modelsCreate model - patch
/api/models/{id}Update model - delete
/api/models/{id}Delete model - get
/api/providersList providers - post
/api/providersCreate provider - patch
/api/providers/{id}Update provider - delete
/api/providers/{id}Delete provider - put
/api/providers/{id}/models/enabledSet provider models enabled - post
/api/providers/{id}/syncSync provider models - post
/api/providers/{id}/testTest provider
Get model catalog
Section titled “Get model catalog”/api/catalog/modelsQuery parameters
kindstringOne of
anthropic,openai
Response
4 fields per item
capsobject7 fields
contextintegerjsonSchemabooleanparallelToolsbooleanpromptCachebooleanreasoningbooleantoolsbooleanvisionboolean
labelstringmodelstringpriceobject4 fields
cacheReadintegercacheWriteintegerinintegeroutinteger
List models
Section titled “List models”/api/modelsQuery parameters
pageinteger1-based page number
at least 1 · defaults to
1pageSizeintegerItems per page
1 to 100 · defaults to
25sortstringComma-separated sort keys, prefix with - for descending
at most 200 characters
searchstringFree-text search
at most 200 characters
providerstringComma-separated provider IDs
statusstringComma-separated statuses: enabled (can be picked), disabled, unlisted
Response
4 fields
itemsarray of objects13 fields per item
capsobject7 fields
contextintegerjsonSchemabooleanparallelToolsbooleanpromptCachebooleanreasoningbooleantoolsbooleanvisionboolean
contextWindowintegerenabledbooleanfollowCatalogbooleanidstringlabelstring or nullmodelstringpriceobjectMicro-USD per 1M tokens
4 fields
cacheReadintegercacheWriteintegerinintegeroutinteger
providerIdstringproviderKindstringproviderNamestringsyncedbooleanunlistedAtinteger or null
pageintegerpageSizeintegertotalinteger
Create model
Section titled “Create model”/api/modelsBody application/json
capsobjectrequired7 fields
contextintegerrequiredjsonSchemabooleanrequiredparallelToolsbooleanrequiredpromptCachebooleanrequiredreasoningbooleanrequiredtoolsbooleanrequiredvisionbooleanrequired
modelstringrequired1 to 200 characters
priceobjectrequired4 fields
cacheReadintegerrequiredcacheWriteintegerrequiredinintegerrequiredoutintegerrequired
providerIdstringrequiredlabelstringat most 100 characters
Response
1 field
idstring
Update model
Section titled “Update model”/api/models/{id}Path parameters
idstringrequired
Body application/json
capsobject7 fields
contextintegerrequiredjsonSchemabooleanrequiredparallelToolsbooleanrequiredpromptCachebooleanrequiredreasoningbooleanrequiredtoolsbooleanrequiredvisionbooleanrequired
enabledbooleanfollowCatalogbooleanlabelstringat most 100 characters
priceobject4 fields
cacheReadintegerrequiredcacheWriteintegerrequiredinintegerrequiredoutintegerrequired
Response
Delete model
Section titled “Delete model”/api/models/{id}Path parameters
idstringrequired
Response
List providers
Section titled “List providers”/api/providersQuery parameters
pageinteger1-based page number
at least 1 · defaults to
1pageSizeintegerItems per page
1 to 100 · defaults to
25sortstringComma-separated sort keys, prefix with - for descending
at most 200 characters
searchstringFree-text search
at most 200 characters
Response
4 fields
itemsarray of objects11 fields per item
baseUrlstring or nullcreatedAtintegerenabledModelCountintegerhasApiKeybooleanidstringkindstringmodelCountintegermodelSourcestringcatalog: the models.dev catalog of the kind, server: the server's model list, manual: models are added by hand
One of
catalog,server,manualnamestringsyncErrorstring or nullWhy the last sync could not read the model list
syncedAtinteger or null
pageintegerpageSizeintegertotalinteger
Create provider
Section titled “Create provider”/api/providersBody application/json
kindstringrequiredOne of
anthropic,openai,fakenamestringrequired1 to 100 characters
apiKeystringat most 1000 characters
baseUrlstringat most 500 characters
Response
2 fields
idstringsyncobject4 fields
addedintegererrorstringunlistedintegerupdatedinteger
Update provider
Section titled “Update provider”/api/providers/{id}Path parameters
idstringrequired
Body application/json
apiKeystringat most 1000 characters
baseUrlstringat most 500 characters
namestring1 to 100 characters
Response
Delete provider
Section titled “Delete provider”/api/providers/{id}Path parameters
idstringrequired
Response
Set provider models enabled
Section titled “Set provider models enabled”/api/providers/{id}/models/enabledPath parameters
idstringrequired
Body application/json
enabledbooleanrequired
Response
1 field
changedinteger
Sync provider models
Section titled “Sync provider models”/api/providers/{id}/syncPath parameters
idstringrequired
Response
4 fields
addedintegererrorstringunlistedintegerupdatedinteger
Test provider
Section titled “Test provider”/api/providers/{id}/testPath parameters
idstringrequired
Body application/json
modelIdstringrequiredModel to test with
Response
4 fields
errorstringlatencyMsintegerokbooleanreplystring
Settings
Section titled “Settings”- get
/api/settingsGet settings - patch
/api/settingsUpdate settings - post
/api/settings/notifications/testTest notification
Get settings
Section titled “Get settings”/api/settingsResponse
10 fields
agentModelIdstring or nulldailySpendLimitUsdnumber0 means no limit
defaultImagestringdefaultLimitsobject6 fields
cpusnumber0.1 to 64
maxCostUsdnumberat least 0
maxTurnsinteger1 to 1000
memoryMbinteger64 to 262144
pidsLimitinteger16 to 65536
timeoutSecondsinteger30 to 86400
notifyOnarray of strings or nullOne of
run.failed,run.fell_back,job.demotednotifySecretstring or nullName of a workspace secret whose value signs every delivery
notifyWebhookUrlstring or nullreflectionModelIdstring or nullretentionDaysintegerat least 1
utilityModelIdstring or null
Update settings
Section titled “Update settings”/api/settingsBody application/json
agentModelIdstringdailySpendLimitUsdnumberat least 0
defaultImagestringAn empty value resets to the server default
at most 500 characters
defaultLimitsobject6 fields
cpusnumberrequired0.1 to 64
maxCostUsdnumberrequiredat least 0
maxTurnsintegerrequired1 to 1000
memoryMbintegerrequired64 to 262144
pidsLimitintegerrequired16 to 65536
timeoutSecondsintegerrequired30 to 86400
notifyOnarray of strings or nullOne of
run.failed,run.fell_back,job.demotednotifySecretstringAn empty value sends deliveries unsigned
at most 100 characters
notifyWebhookUrlstringAn empty value turns notifications off
at most 2000 characters
reflectionModelIdstringretentionDaysinteger1 to 3650
utilityModelIdstring
Response
10 fields
agentModelIdstring or nulldailySpendLimitUsdnumber0 means no limit
defaultImagestringdefaultLimitsobject6 fields
cpusnumber0.1 to 64
maxCostUsdnumberat least 0
maxTurnsinteger1 to 1000
memoryMbinteger64 to 262144
pidsLimitinteger16 to 65536
timeoutSecondsinteger30 to 86400
notifyOnarray of strings or nullOne of
run.failed,run.fell_back,job.demotednotifySecretstring or nullName of a workspace secret whose value signs every delivery
notifyWebhookUrlstring or nullreflectionModelIdstring or nullretentionDaysintegerat least 1
utilityModelIdstring or null
Test notification
Section titled “Test notification”/api/settings/notifications/testResponse
1 field
deliveredboolean
Get job stats
Section titled “Get job stats”/api/jobs/{id}/statsPath parameters
idstringrequired
Query parameters
rangestringOne of
7d,30d,90d· defaults to"30d"
Response
5 fields
avgCostintegerp50Msintegerrunsarray of objects or null9 fields per item
costintegermodestringmsTotalinteger or nullnumberintegerplaybookVersionintegerqueuedAtintegerrunIdstringstatusstringturnsinteger
successRatenumberversionsarray of objects or null3 fields per item
authorstringcreatedAtintegerversioninteger
Get stats overview
Section titled “Get stats overview”/api/stats/overviewQuery parameters
rangestringOne of
24h,7d,30d,90d· defaults to"7d"
Response
12 fields
bucketstringWidth of the perDay and costByJob buckets: an hour for the 24h range and a UTC day for the others
One of
hour,daybucketMsintegerWidth of one bucket in milliseconds
costByJobarray of objects or null4 fields per item
costintegerdayintegerStart of the bucket in unix milliseconds, like DayBucket.day
jobIdstringjobNamestring
currentobject8 fields
failedintegerlearningCostintegerMicro-USD
p50Msintegerp95MsintegerrunCostintegerMicro-USD
runsintegersucceededintegersuccessRatenumber
fromintegerStart of the period that current, perDay and costByJob cover, the start of its first bucket, in unix milliseconds
gettingCheaperarray of objects or null6 fields per item
dropPctnumberfirstCostintegerjobIdstringjobNamestringrecentCostintegerrunsinteger
perDayarray of objects or nullOne bucket for every hour or day of the period, oldest first, whose runs other than skipped ones add up to current.runs
8 fields per item
cancelledintegercostintegerdayintegerStart of the bucket in unix milliseconds, a UTC day or, for the 24h range, an hour
failedintegerotherintegerskippedintegersucceededintegertimedOutinteger
previousobjectThe period before, cut off at the point in time the current period has reached
8 fields
failedintegerlearningCostintegerMicro-USD
p50Msintegerp95MsintegerrunCostintegerMicro-USD
runsintegersucceededintegersuccessRatenumber
rangestringrecentFailuresarray of objects or null10 fields per item
errorstring or nullidstringjobIdstringjobNamestringmodestringnumberintegerqueuedAtintegerstartedAtinteger or nullstatusstringsummarystring or null
runningarray of objects or null10 fields per item
errorstring or nullidstringjobIdstringjobNamestringmodestringnumberintegerqueuedAtintegerstartedAtinteger or nullstatusstringsummarystring or null
tointegerEnd of the period, exclusive: the end of the bucket that holds the present, in unix milliseconds
API tokens
Section titled “API tokens”List api tokens
Section titled “List api tokens”/api/tokensQuery parameters
pageinteger1-based page number
at least 1 · defaults to
1pageSizeintegerItems per page
1 to 100 · defaults to
25sortstringComma-separated sort keys, prefix with - for descending
at most 200 characters
searchstringFree-text search
at most 200 characters
Response
4 fields
itemsarray of objects6 fields per item
createdAtintegercreatedBystring or nullName or email address of the user whose role the token acts with
expiresAtinteger or nullidstringlastUsedAtinteger or nullnamestring
pageintegerpageSizeintegertotalinteger
Create api token
Section titled “Create api token”/api/tokensBody application/json
namestringrequired1 to 100 characters
expiresAtintegerUnix milliseconds; omit for a token that never expires
Response
2 fields
apiTokenobject6 fields
createdAtintegercreatedBystring or nullName or email address of the user whose role the token acts with
expiresAtinteger or nullidstringlastUsedAtinteger or nullnamestring
tokenstringShown once, store it now
Delete api token
Section titled “Delete api token”/api/tokens/{id}Path parameters
idstringrequired
Response
- get
/api/auth/callback/{provider}Login callback - get
/api/auth/login/{provider}Login - post
/api/auth/logoutLogout - get
/api/auth/providersList login providers - get
/api/users/meGet current user
Login callback
Section titled “Login callback”/api/auth/callback/{provider}Path parameters
providerstringrequiredID of the sign-in provider the login started with
Query parameters
codestringstatestringerrorstring
Cookies
umpteenth_loginobject
Response
/api/auth/login/{provider}Path parameters
providerstringrequiredID of the sign-in provider
Query parameters
redirectstringRelative path to return to after login
Response
Logout
Section titled “Logout”/api/auth/logoutResponse
List login providers
Section titled “List login providers”/api/auth/providersResponse
5 fields per item
iconstringImage URL for the sign-in button, an http(s) URL or a data:image URI
idstringnamestringprimarybooleanWhether the provider gets the large sign-in button
typestringHow the provider signs in, which picks the default icon
One of
oidc,github
Get current user
Section titled “Get current user”/api/users/meResponse
10 fields
emailstring or nullidstringisAdminbooleanWhether the user is an instance admin, who manages every user and workspace
loginProviderstringID of the sign-in provider the session signed in with
namestring or nullpicturestring or nullProfile picture URL from the sign-in provider
viaTokenbooleanworkspaceobject3 fields
idstringnamestringrolestringThe caller's role in the workspace, which is their creator's for an API token
One of
owner,admin,member
workspaceIdstringworkspacesEnabledbooleanWhether people can have several workspaces on this instance
System
Section titled “System”Get system info
Section titled “Get system info”/api/system/infoResponse
4 fields
allowPrivateNetworkTargetsbooleandatabasestringsandboxobject9 fields
adapterstringarchstringcapabilitiesobject3 fields
limitsobject3 fields
cpubooleanmemorybooleanpidsboolean
networksarray of strings or nullseparateUsersboolean
egressFilterstringOne of
active,unavailable,offegressFilterErrorstringimageBuildsbooleanisolationstringOne of
container,gvisor,microvmruntimeErrorstringversionstring
versionstring
- get
/api/admin/usersList users - patch
/api/admin/users/{id}Update user - get
/api/admin/workspacesList all workspaces - delete
/api/admin/workspaces/{id}Delete any workspace
List users
Section titled “List users”/api/admin/usersQuery parameters
pageinteger1-based page number
at least 1 · defaults to
1pageSizeintegerItems per page
1 to 100 · defaults to
25sortstringComma-separated sort keys, prefix with - for descending
at most 200 characters
searchstringFree-text search
at most 200 characters
Response
4 fields
itemsarray of objects11 fields per item
createdAtintegerdeactivatedbooleanemailstring or nullidstringisAdminbooleanissuerstringThe issuer URL of the sign-in provider the account belongs to
lastLoginAtinteger or nullnamestring or nullpicturestring or nullproviderstringThe name of the sign-in provider the account belongs to, or the issuer's host when no configured provider has its issuer
workspaceCountinteger
pageintegerpageSizeintegertotalinteger
Update user
Section titled “Update user”/api/admin/users/{id}Path parameters
idstringrequired
Body application/json
deactivatedbooleanrequiredA deactivated user can't sign in, and their sessions and API tokens stop working
Response
List all workspaces
Section titled “List all workspaces”/api/admin/workspacesQuery parameters
pageinteger1-based page number
at least 1 · defaults to
1pageSizeintegerItems per page
1 to 100 · defaults to
25sortstringComma-separated sort keys, prefix with - for descending
at most 200 characters
searchstringFree-text search
at most 200 characters
Response
4 fields
itemsarray of objects7 fields per item
createdAtintegeridstringmemberCountintegernamestringownerEmailstring or nullownerIdstring or nullownerNamestring or null
pageintegerpageSizeintegertotalinteger
Delete any workspace
Section titled “Delete any workspace”/api/admin/workspaces/{id}Path parameters
idstringrequired
Response
Workspace members
Section titled “Workspace members”- post
/api/invites/acceptAccept invite - post
/api/invites/lookupLookup invite - get
/api/workspace/invitesList workspace invites - post
/api/workspace/invitesCreate workspace invite - delete
/api/workspace/invites/{id}Delete workspace invite - get
/api/workspace/membersList workspace members - patch
/api/workspace/members/{userId}Update workspace member - delete
/api/workspace/members/{userId}Remove workspace member
Accept invite
Section titled “Accept invite”/api/invites/acceptBody application/json
tokenstringrequired1 to 200 characters
Response
3 fields
idstringnamestringrolestringThe caller's role in the workspace
One of
owner,admin,member
Lookup invite
Section titled “Lookup invite”/api/invites/lookupBody application/json
tokenstringrequired1 to 200 characters
Response
6 fields
alreadyMemberbooleanexpiredbooleanexpiresAtintegerinvitedBystring or nullrolestringOne of
admin,memberworkspaceNamestring
List workspace invites
Section titled “List workspace invites”/api/workspace/invitesResponse
6 fields per item
createdAtintegeremailstring or nullThe address an email invite waits for, empty for an invite link
expiresAtintegeridstringinvitedBystring or nullrolestringOne of
admin,member
Create workspace invite
Section titled “Create workspace invite”/api/workspace/invitesBody application/json
expiresInDaysintegerrequired1 to 30 · defaults to
7rolestringrequiredOne of
admin,memberemailstringInvites this address, whose owner joins at once when they have signed in before; omit it for an invite link
at most 320 characters
Response
2 fields
memberAddedbooleanWhether the address belonged to a user, who joined right away
urlstringThe invite link, shown once
Delete workspace invite
Section titled “Delete workspace invite”/api/workspace/invites/{id}Path parameters
idstringrequired
Response
List workspace members
Section titled “List workspace members”/api/workspace/membersQuery parameters
pageinteger1-based page number
at least 1 · defaults to
1pageSizeintegerItems per page
1 to 100 · defaults to
25sortstringComma-separated sort keys, prefix with - for descending
at most 200 characters
searchstringFree-text search
at most 200 characters
Response
4 fields
itemsarray of objects8 fields per item
deactivatedbooleanWhether an instance admin deactivated the user
emailstring or nulljoinedAtintegerlastLoginAtinteger or nullnamestring or nullpicturestring or nullrolestringOne of
owner,admin,memberuserIdstring
pageintegerpageSizeintegertotalinteger
Update workspace member
Section titled “Update workspace member”/api/workspace/members/{userId}Path parameters
userIdstringrequired
Body application/json
rolestringrequiredThe owner changes by handing over ownership instead
One of
admin,member
Response
Remove workspace member
Section titled “Remove workspace member”/api/workspace/members/{userId}Path parameters
userIdstringrequired
Response
Workspaces
Section titled “Workspaces”- get
/api/workspaceGet workspace - patch
/api/workspaceUpdate workspace - delete
/api/workspaceDelete workspace - post
/api/workspace/leaveLeave workspace - post
/api/workspace/transferTransfer workspace - get
/api/workspacesList my workspaces - post
/api/workspacesCreate workspace - post
/api/workspaces/{id}/switchSwitch workspace
Get workspace
Section titled “Get workspace”/api/workspaceResponse
3 fields
idstringnamestringrolestringThe caller's role in the workspace
One of
owner,admin,member
Update workspace
Section titled “Update workspace”/api/workspaceBody application/json
namestringrequired1 to 100 characters
Response
3 fields
idstringnamestringrolestringThe caller's role in the workspace
One of
owner,admin,member
Delete workspace
Section titled “Delete workspace”/api/workspaceResponse
3 fields
idstringnamestringrolestringThe caller's role in the workspace
One of
owner,admin,member
Leave workspace
Section titled “Leave workspace”/api/workspace/leaveResponse
3 fields
idstringnamestringrolestringThe caller's role in the workspace
One of
owner,admin,member
Transfer workspace
Section titled “Transfer workspace”/api/workspace/transferBody application/json
userIdstringrequiredThe member who becomes the owner
Response
List my workspaces
Section titled “List my workspaces”/api/workspacesResponse
3 fields per item
idstringnamestringrolestringThe caller's role in the workspace
One of
owner,admin,member
Create workspace
Section titled “Create workspace”/api/workspacesBody application/json
namestringrequired1 to 100 characters
Response
3 fields
idstringnamestringrolestringThe caller's role in the workspace
One of
owner,admin,member
Switch workspace
Section titled “Switch workspace”/api/workspaces/{id}/switchPath parameters
idstringrequired
Response
3 fields
idstringnamestringrolestringThe caller's role in the workspace
One of
owner,admin,member