Windmill website screenshot

Windmill

Windmill is an open-source developer platform and workflow engine for turning scripts into webhooks, workflows, and internal apps. It supports TypeScript, Python, Go, PHP, Bash, C#, SQL, and Rust, and serves as an open-source alternative to Retool, Airflow, and Temporal for building comprehensive internal tools including endpoints, workflows, and UIs.

1 APIs 0 Features
AutomationInternal ToolsOpen SourceProCode API CompositionScriptsWebhooksWorkflow EngineWorkflows

APIs

Windmill API

The Windmill API provides programmatic access to the Windmill developer platform, enabling management of scripts, flows, apps, resources, variables, schedules, jobs, users, work...

Collections

Arazzo Workflows

Windmill Bootstrap a Workspace

Create a workspace, confirm it exists, then read back its display name.

ARAZZO

Windmill Create and Run a Script

Deploy a new script from source, confirm it deployed, then run it.

ARAZZO

Windmill Provision a Resource and Run a Consuming Script

Create a typed resource, verify its value, then run a script that consumes it.

ARAZZO

Windmill Provision a Variable and Run a Consuming Script

Create a variable, verify its value, then run a script that reads it.

ARAZZO

Windmill Run a Flow and Await its Result

Trigger a flow by path, poll job updates until completion, then read the result.

ARAZZO

Windmill Run a Script and Await its Result

Trigger a script by path, poll the job until it completes, then read the result.

ARAZZO

Windmill Run a Script and Clean up its Job

Run a script, await its result, capture it, then delete the completed job record.

ARAZZO

Windmill Run a Script with a Cancel Guard

Run a script, inspect the job, and cancel it if it is still queued or running.

ARAZZO

Windmill Schedule a Flow

Resolve a flow, create a cron schedule for it, then read the schedule back.

ARAZZO

Windmill Schedule a Script

Resolve a script, create a cron schedule for it, then read the schedule back.

ARAZZO

Pricing Plans

Windmill Plans Pricing

3 plans

PLANS

Rate Limits

Windmill Rate Limits

5 limits

RATE LIMITS

FinOps

Semantic Vocabularies

Windmill Context

17 classes · 16 properties

JSON-LD

API Governance Rules

Windmill API Rules

10 rules · 4 errors 5 warnings 1 info

SPECTRAL

JSON Structure

Windmill Flow Structure

0 properties

JSON STRUCTURE

Windmill Job Structure

0 properties

JSON STRUCTURE

Windmill Resource Structure

0 properties

JSON STRUCTURE

Windmill Schedule Structure

0 properties

JSON STRUCTURE

Windmill Script Structure

0 properties

JSON STRUCTURE

Windmill User Structure

0 properties

JSON STRUCTURE

Windmill Workspace Structure

0 properties

JSON STRUCTURE

Example Payloads

Windmill Run Script Example

6 fields

EXAMPLE

Resources

🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
LinkedIn
LinkedIn
🌐
Portal
Portal
🔗
Documentation
Documentation
🚀
GettingStarted
GettingStarted
💰
Pricing
Pricing
🔗
Plans
Plans
📰
Blog
Blog
📄
ChangeLog
ChangeLog
🔗
RoadMap
RoadMap
🔗
Login
Login
👥
GitHubOrg
GitHubOrg
👥
GitHubRepo
GitHubRepo
🔗
IntegrationHub
IntegrationHub
🟢
StatusPage
StatusPage
🔗
Discord
Discord
🔗
CommunityForum
CommunityForum
🔗
OpenAPI
OpenAPI
📜
TermsOfService
TermsOfService
📜
PrivacyPolicy
PrivacyPolicy
📜
LicenseTerms
LicenseTerms
🔗
TrustCenter
TrustCenter
🔗
Careers
Careers
🔗
Partners
Partners
🔗
CaseStudies
CaseStudies
🔗
Brand
Brand
🔗
JSONLDContext
JSONLDContext
🔗
Vocabulary
Vocabulary

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Windmill API
  version: 1.694.0
