Skip to main content
POST

Authorizations

Authorization
string
header
default:Bearer brew_your_api_key
required

Send your Brew API key as Authorization: Bearer brew_xxx.

Headers

Idempotency-Key
string

Optional idempotency key for safe retries. Reusing the same key with the same request body returns the original response for 24 hours.

Required string length: 1 - 100
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

Body

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

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

dry_run
boolean

Accepted alias of dryRun.

Response

Dry-run result (returned only for dryRun: true; no writes). valid is false when any blockers[] entry or any blockingIssues[] entry is present. Create and update both return blockingIssues[] (possibly empty).

valid
boolean
required

Whether the graph would publish cleanly. false when any blockers[] entry or any blockingIssues[] entry is present.

blockers
object[]
required

Publish blockers (severity: "error"). Publishing fails while any remain.

warnings
object[]
required

Advisory findings (severity: "warning"). Publishing succeeds despite them.

nodeCounts
object
required

Per-kind node counts of the validated graph.

blockingIssues
object[]

Trigger-payload / draft-variable compatibility findings. Present (possibly empty) on POST and PATCH dry-run responses. valid is false when any entry is present.