Skip to content

Workflows

Public API endpoints for listing, creating, updating, and deleting workflows, and for execution logs and duplication. All require X-API-KEY header.

Method Endpoint Description
GET /v1/workflows/ List workflows (paginated)
GET /v1/workflows/{uuid}/ Get a single workflow
POST /v1/workflows/ Create a workflow
PUT /v1/workflows/{uuid}/ Update a workflow
DELETE /v1/workflows/{uuid}/ Delete a workflow
GET /v1/workflows/{uuid}/execution_logs/ Get execution logs
POST /v1/workflows/{uuid}/duplicate/ Duplicate a workflow

GET /v1/workflows/

GET /v1/workflows/

Returns a paginated list of workflows with optional filtering and ordering.

Query params

NameTypeRequiredDescription
namestringNoFilter by workflow name (search).
filterstringNoall (default), me, others, active, inactive.
orderstringNoalphabetical (default), recent, total.
is_ascendbooleanNoSort direction. Default: false.
workflows_uuidsstringNoRestrict to UUIDs, separated by --.
limitintegerNoMax results per page.
offsetintegerNoNumber of results to skip.
Request
curl "https://api.dailybot.com/v1/workflows/?limit=10&offset=0" -H "X-API-KEY: your_api_key_here"

Response examples

200 OK
json
{
  "count": 5,
  "next": "https://api.dailybot.com/v1/workflows/?limit=10&offset=10",
  "previous": null,
  "results": [
    {
      "uuid": "workflow-uuid",
      "name": "My Workflow",
      "description": "Description",
      "trigger_type": "command_execution",
      "active": true,
      "visible": true,
      "action_summary": "Send message",
      "metadata": {},
      "owner": { "uuid": "user-uuid", "full_name": "Jane" },
      "user_can_update": true,
      "user_can_delete": true,
      "total_runs": 10,
      "last_run_at": "2026-02-25T10:00:00Z",
      "created_at": "2026-02-25T09:00:00Z",
      "updated_at": "2026-02-25T10:00:00Z"
    }
  ]
}
400 Bad Request
json
{
  "detail": "Validation message.",
  "code": "params_validation_error"
}
json
{
  "error": "Invalid request data"
}
500 Internal Server Error
json
{
  "error": "An error occurred while fetching workflows"
}

GET /v1/workflows/{uuid}/

GET /v1/workflows/{'{uuid}'}/

Returns a single workflow by UUID.

Request
curl "https://api.dailybot.com/v1/workflows/workflow-uuid/" -H "X-API-KEY: your_api_key_here"

Response examples

200 OK
json
{
  "uuid": "workflow-uuid",
  "name": "My Workflow",
  "description": "Description",
  "trigger_type": "command_execution",
  "active": true,
  "visible": true,
  "action_summary": "Send message",
  "metadata": {},
  "owner": { "uuid": "user-uuid", "full_name": "Jane" },
  "user_can_update": true,
  "user_can_delete": true,
  "total_runs": 10,
  "last_run_at": "2026-02-25T10:00:00Z",
  "created_at": "2026-02-25T09:00:00Z",
  "updated_at": "2026-02-25T10:00:00Z",
  "trigger_metadata": {},
  "action_steps": [],
  "variables": {}
}
404 Not Found
json
{
  "detail": "Not found.",
  "code": "not_found"
}

POST /v1/workflows/

POST /v1/workflows/

Creates a new workflow.

Body params

NameTypeRequiredDescription
namestringYesWorkflow name.
descriptionstringNoDescription.
trigger_typestringYesTrigger type (e.g. command_execution, scheduled_task, workflow_command).
trigger_metadataobjectNoTrigger configuration (depends on trigger_type).
activebooleanNoDefault: true.
visiblebooleanNoDefault: true.
action_stepsarrayNoList of action step configs.
command_dm_onlybooleanNoFor workflow_command trigger only.
Request
curl -X POST "https://api.dailybot.com/v1/workflows/" -H "X-API-KEY: your_api_key_here" -H "Content-Type: application/json" -d '{"name": "My Workflow", "trigger_type": "command_execution"}'

Response examples