request:
  auth:
    type: bearer
    token: '{{bearerToken}}'
items:
- info:
    name: settings
    type: folder
  items:
  - info:
      name: Get Backend Version
      type: http
    http:
      method: GET
      url: /api/version
    docs: Get Backend Version
  - info:
      name: Is Backend up to Date
      type: http
    http:
      method: GET
      url: /api/uptodate
    docs: Is Backend up to Date
  - info:
      name: Get License Id
      type: http
    http:
      method: GET
      url: /api/ee_license
    docs: Get License Id
  - info:
      name: Get Openapi Yaml Spec
      type: http
    http:
      method: GET
      url: /api/openapi.yaml
    docs: Get Openapi Yaml Spec
- info:
    name: health
    type: folder
  items:
  - info:
      name: Health Status
      type: http
    http:
      method: GET
      url: /api/health/status
      params:
      - name: force
        value: ''
        type: query
        description: Force a fresh check, bypassing the cache
    docs: 'Health status endpoint. Returns cached health status (database connectivity, worker count).

      Cache TTL is fixed at 5 seconds. Use force=true query parameter to bypass cache.

      Note: This endpoint is intentionally different from Kubernetes probes to avoid confusion.

      For k8s liveness/readiness probes, use /version endpoint.

      '
  - info:
      name: Detailed Health Status
      type: http
    http:
      method: GET
      url: /api/health/detailed
    docs: 'Returns detailed health information including database pool stats, worker details, and queue status.

      Requires authentication. Use for monitoring dashboards and debugging.

      This endpoint always returns fresh data (no caching).

      '
- info:
    name: documentation
    type: folder
  items:
  - info:
      name: Query Windmill AI Documentation Assistant (EE Only)
      type: http
    http:
      method: POST
      url: /api/inkeep
      body:
        type: json
        data: '{}'
    docs: Query Windmill AI Documentation Assistant (EE Only)
- info:
    name: audit
    type: folder
  items:
  - info:
      name: Get Audit Log (requires Admin Privilege)
      type: http
    http:
      method: GET
      url: /api/w/:workspace/audit/get/:id
      params:
      - name: workspace
        value: ''
        type: path
      - name: id
        value: ''
        type: path
    docs: Get Audit Log (requires Admin Privilege)
  - info:
      name: List Audit Logs (requires Admin Privilege)
      type: http
    http:
      method: GET
      url: /api/w/:workspace/audit/list
      params:
      - name: workspace
        value: ''
        type: path
      - name: page
        value: ''
        type: query
        description: which page to return (start at 1, default 1)
      - name: per_page
        value: ''
        type: query
        description: number of items to return for a given page (default 30, max 100)
      - name: before
        value: ''
        type: query
        description: filter on started before (inclusive) timestamp
      - name: after
        value: ''
        type: query
        description: filter on created after (exclusive) timestamp
      - name: username
        value: ''
        type: query
        description: filter on exact username of user
      - name: operation
        value: ''
        type: query
        description: filter on exact or prefix name of operation
      - name: operations
        value: ''
        type: query
        description: comma separated list of exact operations to include
      - name: exclude_operations
        value: ''
        type: query
        description: comma separated list of operations to exclude
      - name: resource
        value: ''
        type: query
        description: filter on exact or prefix name of resource
      - name: action_kind
        value: ''
        type: query
        description: filter on type of operation
      - name: all_workspaces
        value: ''
        type: query
        description: get audit logs for all workspaces
    docs: List Audit Logs (requires Admin Privilege)
