Scheduled Events
Scheduled events run an action on a schedule — invoke an agent, invoke a tool, or update an AutessaDB table. Events fire on a fixed interval, a cron expression, or once at a specific time. These poweruser endpoints cover the full lifecycle: create, update, enable/disable, execution history, sharing, ownership transfer, and deletion.
All endpoints are POST with a JSON body and require an Authorization header carrying your poweruser key. The acting user (for ownership, permissions, and sharing) is the user the poweruser key belongs to.
Base URL
https://api.autessa.com/autessa_poweruser/scheduled-events
Authentication
Pass your poweruser key in the Authorization header (no "Bearer" prefix):
Authorization: pwrusr:{id}:{secret}
Never embed a real key in code — read it from the environment.
curl https://api.autessa.com/autessa_poweruser/scheduled-events/all \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Schedule expressions
Every event's timing is defined by a scheduleSpec object — a discriminated union over the pattern field. There are exactly three patterns; only the nested object matching the pattern is present. The spec is compiled into a schedule expression (rate(...), cron(...), or at(...)), which is echoed back in the read-only cronExpression response field.
EVERY — fixed interval
Recurring at a fixed interval; maps to rate(value unit) (e.g. rate(30 minutes), rate(1 day)). Timezone-independent.
{ "pattern": "EVERY", "every": { "value": 30, "unit": "MINUTES" } }
- Name
every.value- Type
- integer
- Description
Positive integer (>= 1). E.g.
5for "every 5 minutes".
- Name
every.unit- Type
- string
- Description
One of
MINUTES,HOURS,DAYS.
CRON — recurring at specific times
Recurring on a cron expression evaluated in an IANA timezone; maps to cron(...). The expression is the 6-field AWS cron format:
minute hour day-of-month month day-of-week year
Rules the backend validates and enforces:
- Exactly 6 space-separated fields — do NOT include the
cron(...)wrapper. - Use
?in exactly one of day-of-month or day-of-week;*means "any". - Day-of-week is
1=Sunday through7=Saturday. timezoneis required and must be a valid IANA name (e.g.UTC,America/Los_Angeles).
{ "pattern": "CRON", "cron": { "expression": "0 9 * * ? *", "timezone": "UTC" } }
{ "pattern": "CRON", "cron": { "expression": "0 7 ? * 2 *", "timezone": "America/Los_Angeles" } }
{ "pattern": "CRON", "cron": { "expression": "0 0 1 * ? *", "timezone": "UTC" } }
- Name
cron.expression- Type
- string
- Description
6-field AWS cron expression (minute hour day-of-month month day-of-week year), without the
cron(...)wrapper.
- Name
cron.timezone- Type
- string
- Description
IANA timezone the expression is evaluated in, e.g.
UTC,America/Los_Angeles.
ONCE — one-time execution
Fires exactly once at a local wall-clock time in a timezone; maps to at(yyyy-mm-ddThh:mm:ss) (the backend converts the local time to UTC before writing the AWS schedule). The time must be in the future.
{ "pattern": "ONCE", "once": { "at": "2026-12-31T23:59:00", "timezone": "UTC" } }
- Name
once.at- Type
- string
- Description
Local wall-clock ISO-8601 datetime without offset, e.g.
2026-12-31T23:59:00. Interpreted inonce.timezone; must be in the future.
- Name
once.timezone- Type
- string
- Description
IANA timezone the wall-clock time is interpreted in.
Action types
The actionType field selects what the event does when it fires. Set exactly ONE matching config object (agentConfig, toolConfig, or autessaDbConfig) — the backend rejects requests with zero or multiple configs, and validates the config against the action type.
- Name
INVOKE_AGENT- Type
- agentConfig
- Description
Execute an agent with predefined input. Runs in single-turn mode (no conversation context) using a system key for your company.
- Name
INVOKE_TOOL- Type
- toolConfig
- Description
Execute a tool with static parameters defined at schedule creation time.
- Name
UPDATE_AUTESSADB- Type
- autessaDbConfig
- Description
Perform an INSERT or UPDATE operation on an AutessaDB table with predefined values.
agentConfig (INVOKE_AGENT)
- Name
agentExecutionRequest- Type
- object
- Description
The agent execution request, executed single-turn when the event fires.
- Name
agentExecutionRequest.agentId- Type
- string
- Description
The agent to execute, e.g.
"V1StGXR8Z5".
- Name
agentExecutionRequest.input- Type
- array<object>
- Description
Multimodal input array; must be non-empty. Text input:
{ "inputType": "TEXT", "content": "..." }.
- Name
agentExecutionRequest.environmentVariables- Type
- object
- Description
Key-value environment variables passed to the execution.
- Name
agentExecutionRequest.promptTemplateVariables- Type
- object
- Description
Key-value pairs injected into the agent's prompt template (
@@{variableName}@@syntax).
- Name
continueOnError- Type
- boolean
- Description
If
true, an agent failure is logged but the execution is marked successful. Defaultfalse(execution marked FAILED on error).
- Name
description- Type
- string
- Description
Optional description of what this scheduled agent run does.
toolConfig (INVOKE_TOOL)
- Name
toolExecutionRequest- Type
- object
- Description
The tool execution request, executed as-is when the event fires. No variable substitution from record data — parameters are static.
- Name
toolExecutionRequest.toolId- Type
- string
- Description
The tool to execute, e.g.
"kTn4vB2p9Q".
- Name
toolExecutionRequest.variables- Type
- object
- Description
Key-value tool input variables.
- Name
toolExecutionRequest.environmentVariables- Type
- object
- Description
Key-value environment variables for the tool run.
- Name
toolExecutionRequest.privateVariables- Type
- object
- Description
Key-value private variables (not logged).
- Name
continueOnError- Type
- boolean
- Description
If
true, a tool failure is logged but the execution is marked successful. Defaultfalse.
- Name
description- Type
- string
- Description
Optional description of what this scheduled tool run does.
autessaDbConfig (UPDATE_AUTESSADB)
- Name
operation- Type
- string
- Description
INSERT(add a record with predefined values) orUPDATE(modify existing records).
- Name
targetTableId- Type
- string
- Description
The AutessaDB table to write to, e.g.
"aB3xK9mQ2w".
- Name
values- Type
- object
- Description
Column values to insert/update. Map of column name to a typed value object, e.g.
{ "status": { "columnType": "SHORT_TEXT", "textValue": "archived" } }. Value objects carrycolumnTypeplus the matching field:textValue,integerValue,floatValue,booleanValue,multiSelectValue(array of strings), orfilePath.
- Name
recordId- Type
- integer
- Description
For single-row UPDATE: the specific record ID to update. Mutually exclusive with
whereGroups. Not allowed for INSERT.
- Name
whereGroups- Type
- array<object>
- Description
For batch UPDATE: WHERE condition groups matching the records to update. Each group has a
logicalOperator(AND/OR) and aconditionsarray. Mutually exclusive withrecordId. Not allowed for INSERT. UPDATE requires eitherrecordIdorwhereGroups.
- Name
groupsLogicalOperator- Type
- string
- Description
Logical operator between WHERE groups (
AND/OR). Only used withwhereGroups.
- Name
skipIfTargetTableMissing- Type
- boolean
- Description
If
true, skip the execution with a warning when the target table no longer exists. Defaultfalse(fail).
- Name
description- Type
- string
- Description
Optional description of what this scheduled DB operation does.
The scheduled event object
Endpoints that return an event (/all, /get, /create, /update) use this shape.
- Name
eventId- Type
- string
- Description
Unique event identifier (UUID string).
- Name
eventName- Type
- string
- Description
Display name of the event.
- Name
description- Type
- string
- Description
Description of what the event does.
- Name
resourceType- Type
- string
- Description
Target resource type derived from the action:
AGENT,TOOL, orTABLE.
- Name
resourceId- Type
- string
- Description
ID of the target resource (the agent, tool, or table the action operates on).
- Name
isRecurring- Type
- boolean
- Description
truefor EVERY/CRON schedules,falsefor one-time (ONCE) events.
- Name
enabled- Type
- boolean
- Description
Whether the schedule is currently active.
- Name
completed- Type
- boolean
- Description
trueonce a one-time (ONCE) event has fired. Completed events cannot be updated.
- Name
cronExpression- Type
- string
- Description
Read-only compiled schedule expression, e.g.
cron(0 9 * * ? *),rate(30 minutes), orat(2026-12-31T23:59:00).
- Name
scheduleSpec- Type
- object
- Description
The schedule as submitted — see Schedule expressions.
- Name
timezone- Type
- string
- Description
IANA timezone of the schedule (
nullfor EVERY schedules, which are timezone-independent).
- Name
nextExecutionAt- Type
- string
- Description
ISO-8601 timestamp of the next planned execution.
- Name
lastExecutedAt- Type
- string
- Description
ISO-8601 timestamp of the most recent execution, or
nullif never fired.
- Name
executionCount- Type
- integer
- Description
Number of times the event has executed.
- Name
sharingLevel- Type
- string
- Description
PRIVATE,SPECIFIC_MEMBER, orCOMPANY. New events startPRIVATE.
- Name
companyPermissionLevel- Type
- string
- Description
Access level granted company-wide when
sharingLevelisCOMPANY(READ,WRITE,PUBLISH, orADMIN); otherwisenull.
- Name
createdAt- Type
- string
- Description
ISO-8601 creation timestamp.
- Name
updatedAt- Type
- string
- Description
ISO-8601 last-modified timestamp.
- Name
userPermission- Type
- string
- Description
Your access level on this event:
READ,WRITE,PUBLISH, orADMIN.
- Name
actionType- Type
- string
- Description
INVOKE_AGENT,INVOKE_TOOL, orUPDATE_AUTESSADB— see Action types.
- Name
agentConfig- Type
- object
- Description
Present when
actionTypeisINVOKE_AGENT.
- Name
toolConfig- Type
- object
- Description
Present when
actionTypeisINVOKE_TOOL.
- Name
autessaDbConfig- Type
- object
- Description
Present when
actionTypeisUPDATE_AUTESSADB.
{
"eventId": "3f8a2c1e-9b4d-4a7e-b2c5-6d1e8f0a9b3c",
"eventName": "Daily summary",
"description": "Runs the reporting agent every morning",
"resourceType": "AGENT",
"resourceId": "V1StGXR8Z5",
"isRecurring": true,
"enabled": true,
"completed": false,
"cronExpression": "cron(0 9 * * ? *)",
"scheduleSpec": {
"pattern": "CRON",
"cron": { "expression": "0 9 * * ? *", "timezone": "UTC" }
},
"timezone": "UTC",
"nextExecutionAt": "2026-07-02T09:00:00",
"lastExecutedAt": "2026-07-01T09:00:00",
"executionCount": 42,
"sharingLevel": "PRIVATE",
"companyPermissionLevel": null,
"createdAt": "2026-05-14T18:22:10",
"updatedAt": "2026-06-30T08:15:44",
"userPermission": "ADMIN",
"actionType": "INVOKE_AGENT",
"agentConfig": {
"agentExecutionRequest": {
"agentId": "V1StGXR8Z5",
"input": [
{ "inputType": "TEXT", "content": "Generate the daily summary report." }
]
},
"continueOnError": false,
"description": "Daily summary agent run"
}
}
List All Events POST/all
Returns every scheduled event visible to you in the current company scope, split into three buckets: events you own, events shared company-wide, and events shared with you individually.
Request Body
- Name
(none)- Type
- object
- Description
Send an empty JSON object
{}.
Response
- Name
ownedEvents- Type
- array<object>
- Description
Events you own. Each entry is a scheduled event object;
userPermissionisADMIN.
- Name
companySharedEvents- Type
- array<object>
- Description
Events shared with the whole company;
userPermissionreflects the company-wide access level.
- Name
sharedWithMeEvents- Type
- array<object>
- Description
Events shared with you specifically;
userPermissionreflects your individual grant.
- Name
errors- Type
- array<string>
- Description
Error messages; absent on success.
curl https://api.autessa.com/autessa_poweruser/scheduled-events/all \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{}'
{
"ownedEvents": [
{
"eventId": "3f8a2c1e-9b4d-4a7e-b2c5-6d1e8f0a9b3c",
"eventName": "Daily summary",
"resourceType": "AGENT",
"resourceId": "V1StGXR8Z5",
"isRecurring": true,
"enabled": true,
"completed": false,
"cronExpression": "cron(0 9 * * ? *)",
"scheduleSpec": {
"pattern": "CRON",
"cron": { "expression": "0 9 * * ? *", "timezone": "UTC" }
},
"timezone": "UTC",
"nextExecutionAt": "2026-07-02T09:00:00",
"executionCount": 42,
"sharingLevel": "PRIVATE",
"userPermission": "ADMIN",
"actionType": "INVOKE_AGENT",
"agentConfig": {
"agentExecutionRequest": {
"agentId": "V1StGXR8Z5",
"input": [
{ "inputType": "TEXT", "content": "Generate the daily summary report." }
]
},
"continueOnError": false
}
}
],
"companySharedEvents": [],
"sharedWithMeEvents": []
}
Get Event POST/get
Fetches a single scheduled event by ID. You must have at least READ access (owner, individual share, or company share); otherwise the call returns 401 with an error.
Request Body
- Name
scheduledEventId- Type
- string
- Description
The event ID (UUID) to fetch.
Response
- Name
permission- Type
- string
- Description
Your access level on the event:
READ,WRITE,PUBLISH, orADMIN.
- Name
scheduledEvent- Type
- object
- Description
- Name
errors- Type
- array<string>
- Description
Error messages; absent on success.
curl https://api.autessa.com/autessa_poweruser/scheduled-events/get \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"scheduledEventId": "3f8a2c1e-9b4d-4a7e-b2c5-6d1e8f0a9b3c"
}'
{
"permission": "ADMIN",
"scheduledEvent": {
"eventId": "3f8a2c1e-9b4d-4a7e-b2c5-6d1e8f0a9b3c",
"eventName": "Daily summary",
"description": "Runs the reporting agent every morning",
"resourceType": "AGENT",
"resourceId": "V1StGXR8Z5",
"isRecurring": true,
"enabled": true,
"completed": false,
"cronExpression": "cron(0 9 * * ? *)",
"scheduleSpec": {
"pattern": "CRON",
"cron": { "expression": "0 9 * * ? *", "timezone": "UTC" }
},
"timezone": "UTC",
"nextExecutionAt": "2026-07-02T09:00:00",
"lastExecutedAt": "2026-07-01T09:00:00",
"executionCount": 42,
"sharingLevel": "PRIVATE",
"companyPermissionLevel": null,
"createdAt": "2026-05-14T18:22:10",
"updatedAt": "2026-06-30T08:15:44",
"userPermission": "ADMIN",
"actionType": "INVOKE_AGENT",
"agentConfig": {
"agentExecutionRequest": {
"agentId": "V1StGXR8Z5",
"input": [
{ "inputType": "TEXT", "content": "Generate the daily summary report." }
]
},
"continueOnError": false
}
}
}
Create Event POST/create
Creates a scheduled event. Creation is all-or-nothing — if any part of it fails, nothing is created and the error is returned. You become the event's owner with ADMIN permission; new events start with PRIVATE sharing.
Set actionType and exactly ONE matching config object — see Action types for each config's fields.
Request Body
- Name
eventName- Type
- string
- Description
Display name for the event. Must be non-blank.
- Name
description- Type
- string
- Description
Description of what the event does.
- Name
scheduleSpec- Type
- object
- Description
When the event fires — see Schedule expressions.
- Name
enabled- Type
- boolean
- Description
Whether the event is active immediately. Default
true.
- Name
actionType- Type
- string
- Description
INVOKE_AGENT,INVOKE_TOOL, orUPDATE_AUTESSADB.
- Name
agentConfig- Type
- object
- Description
Required when
actionTypeisINVOKE_AGENT— see agentConfig.
- Name
toolConfig- Type
- object
- Description
Required when
actionTypeisINVOKE_TOOL— see toolConfig.
- Name
autessaDbConfig- Type
- object
- Description
Required when
actionTypeisUPDATE_AUTESSADB— see autessaDbConfig.
Response
- Name
scheduledEvent- Type
- object
- Description
The created scheduled event object.
- Name
eventId- Type
- string
- Description
The new event's ID (UUID).
- Name
scheduleArn- Type
- string
- Description
ARN of the underlying schedule.
- Name
errors- Type
- array<string>
- Description
Error messages; absent on success.
- cURL
- JavaScript
- Python
curl https://api.autessa.com/autessa_poweruser/scheduled-events/create \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"eventName": "Daily summary",
"description": "Runs the reporting agent every morning",
"scheduleSpec": {
"pattern": "CRON",
"cron": { "expression": "0 9 * * ? *", "timezone": "UTC" }
},
"enabled": true,
"actionType": "INVOKE_AGENT",
"agentConfig": {
"agentExecutionRequest": {
"agentId": "V1StGXR8Z5",
"input": [
{ "inputType": "TEXT", "content": "Generate the daily summary report." }
],
"promptTemplateVariables": { "team": "Sales" }
},
"continueOnError": false,
"description": "Daily summary agent run"
}
}'
const response = await fetch(
'https://api.autessa.com/autessa_poweruser/scheduled-events/create',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': process.env.POWERUSER_KEY
},
body: JSON.stringify({
eventName: 'Daily summary',
description: 'Runs the reporting agent every morning',
scheduleSpec: {
pattern: 'CRON',
cron: { expression: '0 9 * * ? *', timezone: 'UTC' }
},
enabled: true,
actionType: 'INVOKE_AGENT',
agentConfig: {
agentExecutionRequest: {
agentId: 'V1StGXR8Z5',
input: [
{ inputType: 'TEXT', content: 'Generate the daily summary report.' }
],
promptTemplateVariables: { team: 'Sales' }
},
continueOnError: false,
description: 'Daily summary agent run'
}
})
}
);
const data = await response.json();
console.log(data.eventId);
import os
import requests
response = requests.post(
"https://api.autessa.com/autessa_poweruser/scheduled-events/create",
headers={"Authorization": os.environ["POWERUSER_KEY"]},
json={
"eventName": "Daily summary",
"description": "Runs the reporting agent every morning",
"scheduleSpec": {
"pattern": "CRON",
"cron": {"expression": "0 9 * * ? *", "timezone": "UTC"},
},
"enabled": True,
"actionType": "INVOKE_AGENT",
"agentConfig": {
"agentExecutionRequest": {
"agentId": "V1StGXR8Z5",
"input": [
{"inputType": "TEXT", "content": "Generate the daily summary report."}
],
"promptTemplateVariables": {"team": "Sales"},
},
"continueOnError": False,
"description": "Daily summary agent run",
},
},
)
data = response.json()
print(data["eventId"])
{
"scheduledEvent": {
"eventId": "3f8a2c1e-9b4d-4a7e-b2c5-6d1e8f0a9b3c",
"eventName": "Daily summary",
"description": "Runs the reporting agent every morning",
"resourceType": "AGENT",
"resourceId": "V1StGXR8Z5",
"isRecurring": true,
"enabled": true,
"completed": false,
"cronExpression": "cron(0 9 * * ? *)",
"scheduleSpec": {
"pattern": "CRON",
"cron": { "expression": "0 9 * * ? *", "timezone": "UTC" }
},
"timezone": "UTC",
"nextExecutionAt": "2026-07-02T09:00:00",
"executionCount": 0,
"sharingLevel": "PRIVATE",
"userPermission": "ADMIN",
"actionType": "INVOKE_AGENT",
"agentConfig": {
"agentExecutionRequest": {
"agentId": "V1StGXR8Z5",
"input": [
{ "inputType": "TEXT", "content": "Generate the daily summary report." }
],
"promptTemplateVariables": { "team": "Sales" }
},
"continueOnError": false,
"description": "Daily summary agent run"
}
},
"eventId": "3f8a2c1e-9b4d-4a7e-b2c5-6d1e8f0a9b3c",
"scheduleArn": "arn:aws:scheduler:us-east-1:123456789012:schedule/default/3f8a2c1e-9b4d-4a7e-b2c5-6d1e8f0a9b3c"
}
Update Event POST/update
Replaces an event's definition. This is a full replacement, not a patch: scheduleSpec, actionType, and the matching action config are re-validated and must all be supplied. Requires WRITE or ADMIN access. Completed one-time events and deleted events cannot be updated.
Request Body
- Name
scheduledEventId- Type
- string
- Description
The event ID (UUID) to update.
- Name
eventName- Type
- string
- Description
New display name.
- Name
description- Type
- string
- Description
New description.
- Name
scheduleSpec- Type
- object
- Description
The new schedule — see Schedule expressions. The next execution time is recalculated when the schedule changes.
- Name
actionType- Type
- string
- Description
INVOKE_AGENT,INVOKE_TOOL, orUPDATE_AUTESSADB.
- Name
agentConfig- Type
- object
- Description
Required when
actionTypeisINVOKE_AGENT— see agentConfig.
- Name
toolConfig- Type
- object
- Description
Required when
actionTypeisINVOKE_TOOL— see toolConfig.
- Name
autessaDbConfig- Type
- object
- Description
Required when
actionTypeisUPDATE_AUTESSADB— see autessaDbConfig.
Response
- Name
scheduledEvent- Type
- object
- Description
The updated scheduled event object.
- Name
errors- Type
- array<string>
- Description
Error messages; absent on success.
- cURL
- JavaScript
- Python
curl https://api.autessa.com/autessa_poweruser/scheduled-events/update \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"scheduledEventId": "3f8a2c1e-9b4d-4a7e-b2c5-6d1e8f0a9b3c",
"eventName": "CRM sync",
"description": "Sync CRM records every 30 minutes",
"scheduleSpec": {
"pattern": "EVERY",
"every": { "value": 30, "unit": "MINUTES" }
},
"actionType": "INVOKE_TOOL",
"toolConfig": {
"toolExecutionRequest": {
"toolId": "kTn4vB2p9Q",
"variables": { "mode": "incremental" }
},
"continueOnError": true
}
}'
const response = await fetch(
'https://api.autessa.com/autessa_poweruser/scheduled-events/update',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': process.env.POWERUSER_KEY
},
body: JSON.stringify({
scheduledEventId: '3f8a2c1e-9b4d-4a7e-b2c5-6d1e8f0a9b3c',
eventName: 'CRM sync',
description: 'Sync CRM records every 30 minutes',
scheduleSpec: {
pattern: 'EVERY',
every: { value: 30, unit: 'MINUTES' }
},
actionType: 'INVOKE_TOOL',
toolConfig: {
toolExecutionRequest: {
toolId: 'kTn4vB2p9Q',
variables: { mode: 'incremental' }
},
continueOnError: true
}
})
}
);
const data = await response.json();
import os
import requests
response = requests.post(
"https://api.autessa.com/autessa_poweruser/scheduled-events/update",
headers={"Authorization": os.environ["POWERUSER_KEY"]},
json={
"scheduledEventId": "3f8a2c1e-9b4d-4a7e-b2c5-6d1e8f0a9b3c",
"eventName": "CRM sync",
"description": "Sync CRM records every 30 minutes",
"scheduleSpec": {
"pattern": "EVERY",
"every": {"value": 30, "unit": "MINUTES"},
},
"actionType": "INVOKE_TOOL",
"toolConfig": {
"toolExecutionRequest": {
"toolId": "kTn4vB2p9Q",
"variables": {"mode": "incremental"},
},
"continueOnError": True,
},
},
)
data = response.json()
{
"scheduledEvent": {
"eventId": "3f8a2c1e-9b4d-4a7e-b2c5-6d1e8f0a9b3c",
"eventName": "CRM sync",
"description": "Sync CRM records every 30 minutes",
"resourceType": "TOOL",
"resourceId": "kTn4vB2p9Q",
"isRecurring": true,
"enabled": true,
"completed": false,
"cronExpression": "rate(30 minutes)",
"scheduleSpec": {
"pattern": "EVERY",
"every": { "value": 30, "unit": "MINUTES" }
},
"timezone": null,
"nextExecutionAt": "2026-07-01T12:30:00",
"executionCount": 42,
"sharingLevel": "PRIVATE",
"userPermission": "ADMIN",
"actionType": "INVOKE_TOOL",
"toolConfig": {
"toolExecutionRequest": {
"toolId": "kTn4vB2p9Q",
"variables": { "mode": "incremental" }
},
"continueOnError": true
}
}
}
Toggle Event POST/toggle
Enables or disables an event without changing its definition. Disabled events stay in place (schedule, config, history) but do not fire. Requires WRITE or ADMIN access.
Request Body
- Name
scheduledEventId- Type
- string
- Description
The event ID (UUID) to toggle.
- Name
enabled- Type
- boolean
- Description
trueto enable,falseto disable.
Response
- Name
eventId- Type
- string
- Description
The toggled event's ID.
- Name
enabled- Type
- boolean
- Description
The new enabled state.
- Name
errors- Type
- array<string>
- Description
Error messages; absent on success.
curl https://api.autessa.com/autessa_poweruser/scheduled-events/toggle \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"scheduledEventId": "3f8a2c1e-9b4d-4a7e-b2c5-6d1e8f0a9b3c",
"enabled": false
}'
{
"eventId": "3f8a2c1e-9b4d-4a7e-b2c5-6d1e8f0a9b3c",
"enabled": false
}
Get Execution History POST/history
Returns paginated execution history plus monthly statistics. Pass scheduledEventId to scope to one event (requires at least READ access to it), or omit it for history across all of your company's events. Results cover one calendar month (defaults to the current month), sorted newest first, 50 per page.
Request Body
- Name
scheduledEventId- Type
- string
- Description
Optional event ID (UUID). When omitted, history for all company events is returned.
- Name
page- Type
- integer
- Description
Zero-based page number. Default
0. Page size is fixed at 50.
- Name
month- Type
- integer
- Description
Calendar month 1-12. Both
monthandyearmust be set to select a month; otherwise the current month is used.
- Name
year- Type
- integer
- Description
Calendar year, e.g.
2026.
Response
- Name
executions- Type
- array<object>
- Description
Execution records for the page — fields below.
- Name
totalElements- Type
- integer
- Description
Number of executions returned after filtering.
- Name
totalPages- Type
- integer
- Description
Total pages available for the month.
- Name
currentPage- Type
- integer
- Description
Zero-based index of this page.
- Name
pageSize- Type
- integer
- Description
Page size (50).
- Name
hasNext- Type
- boolean
- Description
Whether a next page exists.
- Name
hasPrevious- Type
- boolean
- Description
Whether a previous page exists.
- Name
successCount- Type
- integer
- Description
Number of
SUCCESSexecutions in the month (for the selected scope).
- Name
failedCount- Type
- integer
- Description
Number of
FAILEDexecutions in the month.
- Name
successRate- Type
- float
- Description
Fraction of month executions that succeeded,
0.0-1.0.
- Name
averageDurationMs- Type
- float
- Description
Average execution duration in milliseconds. Only populated when
scheduledEventIdis provided;nullfor company-wide queries.
- Name
errors- Type
- array<string>
- Description
Error messages; absent on success.
Execution record fields
- Name
id- Type
- string
- Description
Unique execution record ID (UUID).
- Name
scheduledEventId- Type
- string
- Description
ID of the scheduled event that fired.
- Name
eventName- Type
- string
- Description
Event name at execution time.
- Name
resourceType- Type
- string
- Description
Target resource type:
AGENT,TOOL, orTABLE.
- Name
resourceId- Type
- string
- Description
ID of the target resource.
- Name
startedAt- Type
- string
- Description
ISO-8601 timestamp when execution started.
- Name
endedAt- Type
- string
- Description
ISO-8601 timestamp when execution finished.
- Name
durationMs- Type
- integer
- Description
Execution duration in milliseconds.
- Name
status- Type
- string
- Description
SUCCESSorFAILED.
- Name
errorMessage- Type
- string
- Description
Failure reason when
statusisFAILED;nullotherwise.
- Name
scheduledFireTime- Type
- string
- Description
ISO-8601 timestamp the event was scheduled to fire.
- Name
actualFireTime- Type
- string
- Description
ISO-8601 timestamp the event actually fired.
- Name
attemptNumber- Type
- integer
- Description
Retry attempt number (1 for the first attempt).
- Name
payloadJson- Type
- string
- Description
JSON string of the action payload that was executed.
- Name
responseJson- Type
- string
- Description
JSON string of the action's response.
- cURL
- JavaScript
- Python
curl https://api.autessa.com/autessa_poweruser/scheduled-events/history \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"scheduledEventId": "3f8a2c1e-9b4d-4a7e-b2c5-6d1e8f0a9b3c",
"page": 0,
"month": 6,
"year": 2026
}'
const response = await fetch(
'https://api.autessa.com/autessa_poweruser/scheduled-events/history',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': process.env.POWERUSER_KEY
},
body: JSON.stringify({
scheduledEventId: '3f8a2c1e-9b4d-4a7e-b2c5-6d1e8f0a9b3c',
page: 0,
month: 6,
year: 2026
})
}
);
const data = await response.json();
console.log(`${data.successCount} succeeded, ${data.failedCount} failed`);
import os
import requests
response = requests.post(
"https://api.autessa.com/autessa_poweruser/scheduled-events/history",
headers={"Authorization": os.environ["POWERUSER_KEY"]},
json={
"scheduledEventId": "3f8a2c1e-9b4d-4a7e-b2c5-6d1e8f0a9b3c",
"page": 0,
"month": 6,
"year": 2026,
},
)
data = response.json()
print(f"{data['successCount']} succeeded, {data['failedCount']} failed")
{
"executions": [
{
"id": "9c4d1e7f-2a3b-4c5d-8e9f-0a1b2c3d4e5f",
"scheduledEventId": "3f8a2c1e-9b4d-4a7e-b2c5-6d1e8f0a9b3c",
"eventName": "Daily summary",
"resourceType": "AGENT",
"resourceId": "V1StGXR8Z5",
"startedAt": "2026-06-30T09:00:01",
"endedAt": "2026-06-30T09:00:14",
"durationMs": 13204,
"status": "SUCCESS",
"errorMessage": null,
"scheduledFireTime": "2026-06-30T09:00:00",
"actualFireTime": "2026-06-30T09:00:01",
"attemptNumber": 1,
"payloadJson": "{\"agentExecutionRequest\":{\"agentId\":\"V1StGXR8Z5\"}}",
"responseJson": "{\"output\":[{\"outputType\":\"TEXT\",\"content\":\"Summary sent.\"}]}"
}
],
"totalElements": 30,
"totalPages": 1,
"currentPage": 0,
"pageSize": 50,
"hasNext": false,
"hasPrevious": false,
"successCount": 29,
"failedCount": 1,
"successRate": 0.9666666666666667,
"averageDurationMs": 12841.5
}
Delete Event POST/delete
Deletes a scheduled event. The AWS schedule is removed first, then the event is soft-deleted (execution history is retained). Requires ADMIN access. The operation is idempotent with respect to the AWS schedule.
Request Body
- Name
scheduledEventId- Type
- string
- Description
The event ID (UUID) to delete.
Response
- Name
eventId- Type
- string
- Description
The deleted event's ID.
- Name
deletedAt- Type
- string
- Description
ISO-8601 timestamp of the deletion.
- Name
errors- Type
- array<string>
- Description
Error messages; absent on success.
curl https://api.autessa.com/autessa_poweruser/scheduled-events/delete \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"scheduledEventId": "3f8a2c1e-9b4d-4a7e-b2c5-6d1e8f0a9b3c"
}'
{
"eventId": "3f8a2c1e-9b4d-4a7e-b2c5-6d1e8f0a9b3c",
"deletedAt": "2026-07-01T15:42:07"
}
Share Event POST/share
Updates an event's sharing settings. Requires ADMIN access. Set level to COMPANY with an accessLevel to share company-wide, or SPECIFIC_MEMBER with usersToAdd/usersToRemove for individual grants, or PRIVATE to unshare.
Request Body
- Name
scheduledEventId- Type
- string
- Description
The event ID (UUID) to share.
- Name
level- Type
- string
- Description
Target sharing level:
PRIVATE,SPECIFIC_MEMBER, orCOMPANY.
- Name
accessLevel- Type
- string
- Description
Company-wide access level when
levelisCOMPANY:READ,WRITE,PUBLISH, orADMIN.
- Name
usersToAdd- Type
- array<object>
- Description
Users to grant access to. Each entry:
userEmail(string),userId(string, e.g."uK4pT7vB1z"),accessLevel(string).
- Name
usersToRemove- Type
- array<object>
- Description
Users whose access to revoke; same entry shape as
usersToAdd.
Response
- Name
eventId- Type
- string
- Description
The event's ID.
- Name
sharingLevel- Type
- string
- Description
The event's sharing level after the update.
- Name
errors- Type
- array<string>
- Description
Error messages; absent on success.
curl https://api.autessa.com/autessa_poweruser/scheduled-events/share \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"scheduledEventId": "3f8a2c1e-9b4d-4a7e-b2c5-6d1e8f0a9b3c",
"level": "SPECIFIC_MEMBER",
"usersToAdd": [
{
"userEmail": "teammate@example.com",
"userId": "uK4pT7vB1z",
"accessLevel": "WRITE"
}
],
"usersToRemove": []
}'
{
"eventId": "3f8a2c1e-9b4d-4a7e-b2c5-6d1e8f0a9b3c",
"sharingLevel": "SPECIFIC_MEMBER"
}
Get Sharing Details POST/get-sharing-details
Returns the current sharing configuration for an event. You must have at least READ access.
Request Body
- Name
scheduledEventId- Type
- string
- Description
The event ID (UUID).
Response
- Name
sharingLevel- Type
- string
- Description
PRIVATE,SPECIFIC_MEMBER, orCOMPANY.
- Name
companyPermissionLevel- Type
- string
- Description
Company-wide access level when shared with the company;
nullotherwise.
- Name
sharedWith- Type
- array<object>
- Description
Individual grants. Each entry:
userEmail(string),userId(string),accessLevel(string).
- Name
userAccessLevel- Type
- string
- Description
Your access level on the event.
- Name
errors- Type
- array<string>
- Description
Error messages; absent on success.
curl https://api.autessa.com/autessa_poweruser/scheduled-events/get-sharing-details \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"scheduledEventId": "3f8a2c1e-9b4d-4a7e-b2c5-6d1e8f0a9b3c"
}'
{
"sharingLevel": "SPECIFIC_MEMBER",
"companyPermissionLevel": null,
"sharedWith": [
{
"userEmail": "teammate@example.com",
"userId": "uK4pT7vB1z",
"accessLevel": "WRITE"
}
],
"userAccessLevel": "ADMIN"
}
Transfer Ownership POST/transfer-ownership
Transfers ownership of an event to another user. Only the current owner can transfer, and the new owner must already have access to the event (share it with them first via /share).
Request Body
- Name
scheduledEventId- Type
- string
- Description
The event ID (UUID).
- Name
newOwnerId- Type
- string
- Description
ID of the user receiving ownership, e.g.
"uK4pT7vB1z".
Response
- Name
eventId- Type
- string
- Description
The event's ID.
- Name
newOwnerId- Type
- string
- Description
ID of the new owner.
- Name
errors- Type
- array<string>
- Description
Error messages; absent on success.
curl https://api.autessa.com/autessa_poweruser/scheduled-events/transfer-ownership \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"scheduledEventId": "3f8a2c1e-9b4d-4a7e-b2c5-6d1e8f0a9b3c",
"newOwnerId": "uK4pT7vB1z"
}'
{
"eventId": "3f8a2c1e-9b4d-4a7e-b2c5-6d1e8f0a9b3c",
"newOwnerId": "uK4pT7vB1z"
}
Errors
Failures return the errors array (array<string> of human-readable messages); it is absent on success. Server-side exceptions are caught and folded into errors rather than surfacing as raw stack traces. When errors is present the HTTP status is non-2xx.
401— invalid or missing poweruser key, or insufficient access to the event (e.g. updating without WRITE, deleting or sharing without ADMIN, transferring when you are not the owner).- Validation failures (blank
eventName, malformedscheduleSpec, missing/mismatched action config, cron expression not 6 fields,once.atin the past, invalid IANA timezone, UPDATE withoutrecordIdorwhereGroups) return the specific message inerrors. - Update/delete of a missing, deleted, or completed one-time event returns
errorswith the reason.
{
"errors": [
"User does not have write access to this scheduled event"
]
}