Skip to main content
PATCH

Authorizations

Authorization
string
header
default:Bearer brew_your_api_key
required

Send your Brew API key as Authorization: Bearer brew_xxx.

Headers

X-Brand-Id
string

The brand this request acts on. REQUIRED for organization-scoped credentials (otherwise 400 BRAND_ID_REQUIRED — there is no default brand); list ids with GET /v1/brands. Brand-scoped credentials may omit it, and sending a different brand returns 403 BRAND_SCOPE_MISMATCH. A brand outside your organization returns 404 BRAND_NOT_FOUND.

Required string length: 1 - 64

Path Parameters

automationId
string
required

Automation id returned by POST /v1/automations and listed by GET /v1/automations.

Required string length: 1 - 64
Example:

"M3nRk8LqW2xT5vBp9YcZd"

Body

application/json
name
string
Required string length: 1 - 120
description
string
Maximum string length: 2000
nodes
object[]
Maximum array length: 500
connections
object[]
Maximum array length: 1000
triggerEventId
string
Required string length: 1 - 256
expectedBaseVersionId
string

Optimistic concurrency guard: the exact version read before deriving this update. Supply together with expectedBaseDefinitionSha256.

Required string length: 1 - 64
expectedBaseDefinitionSha256
string

Optimistic concurrency guard: SHA-256 of the exact definition read before deriving this update. Supply together with expectedBaseVersionId.

Pattern: ^[a-f0-9]{64}$
dryRun
boolean

Validate only — runs the full publish-gate check and returns blockers/warnings without writing.

published
boolean

Lifecycle action: true validates + publishes the STORED latest version (a saved edit goes live only after this); false unpublishes. Cannot be combined with field/graph updates — update first, then publish.

automationVersionId
string

Exact version to publish; requires published: true.

Required string length: 1 - 64
stopInFlight
boolean

With published: false only — ALSO permanently stop contacts already mid-flow (default: they drain to completion).

paused
boolean

Freeze (true) / resume (false) a LIVE automation without unpublishing; held contacts resume from the same point.

Response

Updated / published / unpublished — the bare automation row. For dryRun: true update requests, an AutomationDryRunReport instead (no writes).

automationId
string
required
Required string length: 1 - 64
automationVersionId
string
required
Required string length: 1 - 64
name
string
required
Required string length: 1 - 120
version
required
Required range: x >= 0
published
boolean
required
emailIds
string[]
required
Required string length: 1 - 64
triggerEventId
string
Required string length: 1 - 256
description
string
Maximum string length: 2000
isLive
boolean
liveVersion
Required range: x >= 0
liveAutomationVersionId
string
Required string length: 1 - 64
warnings
object[]
paused
boolean
pausedAt
number
nodes
object[]
connections
object[]
createdBy
string
createdAt
string<date-time>
updatedAt
string<date-time>
publishedAt
string<date-time>
versions
object[]