- info:
    name: user
    type: folder
  items:
  - info:
      name: Login with Password
      type: http
    http:
      method: POST
      url: /api/auth/login
      body:
        type: json
        data: '{}'
    docs: Login with Password
  - info:
      name: Logout
      type: http
    http:
      method: POST
      url: /api/auth/logout
    docs: Logout
  - info:
      name: Check if SMTP is Configured for Password Reset
      type: http
    http:
      method: GET
      url: /api/auth/is_smtp_configured
    docs: Check if SMTP is Configured for Password Reset
  - info:
      name: Check if Password Login is Disabled Instance-wide
      type: http
    http:
      method: GET
      url: /api/auth/is_password_login_disabled
    docs: Check if Password Login is Disabled Instance-wide
  - info:
      name: Request Password Reset Email
      type: http
    http:
      method: POST
      url: /api/auth/request_password_reset
      body:
        type: json
        data: '{}'
    docs: Request Password Reset Email
  - info:
      name: Reset Password Using Token
      type: http
    http:
      method: POST
      url: /api/auth/reset_password
      body:
        type: json
        data: '{}'
    docs: Reset Password Using Token
  - info:
      name: Get User (require Admin Privilege)
      type: http
    http:
      method: GET
      url: /api/w/:workspace/users/get/:username
      params:
      - name: workspace
        value: ''
        type: path
      - name: username
        value: ''
        type: path
    docs: Get User (require Admin Privilege)
  - info:
      name: Update User (require Admin Privilege)
      type: http
    http:
      method: POST
      url: /api/w/:workspace/users/update/:username
      params:
      - name: workspace
        value: ''
        type: path
      - name: username
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Update User (require Admin Privilege)
  - info:
      name: Is Owner of Path
      type: http
    http:
      method: GET
      url: /api/w/:workspace/users/is_owner/:path
      params:
      - name: workspace
        value: ''
        type: path
      - name: path
        value: ''
        type: path
    docs: Is Owner of Path
  - info:
      name: Set Password
      type: http
    http:
      method: POST
      url: /api/users/setpassword
      body:
        type: json
        data: '{}'
    docs: Set Password
  - info:
      name: Set Password for a Specific User (require Super Admin)
      type: http
    http:
      method: POST
      url: /api/users/set_password_of/:user
      params:
      - name: user
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Set Password for a Specific User (require Super Admin)
  - info:
      name: Set Login Type for a Specific User (require Super Admin)
      type: http
    http:
      method: POST
      url: /api/users/set_login_type/:user
      params:
      - name: user
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Set Login Type for a Specific User (require Super Admin)
  - info:
      name: Create User
      type: http
    http:
      method: POST
      url: /api/users/create
      body:
        type: json
        data: '{}'
    docs: Create User
  - info:
      name: Global Update User (require Super Admin)
      type: http
    http:
      method: POST
      url: /api/users/update/:email
      params:
      - name: email
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Global Update User (require Super Admin)
  - info:
      name: Global Username Info (require Super Admin)
      type: http
    http:
      method: GET
      url: /api/users/username_info/:email
      params:
      - name: email
        value: ''
        type: path
    docs: Global Username Info (require Super Admin)
  - info:
      name: Global Rename User (require Super Admin)
      type: http
    http:
      method: POST
      url: /api/users/rename/:email
      params:
      - name: email
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Global Rename User (require Super Admin)
  - info:
      name: Global Delete User (require Super Admin)
      type: http
    http:
      method: DELETE
      url: /api/users/delete/:email
      params:
      - name: email
        value: ''
        type: path
    docs: Global Delete User (require Super Admin)
  - info:
      name: Global Overwrite Users (require Super Admin and EE)
      type: http
    http:
      method: POST
      url: /api/users/overwrite
      body:
        type: json
        data: '{}'
    docs: Global Overwrite Users (require Super Admin and EE)
  - info:
      name: Global Export Users (require Super Admin and EE)
      type: http
    http:
      method: GET
      url: /api/users/export
    docs: Global Export Users (require Super Admin and EE)
  - info:
      name: List External JWT Tokens (ee Only)
      type: http
    http:
      method: GET
      url: /api/users/ext_jwt_tokens
      params:
      - name: page
        value: ''
        type: query
      - name: per_page
        value: ''
        type: query
      - name: active_only
        value: ''
        type: query
        description: only tokens used in the last 30 days
    docs: List External JWT Tokens (ee Only)
  - info:
      name: Submit User Onboarding Data
      type: http
    http:
      method: POST
      url: /api/users/onboarding
      body:
        type: json
        data: '{}'
    docs: Submit User Onboarding Data
  - info:
      name: Delete User (require Admin Privilege)
      type: http
    http:
      method: DELETE
      url: /api/w/:workspace/users/delete/:username
      params:
      - name: workspace
        value: ''
        type: path
      - name: username
        value: ''
        type: path
    docs: Delete User (require Admin Privilege)
  - info:
      name: Preview Offboarding for a Workspace User (require Admin Privilege)
      type: http
    http:
      method: GET
      url: /api/w/:workspace/users/offboard_preview/:username
      params:
      - name: workspace
        value: ''
        type: path
      - name: username
        value: ''
        type: path
    docs: Preview Offboarding for a Workspace User (require Admin Privilege)
  - info:
      name: Offboard a Workspace User (reassign Objects, Optionally Delete User)
      type: http
    http:
      method: POST
      url: /api/w/:workspace/users/offboard/:username
      params:
      - name: workspace
        value: ''
        type: path
      - name: username
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Offboard a Workspace User (reassign Objects, Optionally Delete User)
  - info:
      name: Preview Global Offboarding for a User Across All Workspaces (require Super Admin)
      type: http
    http:
      method: GET
      url: /api/users/offboard_preview/:email
      params:
      - name: email
        value: ''
        type: path
    docs: Preview Global Offboarding for a User Across All Workspaces (require Super Admin)
  - info:
      name: Offboard a User Globally (reassign Objects Across Workspaces, Optionally Delete)
      type: http
    http:
      method: POST
      url: /api/users/offboard/:email
      params:
      - name: email
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Offboard a User Globally (reassign Objects Across Workspaces, Optionally Delete)
  - info:
      name: Convert Manual User to Group User (require Admin Privilege)
      type: http
    http:
      method: POST
      url: /api/w/:workspace/users/convert_to_group/:username
      params:
      - name: workspace
        value: ''
        type: path
      - name: username
        value: ''
        type: path
    docs: Convert Manual User to Group User (require Admin Privilege)
  - info:
      name: Get Current User Email (if Logged In)
      type: http
    http:
      method: GET
      url: /api/users/email
    docs: Get Current User Email (if Logged In)
  - info:
      name: Refresh the Current Token
      type: http
    http:
      method: GET
      url: /api/users/refresh_token
      params:
      - name: if_expiring_in_less_than_s
        value: ''
        type: query
    docs: Refresh the Current Token
  - info:
      name: Get Tutorial Progress
      type: http
    http:
      method: GET
      url: /api/users/tutorial_progress
    docs: Get Tutorial Progress
  - info:
      name: Update Tutorial Progress
      type: http
    http:
      method: POST
      url: /api/users/tutorial_progress
      body:
        type: json
        data: '{}'
    docs: Update Tutorial Progress
  - info:
      name: Leave Instance
      type: http
    http:
      method: POST
      url: /api/users/leave_instance
    docs: Leave Instance
  - info:
      name: Get Current Usage Outside of Premium Workspaces
      type: http
    http:
      method: GET
      url: /api/users/usage
    docs: Get Current Usage Outside of Premium Workspaces
  - info:
      name: Get All Runnables in Every Workspace
      type: http
    http:
      method: GET
      url: /api/users/all_runnables
    docs: Get All Runnables in Every Workspace
  - info:
      name: Get Current Global Whoami (if Logged In)
      type: http
    http:
      method: GET
      url: /api/users/whoami
    docs: Get Current Global Whoami (if Logged In)
  - info:
      name: List All Workspace Invites
      type: http
    http:
      method: GET
      url: /api/users/list_invites
    docs: List All Workspace Invites
  - info:
      name: Whoami
      type: http
    http:
      method: GET
      url: /api/w/:workspace/users/whoami
      params:
      - name: workspace
        value: ''
        type: path
    docs: Whoami
  - info:
      name: Accept Invite to Workspace
      type: http
    http:
      method: POST
      url: /api/users/accept_invite
      body:
        type: json
        data: '{}'
    docs: Accept Invite to Workspace
  - info:
      name: Decline Invite to Workspace
      type: http
    http:
      method: POST
      url: /api/users/decline_invite
      body:
        type: json
        data: '{}'
    docs: Decline Invite to Workspace
  - info:
      name: Impersonate a Service Account
      type: http
    http:
      method: POST
      url: /api/w/:workspace/users/impersonate_service_account
      params:
      - name: workspace
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Impersonate a Service Account
  - info:
      name: Exit Service Account Impersonation
      type: http
    http:
      method: POST
      url: /api/w/:workspace/users/exit_impersonation
      params:
      - name: workspace
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Exit Service Account Impersonation
  - info:
      name: Whois
      type: http
    http:
      method: GET
      url: /api/w/:workspace/users/whois/:username
      params:
      - name: workspace
        value: ''
        type: path
      - name: username
        value: ''
        type: path
    docs: Whois
  - info:
      name: Exists Email
      type: http
    http:
      method: GET
      url: /api/users/exists/:email
      params:
      - name: email
        value: ''
        type: path
    docs: Exists Email
  - info:
      name: List All Users as Super Admin (require to be Super Amdin)
      type: http
    http:
      method: GET
      url: /api/users/list_as_super_admin
      params:
      - name: page
        value: ''
        type: query
        description: which page to return (start at 1, default 1)
      - name: per_page
        value: ''
        type: query
        description: number of items to return for a given page (default 30, max 100)
      - name: active_only
        value: ''
        type: query
        description: filter only active users
    docs: List All Users as Super Admin (require to be Super Amdin)
  - info:
      name: List Users
      type: http
    http:
      method: GET
      url: /api/w/:workspace/users/list
      params:
      - name: workspace
        value: ''
        type: path
    docs: List Users
  - info:
      name: List Users Usage
      type: http
    http:
      method: GET
      url: /api/w/:workspace/users/list_usage
      params:
      - name: workspace
        value: ''
        type: path
    docs: List Users Usage
  - info:
      name: List Usernames
      type: http
    http:
      method: GET
      url: /api/w/:workspace/users/list_usernames
      params:
      - name: workspace
        value: ''
        type: path
    docs: List Usernames
  - info:
      name: Get Email from Username
      type: http
    http:
      method: GET
      url: /api/w/:workspace/users/username_to_email/:username
      params:
      - name: workspace
        value: ''
        type: path
      - name: username
        value: ''
        type: path
    docs: Get Email from Username
  - info:
      name: Create Token
      type: http
    http:
      method: POST
      url: /api/users/tokens/create
      body:
        type: json
        data: '{}'
    docs: Create Token
  - info:
      name: Create Token to Impersonate a User (require Superadmin)
      type: http
    http:
      method: POST
      url: /api/users/tokens/impersonate
      body:
        type: json
        data: '{}'
    docs: Create Token to Impersonate a User (require Superadmin)
  - info:
      name: Delete Token
      type: http
    http:
      method: DELETE
      url: /api/users/tokens/delete/:token_prefix
      params:
      - name: token_prefix
        value: ''
        type: path
    docs: Delete Token
  - info:
      name: Update Scopes of an Existing Token (owner Only)
      type: http
    http:
      method: POST
      url: /api/users/tokens/update_scopes/:token_prefix
      params:
      - name: token_prefix
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Update Scopes of an Existing Token (owner Only)
  - info:
      name: List Token
      type: http
    http:
      method: GET
      url: /api/users/tokens/list
      params:
      - name: exclude_ephemeral
        value: ''
        type: query
      - name: page
        value: ''
        type: query
        description: which page to return (start at 1, default 1)
      - name: per_page
        value: ''
        type: query
        description: number of items to return for a given page (default 30, max 100)
    docs: List Token
  - info:
      name: Login with Oauth Authorization Flow
      type: http
    http:
      method: POST
      url: /api/oauth/login_callback/:client_name
      params:
      - name: client_name
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Login with Oauth Authorization Flow
- info:
    name: Git Sync
    type: folder
  items:
  - info:
      name: Get Connected Repositories
      type: http
    http:
      method: GET
      url: /api/github_app/connected_repositories
      params:
      - name: page
        value: ''
        type: query
        description: Page number for pagination (default 1)
    docs: Get Connected Repositories
  - info:
      name: Install a GitHub Installation from Another Workspace
      type: http
    http:
      method: POST
      url: /api/w/:workspace/github_app/install_from_workspace
      params:
      - name: workspace
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Install a GitHub Installation from Another Workspace
  - info:
      name: Delete a GitHub Installation from a Workspace
      type: http
    http:
      method: DELETE
      url: /api/w/:workspace/github_app/installation/:installation_id
      params:
      - name: workspace
        value: ''
        type: path
      - name: installation_id
        value: ''
        type: path
        description: The ID of the GitHub installation to delete
    docs: Removes a GitHub installation from the specified workspace. Requires admin privileges.
  - info:
      name: Export GitHub Installation JWT Token
      type: http
    http:
      method: GET
      url: /api/w/:workspace/github_app/export/:installationId
      params:
      - name: workspace
        value: ''
        type: path
      - name: installationId
        value: ''
        type: path
    docs: Exports the JWT token for a specific GitHub installation in the workspace
  - info:
      name: Import GitHub Installation from JWT Token
      type: http
    http:
      method: POST
      url: /api/w/:workspace/github_app/import
      params:
      - name: workspace
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Imports a GitHub installation from a JWT token exported from another instance
  - info:
      name: GHES Installation Callback
      type: http
    http:
      method: POST
      url: /api/w/:workspace/github_app/ghes_installation_callback
      params:
      - name: workspace
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Register a self-managed GitHub App installation from GitHub Enterprise Server
  - info:
      name: Get GHES App Config
      type: http
    http:
      method: GET
      url: /api/github_app/ghes_config
    docs: Returns the GitHub Enterprise Server app configuration (without private key) for constructing the installation URL
