Skip to content

Automation

CompozyOS Automation HTTP endpoints.

For people running agent work32 pages in this section

List automation jobs

GET
/api/automation/jobs

Query Parameters

scope?string

Filter by automation scope

Value in"global""workspace""user""@user"
workspace_id?string

Filter by workspace id

all_workspaces?boolean

Read every definition

workspace_ids?array<string>

Project IDs or @user; requires all_workspaces=true

source?string

Filter by job source

Value in"config""package""dynamic"
target?string

Filter by target kind; task matches jobs with a task target

Value in"agent""loop""task"
enabled?boolean

Filter by enabled state

q?string

Search jobs by name, agent, prompt, scope, source, or schedule

cursor?string

Continue after this automation job cursor

limit?integer

Maximum number of records to return

Formatint32
profile?string

Read one profile's rows by name

all_profiles?boolean

Read the owner-labeled all-profiles aggregate

loop?string

Filter by Loop target name

Response Body

OK

application/json
  1. response
jobs*array<>
page*
curl -X GET "https://example.com/api/automation/jobs"
{  "jobs": [    {      "agent_name": "string",      "created_at": "2019-08-24T14:15:22Z",      "enabled": true,      "fire_limit": {        "max": 0,        "window": "string"      },      "id": "string",      "last_run": {        "ended_at": "2019-08-24T14:15:22Z",        "id": "string",        "skip_reason": "string",        "started_at": "2019-08-24T14:15:22Z",        "status": "scheduled"      },      "loop_target": {        "input_mapping": {          "property1": "string",          "property2": "string"        },        "inputs": {          "property1": null,          "property2": null        },        "loop_name": "string",        "workspace_id": "string"      },      "name": "string",      "next_run": "2019-08-24T14:15:22Z",      "profile_color": "string",      "profile_icon": "string",      "profile_id": "string",      "profile_name": "string",      "prompt": "string",      "retry": {        "base_delay": "string",        "max_retries": 0,        "strategy": "none"      },      "schedule": {        "catch_up_policy": "skip_missed",        "expr": "string",        "interval": "string",        "misfire_grace_seconds": 0,        "mode": "cron",        "time": "string"      },      "scheduler": {        "catch_up_policy": "skip_missed",        "consecutive_resume_failures": 0,        "job_id": "string",        "last_fire_id": "string",        "last_misfire_at": "2019-08-24T14:15:22Z",        "last_run_at": "2019-08-24T14:15:22Z",        "last_scheduled_at": "2019-08-24T14:15:22Z",        "misfire_count": 0,        "misfire_grace_seconds": 0,        "next_run_at": "2019-08-24T14:15:22Z",        "registered": true,        "updated_at": "2019-08-24T14:15:22Z"      },      "scope": "global",      "source": "config",      "target_kind": "string",      "task": {        "description": "string",        "owner": {          "kind": "human",          "ref": "string"        },        "title": "string"      },      "updated_at": "2019-08-24T14:15:22Z",      "workspace_id": "string"    }  ],  "page": {    "has_more": true,    "limit": 0,    "next_cursor": "string",    "total": 0  }}

Create an automation job

POST
/api/automation/jobs

Query Parameters

profile?string

Act as this profile by name

Request Body

JSON request body

application/json
  1. body
agent_name*string
Match^(?:|[a-z][a-z0-9_-]{0,105})$
Lengthlength <= 106
enabled?boolean|null
fire_limit?|
loop_target?|
name*string
prompt*string
retry?|
schedule*
scope*string
Value in"global""workspace""user""@user"
target_kind?string
task?|
workspace_id?string

Response Body

Created

application/json
  1. response
job*
curl -X POST "https://example.com/api/automation/jobs" \  -H "Content-Type: application/json" \  -d '{    "agent_name": "string",    "name": "string",    "prompt": "string",    "schedule": {      "mode": "cron"    },    "scope": "global"  }'
{  "job": {    "agent_name": "string",    "created_at": "2019-08-24T14:15:22Z",    "enabled": true,    "fire_limit": {      "max": 0,      "window": "string"    },    "id": "string",    "last_run": {      "ended_at": "2019-08-24T14:15:22Z",      "id": "string",      "skip_reason": "string",      "started_at": "2019-08-24T14:15:22Z",      "status": "scheduled"    },    "loop_target": {      "input_mapping": {        "property1": "string",        "property2": "string"      },      "inputs": {        "property1": null,        "property2": null      },      "loop_name": "string",      "workspace_id": "string"    },    "name": "string",    "next_run": "2019-08-24T14:15:22Z",    "profile_color": "string",    "profile_icon": "string",    "profile_id": "string",    "profile_name": "string",    "prompt": "string",    "retry": {      "base_delay": "string",      "max_retries": 0,      "strategy": "none"    },    "schedule": {      "catch_up_policy": "skip_missed",      "expr": "string",      "interval": "string",      "misfire_grace_seconds": 0,      "mode": "cron",      "time": "string"    },    "scheduler": {      "catch_up_policy": "skip_missed",      "consecutive_resume_failures": 0,      "job_id": "string",      "last_fire_id": "string",      "last_misfire_at": "2019-08-24T14:15:22Z",      "last_run_at": "2019-08-24T14:15:22Z",      "last_scheduled_at": "2019-08-24T14:15:22Z",      "misfire_count": 0,      "misfire_grace_seconds": 0,      "next_run_at": "2019-08-24T14:15:22Z",      "registered": true,      "updated_at": "2019-08-24T14:15:22Z"    },    "scope": "global",    "source": "config",    "target_kind": "string",    "task": {      "description": "string",      "owner": {        "kind": "human",        "ref": "string"      },      "title": "string"    },    "updated_at": "2019-08-24T14:15:22Z",    "workspace_id": "string"  }}

