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.

MethodEndpointDescription
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/API keyCLI Auth

Returns a paginated list of workflows. Supports search on name, date range filtering, and page-number pagination.

Query params

NameTypeRequiredDescription
searchstringNoCase-insensitive substring match on the workflow name. Max 256 chars — longer returns 400 search_query_too_long.
start_datestring (YYYY-MM-DD)NoFilter workflows created on/after this date (caller's timezone). Legacy aliases: date_start, date_from. Invalid values return 400 invalid_date_range.
end_datestring (YYYY-MM-DD)NoFilter workflows created on/before this date. Legacy aliases: date_end, date_to. Inverted ranges return 400 invalid_date_range.
filterstringNoall (default), me, others, active, inactive.
orderstringNoalphabetical (default), recent, total.
is_ascendbooleanNoSort direction. Default: false.
workflows_uuidsstringNoRestrict to UUIDs, separated by --.
pageintegerNoPage number (1-indexed). Default: 1.
page_sizeintegerNoItems per page. Default: 25, max: 100. Alias: limit. offset also accepted.
Request
curl "https://api.dailybot.com/v1/workflows/?search=onboarding&start_date=2026-06-01&end_date=2026-06-30&page_size=50" \
  -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}'}/API keyCLI Auth

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/API keyCLI Auth

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}'}/API keyCLI Auth

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}'}/API keyCLI Auth

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/API keyCLI Auth

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/API keyCLI Auth

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"
}