---
title: "Create an automation"
method: POST
path: "/v1/automations"
tags: ["Adam API"]
---

# Create an automation

`POST /v1/automations`

Recurring schedules require cron; one-time schedules require runAt; webhook automations require triggerEvent.

## Headers

- `Idempotency-Key` string

## Request body

- CreatePublicApiAutomationRequestDto
  - `name` string, required
  - `prompt` string, required
  - `effort` 'low' | 'medium' | 'high' | 'xhigh', nullable
  - `enabled` boolean
  - `visibility` 'private' | 'team'
  - `trigger` 'schedule' | 'webhook', required
  - `type` 'recurring' | 'one_time', required
  - `cron` string
  - `timezone` string
  - `runAt` string, date-time
  - `triggerProvider` 'composio'
  - `triggerEvent` string
  - `triggerApp` string
  - `triggerConfig` object

## Response `201`

- GetPublicApiAutomationResponseDto
  - `automation` object, required
    - `id` string, uuid, required
    - `name` string, required
    - `prompt` string, required
    - `effort` 'low' | 'medium' | 'high' | 'xhigh', nullable, required
    - `enabled` boolean, required
    - `trigger` 'schedule' | 'webhook', required
    - `type` 'recurring' | 'one_time', required
    - `cron` string, nullable, required
    - `timezone` string, required
    - `runAt` string, date-time, nullable, required
    - `nextRunAt` string, date-time, nullable, required
    - `triggerProvider` 'composio', nullable, required
    - `triggerEvent` string, nullable, required
    - `triggerApp` string, nullable, required
    - `triggerConfig` object, nullable, required
    - `taskId` string, uuid, nullable, required
    - `visibility` 'private' | 'team', required
    - `lastRunAt` string, date-time, nullable, required
    - `lastStatus` 'running' | 'completed' | 'failed' | 'skipped', nullable, required
    - `runCount` integer, required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required

## Other responses

- `400` — Invalid request
- `401` — Missing or invalid Bearer credential
- `402` — Payment or subscription required
- `403` — Credential is missing a required scope
- `404` — Resource not found
- `409` — Request conflict
- `429` — Rate limit exceeded
- `500` — Internal API error

---

[API](https://skmtc.dev/adam/apis/adam-api.md) · [All operations](https://skmtc.dev/adam/apis/adam-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/adam/adam-api/revisions/51dcac1f99da/schema)