Get one automation job

GET
/api/automation/jobs/{id}

Path Parameters

id*string

Automation job id

Query Parameters

profile?string

Read one profile's rows by name

all_profiles?boolean

Read the owner-labeled all-profiles aggregate

Response Body

OK

application/json
  1. response
job*
curl -X GET "https://example.com/api/automation/jobs/string"
{  "job": {    "agent_name": "string",    "created_at": "2019-08-24T14:15:22Z",    "enabled": true,    "fire_limit": {      "max": 0,      "window": "string"    },    "id": "string",    "last_run": {      "ended_at": "2019-08-24T14:15:22Z",      "id": "string",      "skip_reason": "string",      "started_at": "2019-08-24T14:15:22Z",      "status": "scheduled"    },    "loop_target": {      "input_mapping": {        "property1": "string",        "property2": "string"      },      "inputs": {        "property1": null,        "property2": null      },      "loop_name": "string",      "workspace_id": "string"    },    "name": "string",    "next_run": "2019-08-24T14:15:22Z",    "profile_color": "string",    "profile_icon": "string",    "profile_id": "string",    "profile_name": "string",    "prompt": "string",    "retry": {      "base_delay": "string",      "max_retries": 0,      "strategy": "none"    },    "schedule": {      "catch_up_policy": "skip_missed",      "expr": "string",      "interval": "string",      "misfire_grace_seconds": 0,      "mode": "cron",      "time": "string"    },    "scheduler": {      "catch_up_policy": "skip_missed",      "consecutive_resume_failures": 0,      "job_id": "string",      "last_fire_id": "string",      "last_misfire_at": "2019-08-24T14:15:22Z",      "last_run_at": "2019-08-24T14:15:22Z",      "last_scheduled_at": "2019-08-24T14:15:22Z",      "misfire_count": 0,      "misfire_grace_seconds": 0,      "next_run_at": "2019-08-24T14:15:22Z",      "registered": true,      "updated_at": "2019-08-24T14:15:22Z"    },    "scope": "global",    "source": "config",    "target_kind": "string",    "task": {      "description": "string",      "owner": {        "kind": "human",        "ref": "string"      },      "title": "string"    },    "updated_at": "2019-08-24T14:15:22Z",    "workspace_id": "string"  }}
PATCH
/api/automation/jobs/{id}

Path Parameters

id*string

Automation job id

Query Parameters

profile?string

Act as this profile by name

Request Body

JSON request body

application/json
  1. body
enabled?boolean|null
fire_limit?|
loop_target?|
name?string|null
prompt?string|null
retry?|
schedule?|
task?|

Response Body

OK

application/json
  1. response
job*
curl -X PATCH "https://example.com/api/automation/jobs/string" \  -H "Content-Type: application/json" \  -d '{}'
{  "job": {    "agent_name": "string",    "created_at": "2019-08-24T14:15:22Z",    "enabled": true,    "fire_limit": {      "max": 0,      "window": "string"    },    "id": "string",    "last_run": {      "ended_at": "2019-08-24T14:15:22Z",      "id": "string",      "skip_reason": "string",      "started_at": "2019-08-24T14:15:22Z",      "status": "scheduled"    },    "loop_target": {      "input_mapping": {        "property1": "string",        "property2": "string"      },      "inputs": {        "property1": null,        "property2": null      },      "loop_name": "string",      "workspace_id": "string"    },    "name": "string",    "next_run": "2019-08-24T14:15:22Z",    "profile_color": "string",    "profile_icon": "string",    "profile_id": "string",    "profile_name": "string",    "prompt": "string",    "retry": {      "base_delay": "string",      "max_retries": 0,      "strategy": "none"    },    "schedule": {      "catch_up_policy": "skip_missed",      "expr": "string",      "interval": "string",      "misfire_grace_seconds": 0,      "mode": "cron",      "time": "string"    },    "scheduler": {      "catch_up_policy": "skip_missed",      "consecutive_resume_failures": 0,      "job_id": "string",      "last_fire_id": "string",      "last_misfire_at": "2019-08-24T14:15:22Z",      "last_run_at": "2019-08-24T14:15:22Z",      "last_scheduled_at": "2019-08-24T14:15:22Z",      "misfire_count": 0,      "misfire_grace_seconds": 0,      "next_run_at": "2019-08-24T14:15:22Z",      "registered": true,      "updated_at": "2019-08-24T14:15:22Z"    },    "scope": "global",    "source": "config",    "target_kind": "string",    "task": {      "description": "string",      "owner": {        "kind": "human",        "ref": "string"      },      "title": "string"    },    "updated_at": "2019-08-24T14:15:22Z",    "workspace_id": "string"  }}
DELETE
/api/automation/jobs/{id}

Path Parameters

id*string

Automation job id

Query Parameters

profile?string

Act as this profile by name

Response Body

No Content

