Guide for using the Dagu REST API. Use when programmatically managing workflows, querying execution status, or integrating Dagu with external systems.
Integrates Dagu workflows with external systems via REST API for programmatic management.
npx claudepluginhub vinnie357/claude-skillsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
references/api-endpoints.mdUse this skill when integrating Dagu with external systems, automating workflow operations, or programmatically managing workflows through the API.
Activate when:
The Dagu REST API provides endpoints for:
Default API base URL: http://localhost:8080/api/v1
Configure in Dagu settings if using a different host/port.
Consult references/authentication.md for details on:
POST /dags/{dagName}/start
Basic example:
curl -X POST http://localhost:8080/api/v1/dags/my_workflow/start
For parameter passing and advanced options, see references/workflow-operations.md.
GET /dags/{dagName}/status
Returns current status, running steps, and execution details.
POST /dags/{dagName}/stop
Stops currently running execution.
references/api-endpoints.mdreferences/workflow-operations.mdreferences/status-queries.mdreferences/authentication.mdreferences/integration-examples.mdreferences/error-handling.mdTrigger Dagu workflows from your CI/CD pipeline:
# In GitHub Actions, GitLab CI, etc.
curl -X POST http://dagu-server:8080/api/v1/dags/deploy_production/start \
-H "Content-Type: application/json" \
-d '{"params": "VERSION=1.2.3 ENVIRONMENT=production"}'
For complete CI/CD integration patterns, see references/integration-examples.md.
Query workflow status for external monitoring:
# Check if workflow is running
curl http://localhost:8080/api/v1/dags/critical_job/status
Build custom alerts based on status responses. See references/status-queries.md for response format details.
Trigger workflows based on external events:
import requests
def trigger_workflow(dag_name, params=None):
url = f"http://localhost:8080/api/v1/dags/{dag_name}/start"
data = {"params": params} if params else {}
response = requests.post(url, json=data)
return response.json()
For comprehensive examples in multiple languages, see references/integration-examples.md.
All API responses are JSON. Common response structure:
{
"status": "success",
"data": { ... }
}
Error responses:
{
"status": "error",
"message": "Error description"
}
For complete response schemas, consult references/api-endpoints.md.
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.