Need help with your APIs? I offer API discovery, governance & evangelism services. Explore services →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Windmill job API

The job API from Windmill — 77 operation(s) for job.

Windmill job API is one of 59 APIs that Windmill publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include job. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, a getting-started guide, and authentication docs.

This API exposes 86 operations across 77 paths, and defines 22 schemas. It is described by OpenAPI 3.0.3, at version 1.694.0.

Requests are made against a single base URL, /api.

86 operations 77 paths 22 schemas 46 GET40 POST

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.0.3
API Version
1.694.0
Base URL
https://app.windmill.dev/api
Authentication
HTTP Bearer, API Key
License
Resource Areas
1

Authentication & Security 2

Windmill job API declares 2 security schemes for authenticating requests. It accepts HTTP bearer tokens (bearerAuth). An API key is passed in the cookie as token (cookieAuth). By default, every request must be authenticated.

Paths & Operations 86

Across 77 paths, the API surfaces 86 operations — 46 GET, 40 POST. Each is listed below with its method, path, parameters, and response codes.

job 86
POST
/w/{workspace}/jobs/list_selected_job_groups
List Selected Jobs Script/flow Schemas Grouped by (kind, Path)
listSelectedJobGroups 1 param body → 200
POST
/w/{workspace}/jobs/run/p/{path}
Run Script by Path
runScriptByPath 10 params body → 201
POST
/w/{workspace}/jobs/run_wait_result/p/{path}
Run Script by Path
runWaitResultScriptByPath 9 params body → 200
GET
/w/{workspace}/jobs/run_wait_result/p/{path}
Run Script by Path with Get
runWaitResultScriptByPathGet 10 params → 200
POST
/w/{workspace}/jobs/run_wait_result/f/{path}
Run Flow by Path and Wait Until Completion
runWaitResultFlowByPath 7 params body → 200
POST
/w/{workspace}/jobs/run_wait_result/fv/{version}
Run Flow by Version and Wait Until Completion
runWaitResultFlowByVersion 7 params body → 200
GET
/w/{workspace}/jobs/run_wait_result/fv/{version}
Run Flow by Version with GET and Wait Until Completion
runWaitResultFlowByVersionGet 8 params → 200
POST
/w/{workspace}/jobs/run_and_stream/f/{path}
Run Flow by Path and Stream Updates via SSE
runAndStreamFlowByPath 8 params body → 200
GET
/w/{workspace}/jobs/run_and_stream/f/{path}
Run Flow by Path with GET and Stream Updates via SSE
runAndStreamFlowByPathGet 9 params → 200
POST
/w/{workspace}/jobs/run_and_stream/fv/{version}
Run Flow by Version and Stream Updates via SSE
runAndStreamFlowByVersion 8 params body → 200
GET
/w/{workspace}/jobs/run_and_stream/fv/{version}
Run Flow by Version with GET and Stream Updates via SSE
runAndStreamFlowByVersionGet 9 params → 200
POST
/w/{workspace}/jobs/run_and_stream/p/{path}
Run Script by Path and Stream Updates via SSE
runAndStreamScriptByPath 10 params body → 200
GET
/w/{workspace}/jobs/run_and_stream/p/{path}
Run Script by Path with GET and Stream Updates via SSE
runAndStreamScriptByPathGet 11 params → 200
POST
/w/{workspace}/jobs/run_and_stream/h/{hash}
Run Script by Hash and Stream Updates via SSE
runAndStreamScriptByHash 10 params body → 200
GET
/w/{workspace}/jobs/run_and_stream/h/{hash}
Run Script by Hash with GET and Stream Updates via SSE
runAndStreamScriptByHashGet 11 params → 200
GET
/w/{workspace}/jobs/result_by_id/{flow_job_id}/{node_id}
Get Job Result by Id
resultById 3 params → 200
POST
/w/{workspace}/jobs/run/f/{path}
Run Flow by Path
runFlowByPath 11 params body → 201
POST
/w/{workspace}/jobs/run/fv/{version}
Run Flow by Version
runFlowByVersion 11 params body → 201
POST
/w/{workspace}/jobs/run/batch_rerun_jobs
Re-run Multiple Jobs
batchReRunJobs 1 param body → 201
POST
/w/{workspace}/jobs/restart/f/{id}
Restart a Completed Flow at a Given Step
restartFlowAtStep 9 params body → 201
POST
/w/{workspace}/jobs/run/h/{hash}
Run Script by Hash
runScriptByHash 11 params body → 201
POST
/w/{workspace}/jobs/run/preview
Run Script Preview
runScriptPreview 4 params body → 201
POST
/w/{workspace}/jobs/run_inline/preview
Run Script Preview Without Starting a New Job
runScriptPreviewInline 1 param body → 200
POST
/w/{workspace}/jobs/run_inline/p/{path}
Run Script by Path Without Starting a New Job
runScriptByPathInline 2 params body → 200
POST
/w/{workspace}/jobs/run_inline/h/{hash}
Run Script by Hash Without Starting a New Job
runScriptByHashInline 2 params body → 200
POST
/w/{workspace}/jobs/run_wait_result/preview
Run Script Preview and Wait for Result
runScriptPreviewAndWaitResult 1 param body → 200
POST
/w/{workspace}/jobs/workflow_as_code/{job_id}/{entrypoint}
Run Code-workflow Task
runCodeWorkflowTask 3 params body → 201
POST
/w/{workspace}/jobs/run/dependencies
Run a One-off Dependencies Job
runRawScriptDependencies 1 param body → 201
POST
/w/{workspace}/jobs/run/dependencies_async
Queue a One-off Dependencies Job and Return the Job Uuid
runRawScriptDependenciesAsync 1 param body → 201
POST
/w/{workspace}/jobs/run/flow_dependencies_async
Queue a One-off Flow Dependencies Job and Return the Job Uuid
runFlowDependenciesAsync 1 param body → 201
POST
/w/{workspace}/jobs/run/preview_flow
Run Flow Preview
runFlowPreview 5 params body → 201
POST
/w/{workspace}/jobs/run_wait_result/preview_flow
Run Flow Preview and Wait for Result
runFlowPreviewAndWaitResult 2 params body → 200
POST
/w/{workspace}/jobs/run/dynamic_select
Run Dynamic Select Helper Function
runDynamicSelect 1 param body → 201
GET
/w/{workspace}/jobs/queue/list
List All Queued Jobs
listQueue 26 params → 200
GET
/w/{workspace}/jobs/queue/count
Get Queue Count
getQueueCount 2 params → 200
GET
/w/{workspace}/jobs/completed/count
Get Completed Count
getCompletedCount 1 param → 200
GET
/w/{workspace}/jobs/completed/count_jobs
Count Number of Completed Jobs with Filter
countCompletedJobs 5 params → 200
GET
/w/{workspace}/jobs/list_filtered_uuids
Get the Ids of All Jobs Matching the Given Filters
listFilteredJobsUuids 32 params → 200
GET
/w/{workspace}/jobs/queue/list_filtered_uuids
Get the Ids of All Queued Jobs Matching the Given Filters
listFilteredQueueUuids 24 params → 200
POST
/w/{workspace}/jobs/queue/cancel_selection
Cancel Jobs Based on the Given Uuids
cancelSelection 3 params body → 200
GET
/w/{workspace}/jobs/get_otel_traces/{id}
Get OpenTelemetry Traces for a Job
getJobOtelTraces 2 params → 200
GET
/w/{workspace}/jobs/completed/list
List All Completed Jobs
listCompletedJobs 24 params → 200
GET
/w/{workspace}/jobs/completed/export
Export All Completed Jobs for Backup/migration
exportCompletedJobs 3 params → 200
POST
/w/{workspace}/jobs/completed/import
Import Completed Jobs from Backup/migration
importCompletedJobs 1 param body → 200
GET
/w/{workspace}/jobs/queue/export
Export All Queued Jobs for Backup/migration
exportQueuedJobs 3 params → 200
POST
/w/{workspace}/jobs/queue/import
Import Queued Jobs from Backup/migration
importQueuedJobs 1 param body → 200
POST
/w/{workspace}/jobs/delete
Delete Jobs by IDs from All Related Tables
deleteJobs 1 param body → 200
GET
/w/{workspace}/jobs/list
List All Jobs
listJobs 34 params → 200
GET
/jobs/db_clock
Get Db Clock
getDbClock → 200
GET
/jobs/completed/count_by_tag
Count Jobs by Tag
countJobsByTag 2 params → 200
GET
/w/{workspace}/jobs_u/get/{id}
Get Job
getJob 5 params → 200
GET
/w/{workspace}/jobs_u/get_root_job_id/{id}
Get Root Job Id
getRootJobId 2 params → 200
GET
/w/{workspace}/jobs_u/get_logs/{id}
Get Job Logs
getJobLogs 3 params → 200
GET
/w/{workspace}/jobs_u/get_flow_all_logs/{id}
Get All Logs for a Flow Job
getFlowAllLogs 2 params → 200
GET
/w/{workspace}/jobs_u/get_completed_logs_tail/{id}
Get Completed Job Logs Tail
getCompletedJobLogsTail 2 params → 200
GET
/w/{workspace}/jobs_u/get_args/{id}
Get Job Args
getJobArgs 2 params → 200
POST
/w/{workspace}/jobs_u/queue/get_started_at_by_ids
Get Started at by Ids
getStartedAtByIds 1 param body → 200
GET
/w/{workspace}/jobs_u/getupdate/{id}
Get Job Updates
getJobUpdates 7 params → 200
GET
/w/{workspace}/jobs_u/getupdate_sse/{id}
Get Job Updates via Server-sent Events
getJobUpdatesSSE 9 params → 200
GET
/w/{workspace}/jobs_u/get_log_file/{path}
Get Log File from Object Store
getLogFileFromStore 2 params → 200
GET
/w/{workspace}/jobs_u/get_flow_debug_info/{id}
Get Flow Debug Info
getFlowDebugInfo 2 params → 200
GET
/w/{workspace}/jobs_u/completed/get/{id}
Get Completed Job
getCompletedJob 2 params → 200
GET
/w/{workspace}/jobs_u/completed/get_result/{id}
Get Completed Job Result
getCompletedJobResult 6 params → 200
GET
/w/{workspace}/jobs_u/completed/get_result_maybe/{id}
Get Completed Job Result if Job is Completed
getCompletedJobResultMaybe 3 params → 200
GET
/w/{workspace}/jobs_u/completed/get_timing/{id}
Get Completed Job Timing
getCompletedJobTiming 2 params → 200
POST
/w/{workspace}/jobs/completed/delete/{id}
Delete Completed Job (erase Content but Keep Run Id)
deleteCompletedJob 2 params → 200
POST
/w/{workspace}/jobs_u/queue/cancel/{id}
Cancel Queued or Running Job
cancelQueuedJob 2 params body → 200
POST
/w/{workspace}/jobs_u/queue/cancel_persistent/{path}
Cancel All Queued Jobs for Persistent Script
cancelPersistentQueuedJobs 2 params body → 200
POST
/w/{workspace}/jobs_u/queue/force_cancel/{id}
Force Cancel Queued Job
forceCancelQueuedJob 2 params body → 200
GET
/w/{workspace}/jobs/queue/position/{scheduled_for}
Get Queue Position for a Job
getQueuePosition 2 params → 200
GET
/w/{workspace}/jobs/queue/scheduled_for/{id}
Get Scheduled for Timestamp for a Job
getScheduledFor 2 params → 200
GET
/w/{workspace}/jobs/job_signature/{id}/{resume_id}
Create an HMac Signature Given a Job Id and a Resume Id
createJobSignature 4 params → 200
GET
/w/{workspace}/jobs/resume_urls/{id}/{resume_id}
Get Resume Urls Given a Jobid, Resumeid and a Nonce to Resume a Flow
getResumeUrls 5 params → 200
GET
/w/{workspace}/jobs/slack_approval/{id}
Generate Interactive Slack Approval for Suspended Job
getSlackApprovalPayload 11 params → 200
GET
/w/{workspace}/jobs/teams_approval/{id}
Generate Interactive Teams Approval for Suspended Job
getTeamsApprovalPayload 11 params → 200
POST
/w/{workspace}/jobs_u/flow/resume_suspended/{job_id}
Resume or Cancel a Suspended Flow/WAC Job
resumeSuspended 2 params body → 201
GET
/w/{workspace}/jobs_u/flow/approval_info/{job_id}
Get Approval Info for a Suspended Flow/WAC Job
getApprovalInfo 3 params → 200
GET
/w/{workspace}/jobs_u/resume/{id}/{resume_id}/{signature}
Resume a Job for a Suspended Flow
resumeSuspendedJobGet 6 params → 201
POST
/w/{workspace}/jobs_u/resume/{id}/{resume_id}/{signature}
Resume a Job for a Suspended Flow
resumeSuspendedJobPost 5 params body → 201
POST
/w/{workspace}/jobs/flow/user_states/{id}/{key}
Set Flow User State at a Given Key
setFlowUserState 3 params body → 200
GET
/w/{workspace}/jobs/flow/user_states/{id}/{key}
Get Flow User State at a Given Key
getFlowUserState 3 params → 200
POST
/w/{workspace}/jobs/flow/resume/{id}
Resume a Job for a Suspended Flow as an Owner
resumeSuspendedFlowAsOwner 2 params body → 201
GET
/w/{workspace}/jobs_u/cancel/{id}/{resume_id}/{signature}
Cancel a Job for a Suspended Flow
cancelSuspendedJobGet 5 params → 201
POST
/w/{workspace}/jobs_u/cancel/{id}/{resume_id}/{signature}
Cancel a Job for a Suspended Flow
cancelSuspendedJobPost 5 params body → 201
GET
/w/{workspace}/jobs_u/get_flow/{id}/{resume_id}/{signature}
Get Parent Flow Job of Suspended Job
getSuspendedJobFlow 5 params → 200
GET
/w/{workspace}/concurrency_groups/list_jobs
Get Intervals of Job Runtime Concurrency
listExtendedJobs 32 params → 200