curl -X DELETE "https://example.com/api/automation/jobs/string"
Empty
GET
/api/automation/jobs/{id}/runs

Path Parameters

id*string

Automation job id

Query Parameters

status?string

Filter by run status

Value in"scheduled""running""delegated""completed""failed""canceled"
since?string

Only runs started since this timestamp

Formatdate-time
until?string

Only runs started before this timestamp

Formatdate-time
limit?integer

Maximum number of records to return

Formatint32
profile?string

Read one profile's rows by name

all_profiles?boolean

Read the owner-labeled all-profiles aggregate

Response Body

OK

application/json
  1. response
page?|
runs*array<>
curl -X GET "https://example.com/api/automation/jobs/string/runs"
{  "page": {    "has_more": true,    "limit": 0,    "next_cursor": "string"  },  "runs": [    {      "attempt": 0,      "attribution": "string",      "delivery_error": "string",      "delivery_error_at": "2019-08-24T14:15:22Z",      "ended_at": "2019-08-24T14:15:22Z",      "error": "string",      "fire_id": "string",      "id": "string",      "job_id": "string",      "loop_run_id": "string",      "metadata": {        "property1": null,        "property2": null      },      "profile_color": "string",      "profile_icon": "string",      "profile_id": "string",      "profile_name": "string",      "scheduled_at": "2019-08-24T14:15:22Z",      "session_id": "string",      "started_at": "2019-08-24T14:15:22Z",      "status": "scheduled",      "task_id": "string",      "task_run_id": "string",      "trigger_id": "string",      "workspace_id": "string"    }  ]}
POST
/api/automation/jobs/{id}/trigger

Path Parameters

id*string

Automation job id

Query Parameters

profile?string

Act as this profile by name

Response Body

OK

application/json
  1. response
run*
curl -X POST "https://example.com/api/automation/jobs/string/trigger"
{  "run": {    "attempt": 0,    "attribution": "string",    "delivery_error": "string",    "delivery_error_at": "2019-08-24T14:15:22Z",    "ended_at": "2019-08-24T14:15:22Z",    "error": "string",    "fire_id": "string",    "id": "string",    "job_id": "string",    "loop_run_id": "string",    "metadata": {      "property1": null,      "property2": null    },    "profile_color": "string",    "profile_icon": "string",    "profile_id": "string",    "profile_name": "string",    "scheduled_at": "2019-08-24T14:15:22Z",    "session_id": "string",    "started_at": "2019-08-24T14:15:22Z",    "status": "scheduled",    "task_id": "string",    "task_run_id": "string",    "trigger_id": "string",    "workspace_id": "string"  }}

List automation runs

GET
/api/automation/runs

Query Parameters

workspace_id?string

Filter by source project; @user selects User

all_workspaces?boolean

Read every run, including unknown attribution

workspace_ids?array<string>

Source project IDs or @user; excludes unknown attribution

cursor?string

Opaque source-filter-bound cursor

job_id?string

Filter by automation job id

trigger_id?string

Filter by automation trigger id

status?string

Filter by run status

Value in"scheduled""running""delegated""completed""failed""canceled"
since?string

Only runs started since this timestamp

Formatdate-time
until?string

Only runs started before this timestamp

Formatdate-time
limit?integer

Maximum number of records to return

Formatint32
profile?string

Read one profile's rows by name

all_profiles?boolean

Read the owner-labeled all-profiles aggregate

Response Body

OK

application/json
  1. response
page?|
runs*array<>
curl -X GET "https://example.com/api/automation/runs"
{  "page": {    "has_more": true,    "limit": 0,    "next_cursor": "string"  },  "runs": [    {      "attempt": 0,      "attribution": "string",      "delivery_error": "string",      "delivery_error_at": "2019-08-24T14:15:22Z",      "ended_at": "2019-08-24T14:15:22Z",      "error": "string",      "fire_id": "string",      "id": "string",      "job_id": "string",      "loop_run_id": "string",      "metadata": {        "property1": null,        "property2": null      },      "profile_color": "string",      "profile_icon": "string",      "profile_id": "string",      "profile_name": "string",      "scheduled_at": "2019-08-24T14:15:22Z",      "session_id": "string",      "started_at": "2019-08-24T14:15:22Z",      "status": "scheduled",      "task_id": "string",      "task_run_id": "string",      "trigger_id": "string",      "workspace_id": "string"    }  ]}

Get one automation run

GET
/api/automation/runs/{id}

Path Parameters

id*string

Automation run id

Query Parameters

profile?string

Read one profile's rows by name

all_profiles?boolean

Read the owner-labeled all-profiles aggregate

Response Body

OK

application/json
  1. response
run*
curl -X GET "https://example.com/api/automation/runs/string"
{  "run": {    "attempt": 0,    "attribution": "string",    "delivery_error": "string",    "delivery_error_at": "2019-08-24T14:15:22Z",    "ended_at": "2019-08-24T14:15:22Z",    "error": "string",    "fire_id": "string",    "id": "string",    "job_id": "string",    "loop_run_id": "string",    "metadata": {      "property1": null,      "property2": null    },    "profile_color": "string",    "profile_icon": "string",    "profile_id": "string",    "profile_name": "string",    "scheduled_at": "2019-08-24T14:15:22Z",    "session_id": "string",    "started_at": "2019-08-24T14:15:22Z",    "status": "scheduled",    "task_id": "string",    "task_run_id": "string",    "trigger_id": "string",    "workspace_id": "string"  }}
GET
/api/automation/suggestions

