dagu-rest-api
Guide for using the Dagu REST API to programmatically manage and execute workflows, query status, and integrate with external systems
$ Instalar
git clone https://github.com/vinnie357/claude-skills /tmp/claude-skills && cp -r /tmp/claude-skills/dagu/skills/rest-api ~/.claude/skills/claude-skills// tip: Run this command in your terminal to install the skill
name: dagu-rest-api description: Guide for using the Dagu REST API to programmatically manage and execute workflows, query status, and integrate with external systems
Dagu REST API
Use this skill when integrating Dagu with external systems, automating workflow operations, or programmatically managing workflows through the API.
When to Use This Skill
Activate when:
- Triggering workflows programmatically
- Querying workflow status from applications
- Building automation around Dagu
- Integrating Dagu with CI/CD pipelines
- Creating custom dashboards or monitoring tools
- Scheduling workflows dynamically
- Fetching execution logs programmatically
Core API Capabilities
The Dagu REST API provides endpoints for:
- Workflow Operations - Start, stop, retry workflows
- Status Queries - Get workflow and execution status
- DAG Management - List and inspect workflow definitions
- Execution History - Query past executions
- Log Retrieval - Fetch execution logs
Base URL
Default API base URL: http://localhost:8080/api/v1
Configure in Dagu settings if using a different host/port.
Authentication
Consult references/authentication.md for details on:
- API token configuration
- Authentication headers
- Security best practices
Quick Start Operations
Start a Workflow
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 Workflow Status
GET /dags/{dagName}/status
Returns current status, running steps, and execution details.
Stop a Workflow
POST /dags/{dagName}/stop
Stops currently running execution.
When to Consult References
- Detailed endpoint documentation: Read
references/api-endpoints.md - Workflow operations (start/stop/retry): Read
references/workflow-operations.md - Status and monitoring queries: Read
references/status-queries.md - Authentication setup: Read
references/authentication.md - Integration examples: Read
references/integration-examples.md - Error handling: Read
references/error-handling.md
Common Use Cases
CI/CD Integration
Trigger 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.
Monitoring and Alerting
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.
Dynamic Scheduling
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.
Response Formats
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.
Key Principles
- RESTful design: Standard HTTP methods (GET, POST, DELETE)
- JSON responses: All responses in JSON format
- Idempotent operations: Safe to retry most operations
- Error codes: Standard HTTP status codes
- Stateless: Each request is independent
Pro Tips
- Use the API for automation, use Web UI for manual operations
- Implement retry logic for network failures
- Cache DAG lists if querying frequently
- Use webhooks for event-driven workflows when possible
- Monitor API response times for performance issues
- Validate workflow names before calling API to avoid errors
Repository