- info:
    name: workspace
    type: folder
  items:
  - info:
      name: List All Workspaces Visible to Me
      type: http
    http:
      method: GET
      url: /api/workspaces/list
    docs: List All Workspaces Visible to Me
  - info:
      name: Is Domain Allowed for Auto Invi
      type: http
    http:
      method: GET
      url: /api/workspaces/allowed_domain_auto_invite
    docs: Is Domain Allowed for Auto Invi
  - info:
      name: List All Workspaces Visible to Me with User Info
      type: http
    http:
      method: GET
      url: /api/workspaces/users
    docs: List All Workspaces Visible to Me with User Info
  - info:
      name: Get Workspace as Super Admin (require to be Super Admin)
      type: http
    http:
      method: GET
      url: /api/w/:workspace/workspaces/get_as_superadmin
      params:
      - name: workspace
        value: ''
        type: path
    docs: Get Workspace as Super Admin (require to be Super Admin)
  - info:
      name: List All Workspaces as Super Admin (require to be Super Admin)
      type: http
    http:
      method: GET
      url: /api/workspaces/list_as_superadmin
      params:
      - name: page
        value: ''
        type: query
        description: which page to return (start at 1, default 1)
      - name: per_page
        value: ''
        type: query
        description: number of items to return for a given page (default 30, max 100)
    docs: List All Workspaces as Super Admin (require to be Super Admin)
  - info:
      name: Create Workspace
      type: http
    http:
      method: POST
      url: /api/workspaces/create
      body:
        type: json
        data: '{}'
    docs: Create Workspace
  - info:
      name: Create Forked Workspace Branch with Git Sync
      type: http
    http:
      method: POST
      url: /api/w/:workspace/workspaces/create_workspace_fork_branch
      params:
      - name: workspace
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Create Forked Workspace Branch with Git Sync
  - info:
      name: Create Forked Workspace
      type: http
    http:
      method: POST
      url: /api/w/:workspace/workspaces/create_fork
      params:
      - name: workspace
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Create Forked Workspace
  - info:
      name: Exists Workspace
      type: http
    http:
      method: POST
      url: /api/workspaces/exists
      body:
        type: json
        data: '{}'
    docs: Exists Workspace
  - info:
      name: Exists Username
      type: http
    http:
      method: POST
      url: /api/workspaces/exists_username
      body:
        type: json
        data: '{}'
    docs: Exists Username
  - info:
      name: Get Github App Token
      type: http
    http:
      method: POST
      url: /api/w/:workspace/github_app/token
      params:
      - name: workspace
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Get Github App Token
  - info:
      name: Invite User to Workspace
      type: http
    http:
      method: POST
      url: /api/w/:workspace/workspaces/invite_user
      params:
      - name: workspace
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Invite User to Workspace
  - info:
      name: Add User to Workspace
      type: http
    http:
      method: POST
      url: /api/w/:workspace/workspaces/add_user
      params:
      - name: workspace
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Add User to Workspace
  - info:
      name: Create a Service Account
      type: http
    http:
      method: POST
      url: /api/w/:workspace/workspaces/create_service_account
      params:
      - name: workspace
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Create a Service Account
  - info:
      name: Delete User Invite
      type: http
    http:
      method: POST
      url: /api/w/:workspace/workspaces/delete_invite
      params:
      - name: workspace
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Delete User Invite
  - info:
      name: Archive Workspace
      type: http
    http:
      method: POST
      url: /api/w/:workspace/workspaces/archive
      params:
      - name: workspace
        value: ''
        type: path
    docs: Archive Workspace
  - info:
      name: Unarchive Workspace
      type: http
    http:
      method: POST
      url: /api/workspaces/unarchive/:workspace
      params:
      - name: workspace
        value: ''
        type: path
    docs: Unarchive Workspace
  - info:
      name: Delete Workspace (require Super Admin)
      type: http
    http:
      method: DELETE
      url: /api/workspaces/delete/:workspace
      params:
      - name: workspace
        value: ''
        type: path
      - name: only_delete_forks
        value: ''
        type: query
    docs: Delete Workspace (require Super Admin)
  - info:
      name: Leave Workspace
      type: http
    http:
      method: POST
      url: /api/w/:workspace/workspaces/leave
      params:
      - name: workspace
        value: ''
        type: path
    docs: Leave Workspace
  - info:
      name: Get Workspace Name
      type: http
    http:
      method: GET
      url: /api/w/:workspace/workspaces/get_workspace_name
      params:
      - name: workspace
        value: ''
        type: path
    docs: Get Workspace Name
  - info:
      name: Change Workspace Name
      type: http
    http:
      method: POST
      url: /api/w/:workspace/workspaces/change_workspace_name
      params:
      - name: workspace
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Change Workspace Name
  - info:
      name: Change Workspace Id
      type: http
    http:
      method: POST
      url: /api/w/:workspace/workspaces/change_workspace_id
      params:
      - name: workspace
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Change Workspace Id
  - info:
      name: Change Workspace Id
      type: http
    http:
      method: POST
      url: /api/w/:workspace/workspaces/change_workspace_color
      params:
      - name: workspace
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Change Workspace Id
  - info:
      name: Update Operator Settings for a Workspace
      type: http
    http:
      method: POST
      url: /api/w/:workspace/workspaces/operator_settings
      params:
      - name: workspace
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Updates the operator settings for a specific workspace. Requires workspace admin privileges.
  - info:
      name: Compare Two Workspaces
      type: http
    http:
      method: GET
      url: /api/w/:workspace/workspaces/compare/:target_workspace_id
      params:
      - name: workspace
        value: ''
        type: path
      - name: target_workspace_id
        value: ''
        type: path
        description: The ID of the workspace to compare with
    docs: Compares the current workspace with a target workspace to find differences in scripts, flows, apps, resources, and
      variables. Returns information about items that are ahead, behind, or in conflict.
  - info:
      name: Resets the Ahead and Behind Deployement Counter After a Deployement
      type: http
    http:
      method: POST
      url: /api/w/:workspace/workspaces/reset_diff_tally/:fork_workspace_id
      params:
      - name: workspace
        value: ''
        type: path
      - name: fork_workspace_id
        value: ''
        type: path
        description: The ID of the workspace to compare with
    docs: This endpoint should be called after a fork deployement
  - info:
      name: List Pending Invites for a Workspace
      type: http
    http:
      method: GET
      url: /api/w/:workspace/workspaces/list_pending_invites
      params:
      - name: workspace
        value: ''
        type: path
    docs: List Pending Invites for a Workspace
  - info:
      name: Get Public Settings
      type: http
    http:
      method: GET
      url: /api/w/:workspace/workspaces/get_public_settings
      params:
      - name: workspace
        value: ''
        type: path
    docs: Returns the subset of workspace settings safe to expose to any workspace member. The full settings struct is admin-only
      via `getSettings`.
  - info:
      name: Get Settings (admin Only)
      type: http
    http:
      method: GET
      url: /api/w/:workspace/workspaces/get_settings
      params:
      - name: workspace
        value: ''
        type: path
    docs: Returns the full workspace settings including admin-managed integration credentials. Admin-only — non-admin callers
      should use `getPublicSettings`.
  - info:
      name: Get Deploy to
      type: http
    http:
      method: GET
      url: /api/w/:workspace/workspaces/get_deploy_to
      params:
      - name: workspace
        value: ''
        type: path
    docs: Get Deploy to
  - info:
      name: Get if Workspace is Premium
      type: http
    http:
      method: GET
      url: /api/w/:workspace/workspaces/is_premium
      params:
      - name: workspace
        value: ''
        type: path
    docs: Get if Workspace is Premium
  - info:
      name: Get Premium Info
      type: http
    http:
      method: GET
      url: /api/w/:workspace/workspaces/premium_info
      params:
      - name: workspace
        value: ''
        type: path
      - name: skip_subscription_fetch
        value: ''
        type: query
        description: skip fetching subscription status from stripe
    docs: Get Premium Info
  - info:
      name: Get Threshold Alert Info
      type: http
    http:
      method: GET
      url: /api/w/:workspace/workspaces/threshold_alert
      params:
      - name: workspace
        value: ''
        type: path
    docs: Get Threshold Alert Info
  - info:
      name: Set Threshold Alert Info
      type: http
    http:
      method: POST
      url: /api/w/:workspace/workspaces/threshold_alert
      params:
      - name: workspace
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Set Threshold Alert Info
  - info:
      name: Rebuild Dependency Map
      type: http
    http:
      method: POST
      url: /api/w/:workspace/workspaces/rebuild_dependency_map
      params:
      - name: workspace
        value: ''
        type: path
    docs: Rebuild Dependency Map
  - info:
      name: Get Dependents of an Imported Path
      type: http
    http:
      method: GET
      url: /api/w/:workspace/workspaces/get_dependents/:imported_path
      params:
      - name: workspace
        value: ''
        type: path
      - name: imported_path
        value: ''
 

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