Query Parameters

all_workspaces?boolean

Read all projects and User rows

workspace_ids?array<string>

Repeatable project IDs or @user; requires all_workspaces=true

status?string

Filter by suggestion status

Value in"pending""accepted""dismissed"

Response Body

OK

application/json
  1. response
suggestions*array<>
curl -X GET "https://example.com/api/automation/suggestions"
{  "suggestions": [    {      "created_at": "2019-08-24T14:15:22Z",      "dedup_key": "string",      "id": "string",      "payload": {        "agent_name": "string",        "created_at": "2019-08-24T14:15:22Z",        "enabled": true,        "fire_limit": {          "max": 0,          "window": "string"        },        "id": "string",        "last_run": {          "ended_at": "2019-08-24T14:15:22Z",          "id": "string",          "skip_reason": "string",          "started_at": "2019-08-24T14:15:22Z",          "status": "scheduled"        },        "loop_target": {          "input_mapping": {            "property1": "string",            "property2": "string"          },          "inputs": {            "property1": null,            "property2": null          },          "loop_name": "string",          "workspace_id": "string"        },        "name": "string",        "next_run": "2019-08-24T14:15:22Z",        "profile_color": "string",        "profile_icon": "string",        "profile_id": "string",        "profile_name": "string",        "prompt": "string",        "retry": {          "base_delay": "string",          "max_retries": 0,          "strategy": "none"        },        "schedule": {          "catch_up_policy": "skip_missed",          "expr": "string",          "interval": "string",          "misfire_grace_seconds": 0,          "mode": "cron",          "time": "string"        },        "scheduler": {          "catch_up_policy": "skip_missed",          "consecutive_resume_failures": 0,          "job_id": "string",          "last_fire_id": "string",          "last_misfire_at": "2019-08-24T14:15:22Z",          "last_run_at": "2019-08-24T14:15:22Z",          "last_scheduled_at": "2019-08-24T14:15:22Z",          "misfire_count": 0,          "misfire_grace_seconds": 0,          "next_run_at": "2019-08-24T14:15:22Z",          "registered": true,          "updated_at": "2019-08-24T14:15:22Z"        },        "scope": "global",        "source": "config",        "target_kind": "string",        "task": {          "description": "string",          "owner": {            "kind": "human",            "ref": "string"          },          "title": "string"        },        "updated_at": "2019-08-24T14:15:22Z",        "workspace_id": "string"      },      "profile_id": "string",      "resolved_at": "2019-08-24T14:15:22Z",      "source": "string",      "status": "string",      "workspace_id": "string"    }  ]}

List automation triggers

GET
/api/automation/triggers

Query Parameters

scope?string

Filter by automation scope

Value in"global""workspace""user""@user"
workspace_id?string

Filter by workspace id

all_workspaces?boolean

Read every definition

workspace_ids?array<string>

Project IDs or @user; requires all_workspaces=true

source?string

Filter by trigger source

Value in"config""package""dynamic"
target?string

Filter by target kind; task matches no trigger

Value in"agent""loop""task"
enabled?boolean

Filter by enabled state

event?string

Filter by trigger event

q?string

Search triggers by definition or filter fields

cursor?string

Continue after this automation trigger cursor

limit?integer

Maximum number of records to return

Formatint32
profile?string

Read one profile's rows by name

all_profiles?boolean

Read the owner-labeled all-profiles aggregate

loop?string

Filter by Loop target name

Response Body

OK

application/json
  1. response
page*
triggers*array<>
curl -X GET "https://example.com/api/automation/triggers"
{  "page": {    "has_more": true,    "limit": 0,    "next_cursor": "string",    "total": 0  },  "triggers": [    {      "agent_name": "string",      "created_at": "2019-08-24T14:15:22Z",      "enabled": true,      "endpoint_slug": "string",      "event": "string",      "filter": {        "property1": "string",        "property2": "string"      },      "fire_limit": {        "max": 0,        "window": "string"      },      "id": "string",      "ingress": {        "confirmed_at": "2019-08-24T14:15:22Z",        "confirmed_endpoint_generation": 0,        "enable_path": "string",        "endpoint_generation": 0,        "reachability": "string",        "scope_kind": "string",        "subject_id": "string",        "subject_kind": "string",        "url": "string",        "workspace_id": "string"      },      "last_run": {        "ended_at": "2019-08-24T14:15:22Z",        "id": "string",        "skip_reason": "string",        "started_at": "2019-08-24T14:15:22Z",        "status": "scheduled"      },      "loop_target": {        "input_mapping": {          "property1": "string",          "property2": "string"        },        "inputs": {          "property1": null,          "property2": null        },        "loop_name": "string",        "workspace_id": "string"      },      "name": "string",      "profile_color": "string",      "profile_icon": "string",      "profile_id": "string",      "profile_name": "string",      "prompt": "string",      "retry": {        "base_delay": "string",        "max_retries": 0,        "strategy": "none"      },      "scope": "global",      "source": "config",      "target_kind": "string",      "updated_at": "2019-08-24T14:15:22Z",      "webhook_id": "string",      "webhook_secret_hash": "string",      "webhook_secret_present": true,      "workspace_id": "string"    }  ]}
POST
/api/automation/triggers

