Windmill Job API

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

Operations 86

POST /w/{workspace}/jobs/list_selected_job_groups List Selected Jobs Script/flow Schemas Grouped by (kind, Path) #
POST /w/{workspace}/jobs/run/p/{path} Run Script by Path #
POST /w/{workspace}/jobs/run_wait_result/p/{path} Run Script by Path #
GET /w/{workspace}/jobs/run_wait_result/p/{path} Run Script by Path with Get #
POST /w/{workspace}/jobs/run_wait_result/f/{path} Run Flow by Path and Wait Until Completion #
POST /w/{workspace}/jobs/run_wait_result/fv/{version} Run Flow by Version and Wait Until Completion #
GET /w/{workspace}/jobs/run_wait_result/fv/{version} Run Flow by Version with GET and Wait Until Completion #
POST /w/{workspace}/jobs/run_and_stream/f/{path} Run Flow by Path and Stream Updates via SSE #
GET /w/{workspace}/jobs/run_and_stream/f/{path} Run Flow by Path with GET and Stream Updates via SSE #
POST /w/{workspace}/jobs/run_and_stream/fv/{version} Run Flow by Version and Stream Updates via SSE #
GET /w/{workspace}/jobs/run_and_stream/fv/{version} Run Flow by Version with GET and Stream Updates via SSE #
POST /w/{workspace}/jobs/run_and_stream/p/{path} Run Script by Path and Stream Updates via SSE #
GET /w/{workspace}/jobs/run_and_stream/p/{path} Run Script by Path with GET and Stream Updates via SSE #
POST /w/{workspace}/jobs/run_and_stream/h/{hash} Run Script by Hash and Stream Updates via SSE #
GET /w/{workspace}/jobs/run_and_stream/h/{hash} Run Script by Hash with GET and Stream Updates via SSE #
GET /w/{workspace}/jobs/result_by_id/{flow_job_id}/{node_id} Get Job Result by Id #
POST /w/{workspace}/jobs/run/f/{path} Run Flow by Path #
POST /w/{workspace}/jobs/run/fv/{version} Run Flow by Version #
POST /w/{workspace}/jobs/run/batch_rerun_jobs Re-run Multiple Jobs #
POST /w/{workspace}/jobs/restart/f/{id} Restart a Completed Flow at a Given Step #
POST /w/{workspace}/jobs/run/h/{hash} Run Script by Hash #
POST /w/{workspace}/jobs/run/preview Run Script Preview #
POST /w/{workspace}/jobs/run_inline/preview Run Script Preview Without Starting a New Job #
POST /w/{workspace}/jobs/run_inline/p/{path} Run Script by Path Without Starting a New Job #
POST /w/{workspace}/jobs/run_inline/h/{hash} Run Script by Hash Without Starting a New Job #
POST /w/{workspace}/jobs/run_wait_result/preview Run Script Preview and Wait for Result #
POST /w/{workspace}/jobs/workflow_as_code/{job_id}/{entrypoint} Run Code-workflow Task #
POST /w/{workspace}/jobs/run/dependencies Run a One-off Dependencies Job #
POST /w/{workspace}/jobs/run/dependencies_async Queue a One-off Dependencies Job and Return the Job Uuid #
POST /w/{workspace}/jobs/run/flow_dependencies_async Queue a One-off Flow Dependencies Job and Return the Job Uuid #
POST /w/{workspace}/jobs/run/preview_flow Run Flow Preview #
POST /w/{workspace}/jobs/run_wait_result/preview_flow Run Flow Preview and Wait for Result #
POST /w/{workspace}/jobs/run/dynamic_select Run Dynamic Select Helper Function #
GET /w/{workspace}/jobs/queue/list List All Queued Jobs #
GET /w/{workspace}/jobs/queue/count Get Queue Count #
GET /w/{workspace}/jobs/completed/count Get Completed Count #
GET /w/{workspace}/jobs/completed/count_jobs Count Number of Completed Jobs with Filter #
GET /w/{workspace}/jobs/list_filtered_uuids Get the Ids of All Jobs Matching the Given Filters #
GET /w/{workspace}/jobs/queue/list_filtered_uuids Get the Ids of All Queued Jobs Matching the Given Filters #
POST /w/{workspace}/jobs/queue/cancel_selection Cancel Jobs Based on the Given Uuids #
GET /w/{workspace}/jobs/get_otel_traces/{id} Get OpenTelemetry Traces for a Job #
GET /w/{workspace}/jobs/completed/list List All Completed Jobs #
GET /w/{workspace}/jobs/completed/export Export All Completed Jobs for Backup/migration #
POST /w/{workspace}/jobs/completed/import Import Completed Jobs from Backup/migration #
GET /w/{workspace}/jobs/queue/export Export All Queued Jobs for Backup/migration #
POST /w/{workspace}/jobs/queue/import Import Queued Jobs from Backup/migration #
POST /w/{workspace}/jobs/delete Delete Jobs by IDs from All Related Tables #
GET /w/{workspace}/jobs/list List All Jobs #
GET /jobs/db_clock Get Db Clock #
GET /jobs/completed/count_by_tag Count Jobs by Tag #
GET /w/{workspace}/jobs_u/get/{id} Get Job #
GET /w/{workspace}/jobs_u/get_root_job_id/{id} Get Root Job Id #
GET /w/{workspace}/jobs_u/get_logs/{id} Get Job Logs #
GET /w/{workspace}/jobs_u/get_flow_all_logs/{id} Get All Logs for a Flow Job #
GET /w/{workspace}/jobs_u/get_completed_logs_tail/{id} Get Completed Job Logs Tail #
GET /w/{workspace}/jobs_u/get_args/{id} Get Job Args #
POST /w/{workspace}/jobs_u/queue/get_started_at_by_ids Get Started at by Ids #
GET /w/{workspace}/jobs_u/getupdate/{id} Get Job Updates #
GET /w/{workspace}/jobs_u/getupdate_sse/{id} Get Job Updates via Server-sent Events #
GET /w/{workspace}/jobs_u/get_log_file/{path} Get Log File from Object Store #
GET /w/{workspace}/jobs_u/get_flow_debug_info/{id} Get Flow Debug Info #
GET /w/{workspace}/jobs_u/completed/get/{id} Get Completed Job #
GET /w/{workspace}/jobs_u/completed/get_result/{id} Get Completed Job Result #
GET /w/{workspace}/jobs_u/completed/get_result_maybe/{id} Get Completed Job Result if Job is Completed #
GET /w/{workspace}/jobs_u/completed/get_timing/{id} Get Completed Job Timing #
POST /w/{workspace}/jobs/completed/delete/{id} Delete Completed Job (erase Content but Keep Run Id) #
POST /w/{workspace}/jobs_u/queue/cancel/{id} Cancel Queued or Running Job #
POST /w/{workspace}/jobs_u/queue/cancel_persistent/{path} Cancel All Queued Jobs for Persistent Script #
POST /w/{workspace}/jobs_u/queue/force_cancel/{id} Force Cancel Queued Job #
GET /w/{workspace}/jobs/queue/position/{scheduled_for} Get Queue Position for a Job #
GET /w/{workspace}/jobs/queue/scheduled_for/{id} Get Scheduled for Timestamp for a Job #
GET /w/{workspace}/jobs/job_signature/{id}/{resume_id} Create an HMac Signature Given a Job Id and a Resume Id #
GET /w/{workspace}/jobs/resume_urls/{id}/{resume_id} Get Resume Urls Given a Job_id, Resume_id and a Nonce to Resume a Flow #
GET /w/{workspace}/jobs/slack_approval/{id} Generate Interactive Slack Approval for Suspended Job #
GET /w/{workspace}/jobs/teams_approval/{id} Generate Interactive Teams Approval for Suspended Job #
POST /w/{workspace}/jobs_u/flow/resume_suspended/{job_id} Resume or Cancel a Suspended Flow/WAC Job #
GET /w/{workspace}/jobs_u/flow/approval_info/{job_id} Get Approval Info for a Suspended Flow/WAC Job #
GET /w/{workspace}/jobs_u/resume/{id}/{resume_id}/{signature} Resume a Job for a Suspended Flow #
POST /w/{workspace}/jobs_u/resume/{id}/{resume_id}/{signature} Resume a Job for a Suspended Flow #
POST /w/{workspace}/jobs/flow/user_states/{id}/{key} Set Flow User State at a Given Key #
GET /w/{workspace}/jobs/flow/user_states/{id}/{key} Get Flow User State at a Given Key #
POST /w/{workspace}/jobs/flow/resume/{id} Resume a Job for a Suspended Flow as an Owner #
GET /w/{workspace}/jobs_u/cancel/{id}/{resume_id}/{signature} Cancel a Job for a Suspended Flow #
POST /w/{workspace}/jobs_u/cancel/{id}/{resume_id}/{signature} Cancel a Job for a Suspended Flow #
GET /w/{workspace}/jobs_u/get_flow/{id}/{resume_id}/{signature} Get Parent Flow Job of Suspended Job #
GET /w/{workspace}/concurrency_groups/list_jobs Get Intervals of Job Runtime Concurrency #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/windmill-job-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

windmill-job-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.694.0
  title: Windmill Job API
  contact:
    name: Windmill Team
    email: contact@windmill.dev
    url: https://windmill.dev
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  x-logo:
    url: https://windmill.dev/img/windmill.svg
servers:
- url: /api
security:
- bearerAuth: []
- cookieAuth: []
tags:


# --- truncated at 32 KB (115 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/windmill/refs/heads/main/openapi/windmill-job-api-openapi.yml