Schemas 22

The contract defines 22 schemas that model the data the API accepts and returns. The most detailed are ExportableCompletedJob (45 properties), ExportableQueuedJob (42 properties), CompletedJob (38 properties), QueuedJob (35 properties). Each schema is shown below with its type and property counts.

FlowPreview
object
5 properties 3 required
ObscuredJob
object
3 properties
FlowValue
RestartedFrom
object
6 properties
Preview
object
11 properties 1 required
InputTransform
ExportableCompletedJob
object
Completed job with full data for export/import operations
45 properties 7 required
DynamicInputData
object
3 properties 2 required
Job
PreviewInline
object
3 properties 3 required
RunnableKind
string
ScriptArgs
object
The arguments to pass to the script or flow
QueuedJob
object
35 properties 9 required
ExportableQueuedJob
object
Queued job with full data for export/import operations
42 properties 7 required
ScriptLang
string
WorkflowStatus
object
4 properties
CompletedJob
object
38 properties 14 required
ExtendedJobs
object
3 properties 2 required
RawScriptForDependencies
object
3 properties 3 required
WorkflowTask
object
1 property 1 required
ScriptModule
object
An additional module file associated with a script
3 properties 2 required
InlineScriptArgs
object
1 property

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

windmill-job-api-openapi.yml Raw ↑

Other APIs Windmill publishes across the network.

Windmill admin API
Windmill agent_workers API
Windmill app API
Windmill asset API
Windmill audit API
Windmill azure_trigger API
Windmill capture API
Windmill concurrencyGroups API
Windmill config API
Windmill documentation API
Windmill draft API
Windmill email_trigger API