Query Parameters

profile?string

Act as this profile by name

Request Body

JSON request body

application/json
  1. body
agent_name*string
Match^(?:|[a-z][a-z0-9_-]{0,105})$
Lengthlength <= 106
enabled?boolean|null
endpoint_slug?string
event*string
filter?
fire_limit?|
loop_target?|
name*string
prompt*string
retry?|
scope*string
Value in"global""workspace""user""@user"
target_kind?string
webhook_id?string
webhook_secret_value?string
workspace_id?string

Response Body

Created

application/json
  1. response
trigger*
curl -X POST "https://example.com/api/automation/triggers" \  -H "Content-Type: application/json" \  -d '{    "agent_name": "string",    "event": "string",    "name": "string",    "prompt": "string",    "scope": "global"  }'
{  "trigger": {    "agent_name": "string",    "created_at": "2019-08-24T14:15:22Z",    "enabled": true,    "endpoint_slug": "string",    "event": "string",    "filter": {      "property1": "string",      "property2": "string"    },    "fire_limit": {      "max": 0,      "window": "string"    },    "id": "string",    "ingress": {      "confirmed_at": "2019-08-24T14:15:22Z",      "confirmed_endpoint_generation": 0,      "enable_path": "string",      "endpoint_generation": 0,      "reachability": "string",      "scope_kind": "string",      "subject_id": "string",      "subject_kind": "string",      "url": "string",      "workspace_id": "string"    },    "last_run": {      "ended_at": "2019-08-24T14:15:22Z",      "id": "string",      "skip_reason": "string",      "started_at": "2019-08-24T14:15:22Z",      "status": "scheduled"    },    "loop_target": {      "input_mapping": {        "property1": "string",        "property2": "string"      },      "inputs": {        "property1": null,        "property2": null      },      "loop_name": "string",      "workspace_id": "string"    },    "name": "string",    "profile_color": "string",    "profile_icon": "string",    "profile_id": "string",    "profile_name": "string",    "prompt": "string",    "retry": {      "base_delay": "string",      "max_retries": 0,      "strategy": "none"    },    "scope": "global",    "source": "config",    "target_kind": "string",    "updated_at": "2019-08-24T14:15:22Z",    "webhook_id": "string",    "webhook_secret_hash": "string",    "webhook_secret_present": true,    "workspace_id": "string"  }}
GET
/api/automation/triggers/{id}

Path Parameters

id*string

Automation trigger id

Query Parameters

profile?string

Read one profile's rows by name

all_profiles?boolean

Read the owner-labeled all-profiles aggregate

Response Body

OK

application/json
  1. response
trigger*
curl -X GET "https://example.com/api/automation/triggers/string"
{  "trigger": {    "agent_name": "string",    "created_at": "2019-08-24T14:15:22Z",    "enabled": true,    "endpoint_slug": "string",    "event": "string",    "filter": {      "property1": "string",      "property2": "string"    },    "fire_limit": {      "max": 0,      "window": "string"    },    "id": "string",    "ingress": {      "confirmed_at": "2019-08-24T14:15:22Z",      "confirmed_endpoint_generation": 0,      "enable_path": "string",      "endpoint_generation": 0,      "reachability": "string",      "scope_kind": "string",      "subject_id": "string",      "subject_kind": "string",      "url": "string",      "workspace_id": "string"    },    "last_run": {      "ended_at": "2019-08-24T14:15:22Z",      "id": "string",      "skip_reason": "string",      "started_at": "2019-08-24T14:15:22Z",      "status": "scheduled"    },    "loop_target": {      "input_mapping": {        "property1": "string",        "property2": "string"      },      "inputs": {        "property1": null,        "property2": null      },      "loop_name": "string",      "workspace_id": "string"    },    "name": "string",    "profile_color": "string",    "profile_icon": "string",    "profile_id": "string",    "profile_name": "string",    "prompt": "string",    "retry": {      "base_delay": "string",      "max_retries": 0,      "strategy": "none"    },    "scope": "global",    "source": "config",    "target_kind": "string",    "updated_at": "2019-08-24T14:15:22Z",    "webhook_id": "string",    "webhook_secret_hash": "string",    "webhook_secret_present": true,    "workspace_id": "string"  }}
PATCH
/api/automation/triggers/{id}

Path Parameters

id*string

Automation trigger id

Query Parameters

profile?string

Act as this profile by name

Request Body

JSON request body

application/json
  1. body
enabled?boolean|null
endpoint_slug?string|null
event?string|null
filter?
fire_limit?|
loop_target?|
name?string|null
prompt?string|null
retry?|
webhook_id?string|null
webhook_secret_value?string|null

Response Body

OK

application/json
  1. response