200 OK
json
{
  "uuid": "workflow-uuid",
  "name": "My Workflow",
  "description": "",
  "trigger_type": "command_execution",
  "active": true,
  "visible": true,
  "action_summary": null,
  "metadata": {},
  "owner": { "uuid": "user-uuid", "full_name": "Jane" },
  "user_can_update": true,
  "user_can_delete": true,
  "total_runs": 0,
  "last_run_at": null,
  "created_at": "2026-02-25T10:00:00Z",
  "updated_at": "2026-02-25T10:00:00Z"
}

PUT /v1/workflows/{uuid}/

PUT /v1/workflows/{'{uuid}'}/

Updates a workflow. Same body fields as POST /v1/workflows/; only provided fields are updated.

Body params

Same as POST /v1/workflows/ (name, description, trigger_type, trigger_metadata, active, action_steps, etc.).

Request
curl -X PUT "https://api.dailybot.com/v1/workflows/workflow-uuid/" -H "X-API-KEY: your_api_key_here" -H "Content-Type: application/json" -d '{"name": "Updated Name", "description": "Updated description"}'

Response examples

200 OK
json
{
  "uuid": "workflow-uuid",
  "name": "Updated Name",
  "description": "Updated description",
  "trigger_type": "command_execution",
  "active": true,
  "visible": true,
  "action_summary": "Send message",
  "metadata": {},
  "owner": { "uuid": "user-uuid", "full_name": "Jane" },
  "user_can_update": true,
  "user_can_delete": true,
  "total_runs": 10,
  "last_run_at": "2026-02-25T10:00:00Z",
  "created_at": "2026-02-25T09:00:00Z",
  "updated_at": "2026-02-25T11:00:00Z",
  "trigger_metadata": {},
  "action_steps": [],
  "variables": {}
}

DELETE /v1/workflows/{uuid}/

DELETE /v1/workflows/{'{uuid}'}/

Deletes a workflow.

Request
curl -X DELETE "https://api.dailybot.com/v1/workflows/workflow-uuid/" -H "X-API-KEY: your_api_key_here"

Response examples

200 OK

No body.

GET /v1/workflows/{uuid}/execution_logs/

GET /v1/workflows/{'{uuid}'}/execution_logs/

Returns execution logs for the workflow.

Request
curl "https://api.dailybot.com/v1/workflows/workflow-uuid/execution_logs/" -H "X-API-KEY: your_api_key_here"

Response examples

200 OK
json
{
  "workflow_uuid": "workflow-uuid",
  "workflow_name": "My Workflow",
  "execution_logs": [
    {
      "started_at": "2026-02-25T10:00:00Z",
      "trigger_data": {},
      "actions": [],
      "status": "completed"
    }
  ],
  "total_executions": 1
}

POST /v1/workflows/{uuid}/duplicate/

POST /v1/workflows/{'{uuid}'}/duplicate/

Duplicates an existing workflow. The duplicate is inactive by default and has a unique name unless you provide name.

Body params

NameTypeRequiredDescription
namestringNoCustom name for the duplicate. If omitted, a unique name is generated.
Request
curl -X POST "https://api.dailybot.com/v1/workflows/workflow-uuid/duplicate/" -H "X-API-KEY: your_api_key_here" -H "Content-Type: application/json" -d '{"name": "My Workflow copy"}'

Response examples

201 Created
json
{
  "uuid": "new-workflow-uuid",
  "name": "My Workflow copy",
  "description": "Description",
  "trigger_type": "command_execution",
  "active": false,
  "visible": true,
  "action_summary": "Send message",
  "metadata": {},
  "owner": { "uuid": "user-uuid", "full_name": "Jane" },
  "user_can_update": true,
  "user_can_delete": true,
  "total_runs": 0,
  "last_run_at": null,
  "created_at": "2026-02-25T11:00:00Z",
  "updated_at": "2026-02-25T11:00:00Z"
}
400 Bad Request
json
{
  "error": "Validation message"
}
403 Forbidden
json
{
  "error": "You don't have permission to duplicate this workflow"
}
404 Not Found
json
{
  "error": "Workflow not found"
}
500 Internal Server Error
json
{
  "error": "Failed to duplicate workflow"
}