Connect your existing jobs and scripts, visualize their dependencies, see what ran and when. The DAG view for teams not ready for Airflow.
Every operation in Windmill is available through a JSON REST API. No SDK required — use curl, fetch, or any HTTP client.
GET /api/pipelines — list all pipelines with optional search and filter query parametersPOST /api/pipelines — create a new pipeline recordGET /api/pipelines/{id} — retrieve a single pipeline by IDPUT /api/pipelines/{id} — update an existing pipelineDELETE /api/pipelines/{id} — remove a pipelineGET /api/stats — aggregated statistics with status breakdownGET /api/health — health check endpoint for monitoringThe overhead of managing pipelines tends to grow quietly until someone asks why the team is paying four different subscriptions for overlapping features. Windmill replaces that stack with a single process that starts in under a second.
Run Windmill on any server where you can execute a binary. The dashboard is immediately available at localhost, and the REST API integrates with your existing scripts and workflows. No external dependencies to configure, no managed service to subscribe to.
Start Windmill with a port and a data directory. It creates its SQLite database on first run and serves both the API and the dashboard on the same port. Create pipelines through the web interface or POST JSON to the API. Filter by source, destination, or search by keyword. Update records with PUT, delete with DELETE. The stats endpoint returns aggregate counts grouped by status for monitoring.
GET /api/pipelines — List all pipelines. Supports ?q=keyword for search and ?status=value for filteringPOST /api/pipelines — Create a new pipeline. Send JSON with at least nameGET /api/pipelines/{id} — Fetch one pipeline by IDPUT /api/pipelines/{id} — Update fields on an existing pipelineDELETE /api/pipelines/{id} — Remove a pipelineGET /api/stats — Returns total count and breakdown by statusGET /api/health — Returns {"status":"ok"} for uptime monitoringSelf-hosted data pipeline visualizer. Self-hosted on your infrastructure. Your data never leaves your server.
curl -fsSL https://stockyard.dev/install.sh | sh -s -- --tool windmill
PORT=10180 ./windmill
http://localhost:10180
Single binary. Embedded SQLite. No Docker. No database. No dependencies.
Your license key arrives by email within 5 minutes of checkout. Set it as an environment variable and restart the binary.
export WINDMILL_LICENSE_KEY=stockyard_xxxxxxxxxxxxxxxxxxxx ./windmill
No cloud connectivity required. The binary validates the key offline with Ed25519 signatures.