trigger*
curl -X PATCH "https://example.com/api/automation/triggers/string" \  -H "Content-Type: application/json" \  -d '{}'
{  "trigger": {    "agent_name": "string",    "created_at": "2019-08-24T14:15:22Z",    "enabled": true,    "endpoint_slug": "string",    "event": "string",    "filter": {      "property1": "string",      "property2": "string"    },    "fire_limit": {      "max": 0,      "window": "string"    },    "id": "string",    "ingress": {      "confirmed_at": "2019-08-24T14:15:22Z",      "confirmed_endpoint_generation": 0,      "enable_path": "string",      "endpoint_generation": 0,      "reachability": "string",      "scope_kind": "string",      "subject_id": "string",      "subject_kind": "string",      "url": "string",      "workspace_id": "string"    },    "last_run": {      "ended_at": "2019-08-24T14:15:22Z",      "id": "string",      "skip_reason": "string",      "started_at": "2019-08-24T14:15:22Z",      "status": "scheduled"    },    "loop_target": {      "input_mapping": {        "property1": "string",        "property2": "string"      },      "inputs": {        "property1": null,        "property2": null      },      "loop_name": "string",      "workspace_id": "string"    },    "name": "string",    "profile_color": "string",    "profile_icon": "string",    "profile_id": "string",    "profile_name": "string",    "prompt": "string",    "retry": {      "base_delay": "string",      "max_retries": 0,      "strategy": "none"    },    "scope": "global",    "source": "config",    "target_kind": "string",    "updated_at": "2019-08-24T14:15:22Z",    "webhook_id": "string",    "webhook_secret_hash": "string",    "webhook_secret_present": true,    "workspace_id": "string"  }}
DELETE
/api/automation/triggers/{id}

Path Parameters

id*string

Automation trigger id

Query Parameters

profile?string

Act as this profile by name

Response Body

No Content

curl -X DELETE "https://example.com/api/automation/triggers/string"
Empty
GET
/api/automation/triggers/{id}/runs

Path Parameters

id*string

Automation trigger id

Query Parameters

status?string

Filter by run status

Value in"scheduled""running""delegated""completed""failed""canceled"
since?string

Only runs started since this timestamp

Formatdate-time
until?string

Only runs started before this timestamp

Formatdate-time
limit?integer

Maximum number of records to return

Formatint32
profile?string

Read one profile's rows by name

all_profiles?boolean

Read the owner-labeled all-profiles aggregate

Response Body

OK

application/json
  1. response
page?|
runs*array<>
curl -X GET "https://example.com/api/automation/triggers/string/runs"
{  "page": {    "has_more": true,    "limit": 0,    "next_cursor": "string"  },  "runs": [    {      "attempt": 0,      "attribution": "string",      "delivery_error": "string",      "delivery_error_at": "2019-08-24T14:15:22Z",      "ended_at": "2019-08-24T14:15:22Z",      "error": "string",      "fire_id": "string",      "id": "string",      "job_id": "string",      "loop_run_id": "string",      "metadata": {        "property1": null,        "property2": null      },      "profile_color": "string",      "profile_icon": "string",      "profile_id": "string",      "profile_name": "string",      "scheduled_at": "2019-08-24T14:15:22Z",      "session_id": "string",      "started_at": "2019-08-24T14:15:22Z",      "status": "scheduled",      "task_id": "string",      "task_run_id": "string",      "trigger_id": "string",      "workspace_id": "string"    }  ]}
POST
/api/webhooks/global/{endpoint}

Path Parameters

endpoint*string

Webhook endpoint slug and id

Query Parameters

profile?string

Act as this profile by name

Header Parameters

X-Compozy-Webhook-Delivery-ID*string

Unique webhook delivery id

X-Compozy-Webhook-Timestamp*string

Signed webhook timestamp

X-Compozy-Webhook-Signature*string

Signed webhook HMAC signature

Request Body

JSON request body

application/json
  1. body
[key: string]?unknown

Response Body

OK

application/json
  1. response
result*
curl -X POST "https://example.com/api/webhooks/global/string" \  -H "X-Compozy-Webhook-Delivery-ID: string" \  -H "X-Compozy-Webhook-Timestamp: string" \  -H "X-Compozy-Webhook-Signature: string" \  -H "Content-Type: application/json" \  -d '{    "property1": null,    "property2": null  }'
{  "result": {    "matched": 0,    "runs": [      {        "attempt": 0,        "attribution": "string",        "delivery_error": "string",        "delivery_error_at": "2019-08-24T14:15:22Z",        "ended_at": "2019-08-24T14:15:22Z",        "error": "string",        "fire_id": "string",        "id": "string",        "job_id": "string",        "loop_run_id": "string",        "metadata": {          "property1": null,          "property2": null        },        "profile_color": "string",        "profile_icon": "string",        "profile_id": "string",        "profile_name": "string",        "scheduled_at": "2019-08-24T14:15:22Z",        "session_id": "string",        "started_at": "2019-08-24T14:15:22Z",        "status": "scheduled",        "task_id": "string",        "task_run_id": "string",        "trigger_id": "string",        "workspace_id": "string"      }    ]  }}
POST
/api/webhooks/workspaces/{workspace_id}/{endpoint}

Path Parameters

workspace_id*string

Workspace id

endpoint*string

Webhook endpoint slug and id

Query Parameters

profile?string

Act as this profile by name

Header Parameters

X-Compozy-Webhook-Delivery-ID*string

Unique webhook delivery id

X-Compozy-Webhook-Timestamp*string

Signed webhook timestamp

X-Compozy-Webhook-Signature*string

Signed webhook HMAC signature

Request Body

JSON request body

application/json
  1. body
[key: string]?unknown

Response Body

OK

application/json
  1. response
