OpenAPI Specification
openapi: 3.0.3
info:
title: Duvo Public Agent Folders Schedules API
description: Public API for programmatic access to Duvo. Authenticate with API keys created in the Duvo dashboard.
version: 1.0.0
servers:
- url: https://api.duvo.ai
description: Production server
tags:
- name: Schedules
description: List schedules configured for an agent
paths:
/v2/agents/{agent_id}/schedules:
post:
operationId: createSchedule
tags:
- Schedules
description: Create a schedule for an agent. The schedule fires against the agent's live build. The authenticated user owns the schedule.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
enabled:
type: boolean
frequency:
type: string
enum:
- every_5_minutes
- every_15_minutes
- hourly
- daily
- workday
- weekly
- monthly
- custom
time:
nullable: true
type: string
timezone:
type: string
day:
nullable: true
type: string
enum:
- monday
- tuesday
- wednesday
- thursday
- friday
- saturday
- sunday
day_of_month:
nullable: true
type: integer
minimum: 1
maximum: 31
cron:
nullable: true
type: string
recurring:
nullable: true
type: boolean
required:
- enabled
- frequency
- timezone
parameters:
- schema:
type: string
format: uuid
in: path
name: agent_id
required: true
description: The agent's unique identifier
security:
- bearerAuth: []
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
id:
type: string
build_id:
type: string
agent_id:
type: string
user_id:
type: string
enabled:
type: boolean
frequency:
type: string
enum:
- every_5_minutes
- every_15_minutes
- hourly
- daily
- workday
- weekly
- monthly
- custom
time:
nullable: true
type: string
timezone:
type: string
day:
nullable: true
type: string
day_of_month:
nullable: true
type: number
cron:
nullable: true
type: string
source:
nullable: true
type: string
task:
nullable: true
type: string
recurring:
nullable: true
type: boolean
auto_disabled_at:
nullable: true
type: string
auto_disabled_reason:
nullable: true
type: string
consecutive_missing_connection_failures:
type: integer
minimum: 0
maximum: 9007199254740991
first_missing_connection_failure_at:
nullable: true
type: string
last_missing_connection_failure_at:
nullable: true
type: string
created_at:
type: string
updated_at:
type: string
user_name:
nullable: true
type: string
user_email:
nullable: true
type: string
required:
- id
- build_id
- agent_id
- user_id
- enabled
- frequency
- time
- timezone
- day
- day_of_month
- cron
- source
- task
- recurring
- auto_disabled_at
- auto_disabled_reason
- consecutive_missing_connection_failures
- first_missing_connection_failure_at
- last_missing_connection_failure_at
- created_at
- updated_at
additionalProperties: false
'400':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'401':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'403':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'404':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'500':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
summary: Create Schedule
get:
operationId: listAgentSchedules
tags:
- Schedules
description: List all schedules configured for an agent. Returns the schedules you own on this agent.
parameters:
- schema:
type: string
format: uuid
in: path
name: agent_id
required: true
description: The agent's unique identifier
security:
- bearerAuth: []
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
schedules:
type: array
items:
type: object
properties:
id:
type: string
build_id:
type: string
agent_id:
type: string
user_id:
type: string
enabled:
type: boolean
frequency:
type: string
enum:
- every_5_minutes
- every_15_minutes
- hourly
- daily
- workday
- weekly
- monthly
- custom
time:
nullable: true
type: string
timezone:
type: string
day:
nullable: true
type: string
day_of_month:
nullable: true
type: number
cron:
nullable: true
type: string
source:
nullable: true
type: string
task:
nullable: true
type: string
recurring:
nullable: true
type: boolean
auto_disabled_at:
nullable: true
type: string
auto_disabled_reason:
nullable: true
type: string
consecutive_missing_connection_failures:
type: integer
minimum: 0
maximum: 9007199254740991
first_missing_connection_failure_at:
nullable: true
type: string
last_missing_connection_failure_at:
nullable: true
type: string
created_at:
type: string
updated_at:
type: string
user_name:
nullable: true
type: string
user_email:
nullable: true
type: string
required:
- id
- build_id
- agent_id
- user_id
- enabled
- frequency
- time
- timezone
- day
- day_of_month
- cron
- source
- task
- recurring
- auto_disabled_at
- auto_disabled_reason
- consecutive_missing_connection_failures
- first_missing_connection_failure_at
- last_missing_connection_failure_at
- created_at
- updated_at
additionalProperties: false
description: Schedules the authenticated user owns on this agent
required:
- schedules
additionalProperties: false
'401':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'403':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'500':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
summary: List Agent Schedules
/v2/agents/{agent_id}/schedules/{schedule_id}:
patch:
operationId: updateSchedule
tags:
- Schedules
description: Update fields on an existing schedule. Only supplied fields are changed; omitted fields retain their current values. Owners may update their own schedules; team superadmins may update any schedule on agents in the current team.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
enabled:
type: boolean
frequency:
type: string
enum:
- every_5_minutes
- every_15_minutes
- hourly
- daily
- workday
- weekly
- monthly
- custom
time:
nullable: true
type: string
timezone:
type: string
day:
nullable: true
type: string
enum:
- monday
- tuesday
- wednesday
- thursday
- friday
- saturday
- sunday
day_of_month:
nullable: true
type: integer
minimum: 1
maximum: 31
cron:
nullable: true
type: string
recurring:
nullable: true
type: boolean
parameters:
- schema:
type: string
format: uuid
in: path
name: agent_id
required: true
description: The agent's unique identifier
- schema:
type: string
format: uuid
in: path
name: schedule_id
required: true
description: The schedule's unique identifier
security:
- bearerAuth: []
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
id:
type: string
build_id:
type: string
agent_id:
type: string
user_id:
type: string
enabled:
type: boolean
frequency:
type: string
enum:
- every_5_minutes
- every_15_minutes
- hourly
- daily
- workday
- weekly
- monthly
- custom
time:
nullable: true
type: string
timezone:
type: string
day:
nullable: true
type: string
day_of_month:
nullable: true
type: number
cron:
nullable: true
type: string
source:
nullable: true
type: string
task:
nullable: true
type: string
recurring:
nullable: true
type: boolean
auto_disabled_at:
nullable: true
type: string
auto_disabled_reason:
nullable: true
type: string
consecutive_missing_connection_failures:
type: integer
minimum: 0
maximum: 9007199254740991
first_missing_connection_failure_at:
nullable: true
type: string
last_missing_connection_failure_at:
nullable: true
type: string
created_at:
type: string
updated_at:
type: string
user_name:
nullable: true
type: string
user_email:
nullable: true
type: string
required:
- id
- build_id
- agent_id
- user_id
- enabled
- frequency
- time
- timezone
- day
- day_of_month
- cron
- source
- task
- recurring
- auto_disabled_at
- auto_disabled_reason
- consecutive_missing_connection_failures
- first_missing_connection_failure_at
- last_missing_connection_failure_at
- created_at
- updated_at
additionalProperties: false
'400':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'401':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'403':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'404':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'500':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
summary: Update Schedule
delete:
operationId: deleteSchedule
tags:
- Schedules
description: Delete a schedule. Owners may delete their own schedules; team superadmins may delete any schedule on agents in the current team.
parameters:
- schema:
type: string
format: uuid
in: path
name: agent_id
required: true
description: The agent's unique identifier
- schema:
type: string
format: uuid
in: path
name: schedule_id
required: true
description: The schedule's unique identifier
security:
- bearerAuth: []
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- true
required:
- success
additionalProperties: false
'401':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'403':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'404':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
'500':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
additionalProperties: false
summary: Delete Schedule
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: API key authentication. Get your API key from the Duvo dashboard.