result*
curl -X POST "https://example.com/api/webhooks/workspaces/string/string" \  -H "X-Compozy-Webhook-Delivery-ID: string" \  -H "X-Compozy-Webhook-Timestamp: string" \  -H "X-Compozy-Webhook-Signature: string" \  -H "Content-Type: application/json" \  -d '{    "property1": null,    "property2": null  }'
{  "result": {    "matched": 0,    "runs": [      {        "attempt": 0,        "attribution": "string",        "delivery_error": "string",        "delivery_error_at": "2019-08-24T14:15:22Z",        "ended_at": "2019-08-24T14:15:22Z",        "error": "string",        "fire_id": "string",        "id": "string",        "job_id": "string",        "loop_run_id": "string",        "metadata": {          "property1": null,          "property2": null        },        "profile_color": "string",        "profile_icon": "string",        "profile_id": "string",        "profile_name": "string",        "scheduled_at": "2019-08-24T14:15:22Z",        "session_id": "string",        "started_at": "2019-08-24T14:15:22Z",        "status": "scheduled",        "task_id": "string",        "task_run_id": "string",        "trigger_id": "string",        "workspace_id": "string"      }    ]  }}
GET
/api/workspaces/{workspace_id}/automation/suggestions

Path Parameters

workspace_id*string

Workspace id

Query Parameters

status?string

Filter by suggestion status

Value in"pending""accepted""dismissed"

Response Body

OK

application/json
  1. response
suggestions*array<>
curl -X GET "https://example.com/api/workspaces/string/automation/suggestions"
{  "suggestions": [    {      "created_at": "2019-08-24T14:15:22Z",      "dedup_key": "string",      "id": "string",      "payload": {        "agent_name": "string",        "created_at": "2019-08-24T14:15:22Z",        "enabled": true,        "fire_limit": {          "max": 0,          "window": "string"        },        "id": "string",        "last_run": {          "ended_at": "2019-08-24T14:15:22Z",          "id": "string",          "skip_reason": "string",          "started_at": "2019-08-24T14:15:22Z",          "status": "scheduled"        },        "loop_target": {          "input_mapping": {            "property1": "string",            "property2": "string"          },          "inputs": {            "property1": null,            "property2": null          },          "loop_name": "string",          "workspace_id": "string"        },        "name": "string",        "next_run": "2019-08-24T14:15:22Z",        "profile_color": "string",        "profile_icon": "string",        "profile_id": "string",        "profile_name": "string",        "prompt": "string",        "retry": {          "base_delay": "string",          "max_retries": 0,          "strategy": "none"        },        "schedule": {          "catch_up_policy": "skip_missed",          "expr": "string",          "interval": "string",          "misfire_grace_seconds": 0,          "mode": "cron",          "time": "string"        },        "scheduler": {          "catch_up_policy": "skip_missed",          "consecutive_resume_failures": 0,          "job_id": "string",          "last_fire_id": "string",          "last_misfire_at": "2019-08-24T14:15:22Z",          "last_run_at": "2019-08-24T14:15:22Z",          "last_scheduled_at": "2019-08-24T14:15:22Z",          "misfire_count": 0,          "misfire_grace_seconds": 0,          "next_run_at": "2019-08-24T14:15:22Z",          "registered": true,          "updated_at": "2019-08-24T14:15:22Z"        },        "scope": "global",        "source": "config",        "target_kind": "string",        "task": {          "description": "string",          "owner": {            "kind": "human",            "ref": "string"          },          "title": "string"        },        "updated_at": "2019-08-24T14:15:22Z",        "workspace_id": "string"      },      "profile_id": "string",      "resolved_at": "2019-08-24T14:15:22Z",      "source": "string",      "status": "string",      "workspace_id": "string"    }  ]}
POST
/api/workspaces/{workspace_id}/automation/suggestions/{suggestion_id}/accept

Path Parameters

workspace_id*string

Workspace id

suggestion_id*string

Automation suggestion id

Response Body

OK

application/json
  1. response
job*
suggestion*
curl -X POST "https://example.com/api/workspaces/string/automation/suggestions/string/accept"
{  "job": {    "agent_name": "string",    "created_at": "2019-08-24T14:15:22Z",    "enabled": true,    "fire_limit": {      "max": 0,      "window": "string"    },    "id": "string",    "last_run": {      "ended_at": "2019-08-24T14:15:22Z",      "id": "string",      "skip_reason": "string",      "started_at": "2019-08-24T14:15:22Z",      "status": "scheduled"    },    "loop_target": {      "input_mapping": {        "property1": "string",        "property2": "string"      },      "inputs": {        "property1": null,        "property2": null      },      "loop_name": "string",      "workspace_id": "string"    },    "name": "string",    "next_run": "2019-08-24T14:15:22Z",    "profile_color": "string",    "profile_icon": "string",    "profile_id": "string",    "profile_name": "string",    "prompt": "string",    "retry": {      "base_delay": "string",      "max_retries": 0,      "strategy": "none"    },    "schedule": {      "catch_up_policy": "skip_missed",      "expr": "string",      "interval": "string",      "misfire_grace_seconds": 0,      "mode": "cron",      "time": "string"    },    "scheduler": {      "catch_up_policy": "skip_missed",      "consecutive_resume_failures": 0,      "job_id": "string",      "last_fire_id": "string",      "last_misfire_at": "2019-08-24T14:15:22Z",      "last_run_at": "2019-08-24T14:15:22Z",      "last_scheduled_at": "2019-08-24T14:15:22Z",      "misfire_count": 0,      "misfire_grace_seconds": 0,      "next_run_at": "2019-08-24T14:15:22Z",      "registered": true,      "updated_at": "2019-08-24T14:15:22Z"    },    "scope": "global",    "source": "config",    "target_kind": "string",    "task": {      "description": "string",      "owner": {        "kind": "human",        "ref": "string"      },      "title": "string"    },    "updated_at": "2019-08-24T14:15:22Z",    "workspace_id": "string"  },  "suggestion": {    "created_at": "2019-08-24T14:15:22Z",    "dedup_key": "string",    "id": "string",    "payload": {      "agent_name": "string",      "created_at": "2019-08-24T14:15:22Z",      "enabled": true,      "fire_limit": {        "max": 0,        "window": "string"      },      "id": "string",      "last_run": {        "ended_at": "2019-08-24T14:15:22Z",        "id": "string",        "skip_reason": "string",        "started_at": "2019-08-24T14:15:22Z",        "status": "scheduled"      },      "loop_target": {        "input_mapping": {          "property1": "string",          "property2": "string"        },        "inputs": {          "property1": null,          "property2": null        },        "loop_name": "string",        "workspace_id": "string"      },      "name": "string",      "next_run": "2019-08-24T14:15:22Z",      "profile_color": "string",      "profile_icon": "string",      "profile_id": "string",      "profile_name": "string",      "prompt": "string",      "retry": {        "base_delay": "string",        "max_retries": 0,        "strategy": "none"      },      "schedule": {        "catch_up_policy": "skip_missed",        "expr": "string",        "interval": "string",        "misfire_grace_seconds": 0,        "mode": "cron",        "time": "string"      },      "scheduler": {        "catch_up_policy": "skip_missed",        "consecutive_resume_failures": 0,        "job_id": "string",        "last_fire_id": "string",        "last_misfire_at": "2019-08-24T14:15:22Z",        "last_run_at": "2019-08-24T14:15:22Z",        "last_scheduled_at": "2019-08-24T14:15:22Z",        "misfire_count": 0,        "misfire_grace_seconds": 0,        "next_run_at": "2019-08-24T14:15:22Z",        "registered": true,        "updated_at": "2019-08-24T14:15:22Z"      },      "scope": "global",      "source": "config",      "target_kind": "string",      "task": {        "description": "string",        "owner": {          "kind": "human",          "ref": "string"        },        "title": "string"      },      "updated_at": "2019-08-24T14:15:22Z",      "workspace_id": "string"    },    "profile_id": "string",    "resolved_at": "2019-08-24T14:15:22Z",    "source": "string",    "status": "string",    "workspace_id": "string"  }}
POST
/api/workspaces/{workspace_id}/automation/suggestions/{suggestion_id}/dismiss

Path Parameters

workspace_id*string

Workspace id

suggestion_id*string

Automation suggestion id

Response Body

OK

application/json
  1. response
suggestion*
curl -X POST "https://example.com/api/workspaces/string/automation/suggestions/string/dismiss"
{  "suggestion": {    "created_at": "2019-08-24T14:15:22Z",    "dedup_key": "string",    "id": "string",    "payload": {      "agent_name": "string",      "created_at": "2019-08-24T14:15:22Z",      "enabled": true,      "fire_limit": {        "max": 0,        "window": "string"      },      "id": "string",      "last_run": {        "ended_at": "2019-08-24T14:15:22Z",        "id": "string",        "skip_reason": "string",        "started_at": "2019-08-24T14:15:22Z",        "status": "scheduled"      },      "loop_target": {        "input_mapping": {          "property1": "string",          "property2": "string"        },        "inputs": {          "property1": null,          "property2": null        },        "loop_name": "string",        "workspace_id": "string"      },      "name": "string",      "next_run": "2019-08-24T14:15:22Z",      "profile_color": "string",      "profile_icon": "string",      "profile_id": "string",      "profile_name": "string",      "prompt": "string",      "retry": {        "base_delay": "string",        "max_retries": 0,        "strategy": "none"      },      "schedule": {        "catch_up_policy": "skip_missed",        "expr": "string",        "interval": "string",        "misfire_grace_seconds": 0,        "mode": "cron",        "time": "string"      },      "scheduler": {        "catch_up_policy": "skip_missed",        "consecutive_resume_failures": 0,        "job_id": "string",        "last_fire_id": "string",        "last_misfire_at": "2019-08-24T14:15:22Z",        "last_run_at": "2019-08-24T14:15:22Z",        "last_scheduled_at": "2019-08-24T14:15:22Z",        "misfire_count": 0,        "misfire_grace_seconds": 0,        "next_run_at": "2019-08-24T14:15:22Z",        "registered": true,        "updated_at": "2019-08-24T14:15:22Z"      },      "scope": "global",      "source": "config",      "target_kind": "string",      "task": {        "description": "string",        "owner": {          "kind": "human",          "ref": "string"        },        "title": "string"      },      "updated_at": "2019-08-24T14:15:22Z",      "workspace_id": "string"    },    "profile_id": "string",    "resolved_at": "2019-08-24T14:15:22Z",    "source": "string",    "status": "string",    "workspace_id": "string"  }}