Reports whether a fire would start anything right now, and everything a caller needs to wire one. Runs the same credential, brand scope and permission gates a real fire hits, without firing.
Use when wiring an external service, before sending a live event.
Returns200 { ready, blockers[], payloadSchema, endpoint, publishedAutomations, counts, delivery? }. A NO_PUBLISHED_AUTOMATION blocker with ready: false means the trigger resolves and the credential passes, but nothing published listens for it yet, so a fire would start no runs. That stays a 200 because a probe has to report why a fire would not work.
delivery appears for an integration trigger whose source sends only the events set up at its end (a Shopify shop sends a topic only to its own webhook): whether Brew has received that event, and what to set up when it has not. It never changes ready.
Errors404 TRIGGER_EVENT_NOT_FOUND for an unknown or cross-brand id; 409 TRIGGER_NOT_FIREABLE for a Brew event trigger, which Brew starts itself.
See alsofireTrigger, getTriggerContract, listTriggers.
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.
Trigger id returned by POST /v1/automations/triggers. Custom triggers use tri_… ids; integration triggers use composite ids (e.g. clerk:org_…:brand_…:user.created, URL-encode the colons).
Required string length: 1 - 256
Example:
"user_signed_up"
Response
The readiness report: whether a fire would start runs, and everything needed to wire the caller.
Integration triggers only: whether Brew has received this event from its source (none_recent: not in the 90-day receipt window). Never affects ready.
Show child attributes
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Brew Help Docs","colors":{"primary":"#FF772D","light":"#FF772D","dark":"#FF772D"},"logo":{"light":"https://mintcdn.com/brew-796f053a/QjuRdMJynrgWDqeo/logo/lightmode.svg?fit=max\u0026auto=format\u0026n=QjuRdMJynrgWDqeo\u0026q=85\u0026s=5e906ff65142dc905a773e7747b47816","dark":"https://mintcdn.com/brew-796f053a/QjuRdMJynrgWDqeo/logo/darkmode.svg?fit=max\u0026auto=format\u0026n=QjuRdMJynrgWDqeo\u0026q=85\u0026s=d9aa0d94ceaaf92451334849952286c9","href":"https://brew.new/"},"favicon":"https://mintcdn.com/brew-796f053a/QjuRdMJynrgWDqeo/favicon.svg?fit=max\u0026auto=format\u0026n=QjuRdMJynrgWDqeo\u0026q=85\u0026s=bb65587bb488372fc3a5faa7a6b4d2fe","appearance":{"default":"system","strict":false},"background":{"color":{"light":"#f7f7f7","dark":"#262624"}},"navbar":{"links":[{"href":"https://cal.com/team/brewdotnew/brew-demo","label":"Talk with founders"}],"primary":{"type":"button","label":"Log In","href":"https://brew.new/sign-in"}},"footer":{"socials":{"website":"https://www.brew.new","youtube":"https://www.youtube.com/@brewdotnew","twitter":"https://x.com/brewdotnew","linkedin":"https://www.linkedin.com/company/brewdotnew"}},"search":{"prompt":"Ask any question about Brew"},"seo":{"metatags":{"og:image":"https://docs.brew.new/images/og/default.png","description":"Brew is the AI-native email platform for modern teams and AI agents. Describe the email and Brew designs it on brand, builds the audience, and sends it.","keywords":"AI email marketing, Brew, AI-native email platform, on-brand email, email automations, email analytics, AI agents, MCP email server","robots":"index, follow"},"indexing":"all"},"fonts":{"family":"Inter"},"contextual":{"options":["copy","view","claude","chatgpt","grok","perplexity","mcp","cursor","vscode","download-spec"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"brew-796f053a","hasAudioNarration":false,"actualSubdomain":"brew-796f053a","customDomains":["docs.brew.new"],"gitSource":{"type":"github","owner":"getbrew","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aee1463523750835f01043f","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"default","tag":"Developers","count":175},{"language":"default","tag":"Public API v1","count":126},{"language":"default","tag":"Changelog","count":86},{"language":"default","tag":"Docs","count":40},{"language":"default","tag":"2026","count":37},{"language":"default","tag":"Integrations","count":33},{"language":"default","tag":"Emails","count":30},{"language":"default","tag":"Automations","count":29},{"language":"default","tag":"Guides","count":27},{"language":"default","tag":"API Contracts","count":14}]},"assistantConfig":{"deflection":{"enabled":true,"email":"philip@brew.new","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/public-v1/automations/check-a-trigger-is-ready-to-fire","slug":"/api-reference/public-v1/automations/check-a-trigger-is-ready-to-fire","pageMetadata":{"title":"Check a trigger is ready to fire","description":"Reports whether a fire would start anything right now, and everything a caller needs to wire one. Runs the same credential, brand scope and permission gates a real fire hits, without firing.\n\n**Use when** wiring an external service, before sending a live event.\n\n**Returns** `200 { ready, blockers[], payloadSchema, endpoint, publishedAutomations, counts, delivery? }`. A `NO_PUBLISHED_AUTOMATION` blocker with `ready: false` means the trigger resolves and the credential passes, but nothing published listens for it yet, so a fire would start no runs. That stays a 200 because a probe has to report why a fire would not work.\n\n`delivery` appears for an integration trigger whose source sends only the events set up at its end (a Shopify shop sends a topic only to its own webhook): whether Brew has received that event, and what to set up when it has not. It never changes `ready`.\n\n**Errors** `404 TRIGGER_EVENT_NOT_FOUND` for an unknown or cross-brand id; `409 TRIGGER_NOT_FIREABLE` for a Brew event trigger, which Brew starts itself.\n\n**See also** `fireTrigger`, `getTriggerContract`, `listTriggers`.","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/automations/triggers/{triggerEventId}/readiness","href":"/api-reference/public-v1/automations/check-a-trigger-is-ready-to-fire","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Reports whether a fire would start anything right now, and everything a caller needs to wire one. Runs the same credential, brand scope and permission gates a real fire hits, without firing.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Use when\"\n }), \" wiring an external service, before sending a live event.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Returns\"\n }), \" \", _jsx(_components.code, {\n children: \"200 { ready, blockers[], payloadSchema, endpoint, publishedAutomations, counts, delivery? }\"\n }), \". A \", _jsx(_components.code, {\n children: \"NO_PUBLISHED_AUTOMATION\"\n }), \" blocker with \", _jsx(_components.code, {\n children: \"ready: false\"\n }), \" means the trigger resolves and the credential passes, but nothing published listens for it yet, so a fire would start no runs. That stays a 200 because a probe has to report why a fire would not work.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"delivery\"\n }), \" appears for an integration trigger whose source sends only the events set up at its end (a Shopify shop sends a topic only to its own webhook): whether Brew has received that event, and what to set up when it has not. It never changes \", _jsx(_components.code, {\n children: \"ready\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Errors\"\n }), \" \", _jsx(_components.code, {\n children: \"404 TRIGGER_EVENT_NOT_FOUND\"\n }), \" for an unknown or cross-brand id; \", _jsx(_components.code, {\n children: \"409 TRIGGER_NOT_FIREABLE\"\n }), \" for a Brew event trigger, which Brew starts itself.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"See also\"\n }), \" \", _jsx(_components.code, {\n children: \"fireTrigger\"\n }), \", \", _jsx(_components.code, {\n children: \"getTriggerContract\"\n }), \", \", _jsx(_components.code, {\n children: \"listTriggers\"\n }), \".\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Check a trigger is ready to fire","description":"Reports whether a fire would start anything right now, and everything a caller needs to wire one. Runs the same credential, brand scope and permission gates a real fire hits, without firing.\n\n**Use when** wiring an external service, before sending a live event.\n\n**Returns** `200 { ready, blockers[], payloadSchema, endpoint, publishedAutomations, counts, delivery? }`. A `NO_PUBLISHED_AUTOMATION` blocker with `ready: false` means the trigger resolves and the credential passes, but nothing published listens for it yet, so a fire would start no runs. That stays a 200 because a probe has to report why a fire would not work.\n\n`delivery` appears for an integration trigger whose source sends only the events set up at its end (a Shopify shop sends a topic only to its own webhook): whether Brew has received that event, and what to set up when it has not. It never changes `ready`.\n\n**Errors** `404 TRIGGER_EVENT_NOT_FOUND` for an unknown or cross-brand id; `409 TRIGGER_NOT_FIREABLE` for a Brew event trigger, which Brew starts itself.\n\n**See also** `fireTrigger`, `getTriggerContract`, `listTriggers`.","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/automations/triggers/{triggerEventId}/readiness","href":"/api-reference/public-v1/automations/check-a-trigger-is-ready-to-fire","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/brew-796f053a/b7b4876a6d26628c/ask-ai-menu.js"],"openApiReferenceData":{"operation":{"operationId":"checkTriggerReady","tags":["Automations"],"summary":"Check a trigger is ready to fire","description":"Reports whether a fire would start anything right now, and everything a caller needs to wire one. Runs the same credential, brand scope and permission gates a real fire hits, without firing.\n\n**Use when** wiring an external service, before sending a live event.\n\n**Returns** `200 { ready, blockers[], payloadSchema, endpoint, publishedAutomations, counts, delivery? }`. A `NO_PUBLISHED_AUTOMATION` blocker with `ready: false` means the trigger resolves and the credential passes, but nothing published listens for it yet, so a fire would start no runs. That stays a 200 because a probe has to report why a fire would not work.\n\n`delivery` appears for an integration trigger whose source sends only the events set up at its end (a Shopify shop sends a topic only to its own webhook): whether Brew has received that event, and what to set up when it has not. It never changes `ready`.\n\n**Errors** `404 TRIGGER_EVENT_NOT_FOUND` for an unknown or cross-brand id; `409 TRIGGER_NOT_FIREABLE` for a Brew event trigger, which Brew starts itself.\n\n**See also** `fireTrigger`, `getTriggerContract`, `listTriggers`.","parameters":["2fb65533-392b-4501-bd99-c1f37301c7c7","7e3fd886-806c-4334-a556-806a07a2923e"],"responses":{"200":"affd3c20-b7f1-49d1-a483-7b3392e01a96","400":"2a3c5ce4-edbe-4819-9270-f0e34d157079","401":"c4c0e3fe-7cdd-4803-8edc-901021d416a8","403":"8bee16b3-5333-43ed-b10a-6f3843f10136","404":"9765e87c-13b0-4d5d-b7bc-c5b25aef955d","409":"a41d063c-fcc7-4721-b794-5081ff2edae4","429":"f8cb657d-6e37-4afd-bb40-e064d291f45b","500":"3eef22ce-4eaa-4c96-a95c-e3e91b8f3f66"},"x-brew-scope":"automations","x-brew-brand-scope":"brand","x-brew-idempotency":"none","x-brew-credited":false,"x-brew-rate-policy":"automation.runs.read","method":"get","type":"path","servers":["16779731-d97b-4178-b35d-ab9db802c966","d75b81f5-e341-4448-9191-a43a58d2508e"],"security":["3becd03d-c396-4bc3-84c1-231cdbf0a23e","a3a3e731-b20f-48f7-873a-3123be78670a"],"path":"/v1/automations/triggers/{triggerEventId}/readiness","baseUrlOptions":["https://brew.new/api","http://localhost:3000/api"],"title":"Check a trigger is ready to fire","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"2fb65533-392b-4501-bd99-c1f37301c7c7":{"schema":{"type":"string","minLength":1,"maxLength":256,"description":"Trigger id returned by `POST /v1/automations/triggers`. Custom triggers use `tri_…` ids; integration triggers use composite ids (e.g. `clerk:org_…:brand_…:user.created`, URL-encode the colons).","example":"user_signed_up","isRequired":true,"uniqueKey":"","typeLabel":"string"},"required":true,"description":"Trigger id returned by `POST /v1/automations/triggers`. Custom triggers use `tri_…` ids; integration triggers use composite ids (e.g. `clerk:org_…:brand_…:user.created`, URL-encode the colons).","name":"triggerEventId","in":"path"},"7e3fd886-806c-4334-a556-806a07a2923e":{"name":"X-Brand-Id","in":"header","required":false,"description":"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`.","schema":{"type":"string","minLength":1,"maxLength":64,"isRequired":false,"description":"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`.","uniqueKey":"","typeLabel":"string"},"example":"kx7b3s7fapqz8mjm12ekz1kxdx87yceg"}},"responses":{"affd3c20-b7f1-49d1-a483-7b3392e01a96":{"description":"The readiness report: whether a fire would start runs, and everything needed to wire the caller.","headers":{"x-request-id":{"schema":{"type":"string","description":"Unique request identifier. Share this with support when debugging a request.","example":"req_8cac13fd94e6420cacdd75a1aa403a28"},"required":true,"description":"Unique request identifier. Share this with support when debugging a request."},"X-RateLimit-Limit":{"schema":{"type":"integer","description":"Requests allowed in the current rolling rate limit window.","example":100},"required":true,"description":"Requests allowed in the current rolling rate limit window."},"X-RateLimit-Remaining":{"schema":{"type":"integer","description":"Requests remaining in the current rolling rate limit window.","example":99},"required":true,"description":"Requests remaining in the current rolling rate limit window."},"X-RateLimit-Reset":{"schema":{"type":"integer","description":"Unix timestamp in seconds when the oldest recorded request leaves the rolling window.","example":1712592360},"required":true,"description":"Unix timestamp in seconds when the oldest recorded request leaves the rolling window."}},"content":{"application/json":{"schema":{"type":"object","properties":{"triggerEventId":{"type":"string","minLength":1,"maxLength":256,"isRequired":true,"uniqueKey":"triggerEventId","typeLabel":"string"},"ready":{"type":"boolean","description":"True when a fire right now would start at least one run.","isRequired":true,"uniqueKey":"ready","typeLabel":"boolean"},"blockers":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","enum":["NO_PUBLISHED_AUTOMATION"],"isRequired":true,"uniqueKey":"blockers.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"blockers.items.[INDEX].message","typeLabel":"string"}},"required":["code","message"],"additionalProperties":false,"uniqueKey":"blockers.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"blockers","typeLabel":"object[]"},"publishedAutomations":{"type":"array","items":{"type":"object","properties":{"automationId":{"type":"string","isRequired":true,"uniqueKey":"publishedAutomations.items.[INDEX].automationId","typeLabel":"string"},"name":{"type":"string","uniqueKey":"publishedAutomations.items.[INDEX].name","typeLabel":"string"},"primaryFromAddress":{"type":"string","uniqueKey":"publishedAutomations.items.[INDEX].primaryFromAddress","typeLabel":"string"}},"required":["automationId"],"additionalProperties":{"oneOf":[{}],"uniqueKey":"publishedAutomations.items.[INDEX].additionalProperties","typeLabel":"any"},"uniqueKey":"publishedAutomations.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"publishedAutomations","typeLabel":"object[]"},"counts":{"type":"object","properties":{"automations":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"counts.automations","typeLabel":"integer"},"skipped":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"counts.skipped","typeLabel":"integer"}},"required":["automations","skipped"],"additionalProperties":false,"isRequired":true,"uniqueKey":"counts","typeLabel":"object"},"title":{"type":"string","uniqueKey":"title","typeLabel":"string"},"description":{"type":"string","uniqueKey":"description","typeLabel":"string"},"provider":{"type":"string","uniqueKey":"provider","typeLabel":"string"},"providerEventKey":{"type":"string","uniqueKey":"providerEventKey","typeLabel":"string"},"payloadSchema":{"type":"object","properties":{"type":{"type":"string","enum":["object"],"isRequired":true,"uniqueKey":"payloadSchema.type","typeLabel":"enum\u003cstring>"},"fields":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","minLength":1,"description":"Email/automation variable name, e.g. firstName. Use descriptive keys; fields have no separate description.","isRequired":true,"uniqueKey":"payloadSchema.fields.items.[INDEX].key","typeLabel":"string"},"type":{"type":"string","enum":["string","int","boolean","object","array"],"isRequired":true,"uniqueKey":"payloadSchema.fields.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"required":{"type":"boolean","description":"True when the inbound payload must carry this key for the trigger to fire.","isRequired":true,"uniqueKey":"payloadSchema.fields.items.[INDEX].required","typeLabel":"boolean"},"fallbackValue":{"oneOf":[{"type":"string","description":"Substitution value when the inbound payload is missing this field. Also used as the email agent's `e.g. {{ key | fallback }}` example. Scalar leaves only.","uniqueKey":"payloadSchema.fields.items.[INDEX].fallbackValue.oneOf.0","typeLabel":"string"},{"type":"number","description":"Substitution value when the inbound payload is missing this field. Also used as the email agent's `e.g. {{ key | fallback }}` example. Scalar leaves only.","uniqueKey":"payloadSchema.fields.items.[INDEX].fallbackValue.oneOf.1","typeLabel":"number"},{"type":"boolean","description":"Substitution value when the inbound payload is missing this field. Also used as the email agent's `e.g. {{ key | fallback }}` example. Scalar leaves only.","uniqueKey":"payloadSchema.fields.items.[INDEX].fallbackValue.oneOf.2","typeLabel":"boolean"}],"uniqueKey":"payloadSchema.fields.items.[INDEX].fallbackValue","typeLabel":"string | number | boolean"},"pii":{"type":"string","enum":["none","low","high"],"description":"PII classification for redaction. \"high\" auto-redacts the value in execution logs and the inbound log. \"low\" (default when omitted) preserves the value. \"none\" is an explicit marker that the field is non-personal. On a container, \"high\" redacts the whole subtree.","uniqueKey":"payloadSchema.fields.items.[INDEX].pii","typeLabel":"enum\u003cstring>"},"secret":{"type":"boolean","description":"True for a value used only to render this email: never stored on contacts, in logs or analytics; cannot be used in filters, splits or recipient fields. Scalars only, never `email`. False explicitly permits ordinary PII outside rendering; pii still controls log masking. When omitted, legacy high-PII scalar protection applies except for email and top-level firstName/lastName.","uniqueKey":"payloadSchema.fields.items.[INDEX].secret","typeLabel":"boolean"},"children":{"type":"array","items":{"$circularRef":"1a0b2a43-3e97-4aea-906e-d879d89886b1"},"description":"Nested field nodes for type \"object\", or the element shape for an array of objects. Emails reference nested leaves as dotted paths ({{ order.total }}) and arrays via {% for %}.","uniqueKey":"payloadSchema.fields.items.[INDEX].children","typeLabel":"array"},"itemType":{"type":"string","enum":["string","int","boolean"],"description":"Element type for a type \"array\" of scalars. Omit when the array carries objects (declare `children` instead).","uniqueKey":"payloadSchema.fields.items.[INDEX].itemType","typeLabel":"enum\u003cstring>"}},"required":["key","type","required"],"uniqueKey":"payloadSchema.fields.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"payloadSchema.fields","typeLabel":"object[]"}},"required":["type","fields"],"uniqueKey":"payloadSchema","typeLabel":"object"},"endpoint":{"type":"string","description":"The fire URL to POST events to.","uniqueKey":"endpoint","typeLabel":"string"},"delivery":{"type":"object","properties":{"status":{"type":"string","enum":["received","never_received","none_recent","waiting_for_test_event"],"isRequired":true,"uniqueKey":"delivery.status","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"delivery.message","typeLabel":"string"},"lastReceivedAt":{"type":"string","format":"date-time","uniqueKey":"delivery.lastReceivedAt","typeLabel":"string\u003cdate-time>"},"sourceEvent":{"type":"string","description":"The provider dashboard name (Shopify Admin: \"Customer update\").","uniqueKey":"delivery.sourceEvent","typeLabel":"string"}},"required":["status","message"],"additionalProperties":false,"description":"Integration triggers only: whether Brew has received this event from its source (`none_recent`: not in the 90-day receipt window). Never affects `ready`.","uniqueKey":"delivery","typeLabel":"object"}},"required":["triggerEventId","ready","blockers","publishedAutomations","counts"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"example":{"triggerEventId":"user_signed_up","ready":true,"blockers":[],"title":"User Signed Up","provider":"brew_api","payloadSchema":{"type":"object","fields":[{"key":"email","type":"string","required":true},{"key":"firstName","type":"string","required":false}]},"endpoint":"/v1/automations/triggers/user_signed_up/fire","publishedAutomations":[{"automationId":"M3nRk8LqW2xT5vBp9YcZd","name":"Welcome flow"}],"counts":{"automations":1,"skipped":0}},"examples":{"Example":{"title":"Example","value":{"triggerEventId":"user_signed_up","ready":true,"blockers":[],"title":"User Signed Up","provider":"brew_api","payloadSchema":{"type":"object","fields":[{"key":"email","type":"string","required":true},{"key":"firstName","type":"string","required":false}]},"endpoint":"/v1/automations/triggers/user_signed_up/fire","publishedAutomations":[{"automationId":"M3nRk8LqW2xT5vBp9YcZd","name":"Welcome flow"}],"counts":{"automations":1,"skipped":0}}}},"exampleType":"examples"}},"exampleType":"examples"},"2a3c5ce4-edbe-4819-9270-f0e34d157079":{"description":"`BRAND_ID_REQUIRED`: An organization-scoped credential called a brand-scoped operation without naming the brand.\n\n`INVALID_REQUEST`: The body or query failed validation: an unknown key, a wrong type, or a missing required field. `param` names the first offender; with more than one problem, `details.issues[]` lists each one (`{ param?, message }`, at most 20).","headers":{"x-request-id":{"schema":{"type":"string","description":"Unique request identifier. Share this with support when debugging a request.","example":"req_8cac13fd94e6420cacdd75a1aa403a28"},"required":true,"description":"Unique request identifier. Share this with support when debugging a request."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["ACCOUNT_SUSPENDED","API_KEY_REVOKED","AUDIENCE_BUILD_ACTIVE","AUDIENCE_BUILD_ALREADY_ACTIVE","AUDIENCE_EDIT_CONFLICT","AUDIENCE_MEMBERSHIP_NOT_EXPRESSIBLE","AUDIENCE_NOT_FOUND","AUDIENCE_RUN_NOT_FOUND","AUDIT_NOT_FOUND","AUTHENTICATION_REQUIRED","AUTOMATION_GRAPH_INVALID","AUTOMATION_NOT_FOUND","AUTOMATION_NOT_PAUSABLE","AUTOMATION_NOT_PUBLISHED","AUTOMATION_RUN_NOT_FOUND","AUTOMATION_VERSION_CONFLICT","AUTOMATION_VERSION_NOT_FOUND","BATCH_TOO_LARGE","BRAND_DOMAIN_CONFLICT","BRAND_ID_REQUIRED","BRAND_LIMIT_REACHED","BRAND_NOT_FOUND","BRAND_NOT_READY","BRAND_SCOPE_MISMATCH","CHAT_NOT_FOUND","COMMENT_NOT_FOUND","CONSENT_REQUIRED","CONTACT_NOT_FOUND","CONTENT_OPERATION_FAILED","CONTRACT_LOCKED_BY_PUBLISHED_AUTOMATIONS","CORE_FIELD_IMMUTABLE","DOMAIN_ALREADY_EXISTS","DOMAIN_CLAIMED_ELSEWHERE","DOMAIN_NOT_FOUND","DOMAIN_NOT_READY","DOMAIN_OTHER_BRAND","DOMAIN_PROVIDER_ERROR","DOMAIN_PURPOSE_NOT_ALLOWED","DOMAIN_VERIFICATION_FAILED","DOMAIN_VERIFIED_ELSEWHERE","EMAIL_GENERATION_FAILED","EMAIL_GROUP_NAME_CONFLICT","EMAIL_GROUP_NOT_FOUND","EMAIL_IMAGES_MISSING","EMAIL_IMPORT_FAILED","EMAIL_IMPORT_PERSISTENCE_FAILED","EMAIL_IN_PROGRESS","EMAIL_IN_USE_BY_AUTOMATION","EMAIL_NOT_FOUND","EMAIL_NOT_READY","EMAIL_RESULT_UNAVAILABLE","EMAIL_RUN_AMBIGUOUS","EMAIL_TEMPLATE_INVALID","EMAIL_VERSION_NOT_FOUND","EXPORT_PROVIDER_ERROR","EXPORT_UNSUPPORTED","FIELD_NAME_COLLISION","FIELD_NOT_FOUND","FIELD_TYPE_MISMATCH","FIGMA_ACCESS_DENIED","FIGMA_CONVERSION_FAILED","FIGMA_FRAME_NOT_FOUND","FIGMA_NOT_CONNECTED","FIGMA_UNAVAILABLE","FIGMA_URL_INVALID","FLOW_NOT_FOUND","IDEMPOTENCY_CONFLICT","IDEMPOTENCY_IN_PROGRESS","INSIGHT_NOT_FOUND","INSUFFICIENT_CREDITS","INSUFFICIENT_PERMISSIONS","INSUFFICIENT_ROLE","INTEGRATION_NOT_CONNECTED","INTERNAL_ERROR","INVALID_API_KEY","INVALID_EMAIL","INVALID_PAYLOAD","INVALID_REQUEST","LIQUID_RENDER_ERROR","METHOD_NOT_ALLOWED","MISSING_EMAIL","NO_ELIGIBLE_RECIPIENTS","NO_PUBLISHED_AUTOMATION","NOT_FOUND","NOT_IMPLEMENTED","ORG_SCOPE_REQUIRED","PAYLOAD_SCHEMA_EMAIL_REQUIRED","PAYLOAD_TOO_LARGE","PREVIEW_NOT_FOUND","PUBLISH_VALIDATION_FAILED","RATE_LIMITED","RECIPIENT_UNSUBSCRIBED","REFERENCE_EMAIL_NOT_FOUND","RESUBSCRIBE_NOT_ALLOWED","RUN_IN_PROGRESS","RUN_NOT_CANCELLABLE","RUN_NOT_PAUSABLE","RUN_NOT_PAUSED","RUN_NOT_RESUMABLE","RUN_START_FAILED","RUN_STOP_FAILED","SEND_NOT_CANCELLABLE","SEND_NOT_FOUND","SEND_NOT_PAUSABLE","SEND_NOT_RESUMABLE","SEND_QUOTA_EXCEEDED","SERVICE_UNAVAILABLE","TEMPLATE_NOT_FOUND","TEST_RECIPIENT_NOT_ALLOWED","TRIGGER_ALREADY_EXISTS","TRIGGER_EVENT_NOT_FOUND","TRIGGER_HAS_DEPENDENT_AUTOMATIONS","TRIGGER_IMMUTABLE","TRIGGER_INSTANCE_NOT_FOUND","TRIGGER_LIMIT_REACHED","TRIGGER_NOT_FIREABLE","UPLOAD_IN_PROGRESS","UPLOAD_NOT_FOUND","UPLOAD_NOT_RECEIVED"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","enum":["authentication_error","authorization_error","invalid_request","not_found","not_implemented","conflict","rate_limit","payment_required","service_unavailable","internal_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"suggestion":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"error.suggestion","typeLabel":"string"},"docs":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"error.docs","typeLabel":"string\u003curi>"},"param":{"type":"string","minLength":1,"uniqueKey":"error.param","typeLabel":"string"},"retryAfter":{"type":"integer","minimum":0,"uniqueKey":"error.retryAfter","typeLabel":"integer"},"details":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","type","message","suggestion","docs"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"brandIdRequired":{"title":"brandIdRequired","value":{"error":{"code":"BRAND_ID_REQUIRED","type":"invalid_request","message":"An organization-scoped credential called a brand-scoped operation without naming the brand.","suggestion":"List brands with GET /v1/brands, then name one with the X-Brand-Id header. There is no default brand.","docs":"https://docs.brew.new/api-reference/api/authentication"}}},"invalidRequest":{"title":"invalidRequest","value":{"error":{"code":"INVALID_REQUEST","type":"invalid_request","message":"The body or query failed validation: an unknown key, a wrong type, or a missing required field. `param` names the first offender; with more than one problem, `details.issues[]` lists each one (`{ param?, message }`, at most 20).","suggestion":"Fix the field reported in `param`, and every entry in `details.issues[]` when present, then retry.","docs":"https://docs.brew.new/api-reference/api/errors"}}}},"exampleType":"examples"}},"exampleType":"examples"},"c4c0e3fe-7cdd-4803-8edc-901021d416a8":{"description":"`API_KEY_REVOKED`: The API key was revoked.\n\n`AUTHENTICATION_REQUIRED`: No API key or session accompanied the request.\n\n`INVALID_API_KEY`: The API key is malformed or unknown.","headers":{"x-request-id":{"schema":{"type":"string","description":"Unique request identifier. Share this with support when debugging a request.","example":"req_8cac13fd94e6420cacdd75a1aa403a28"},"required":true,"description":"Unique request identifier. Share this with support when debugging a request."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["ACCOUNT_SUSPENDED","API_KEY_REVOKED","AUDIENCE_BUILD_ACTIVE","AUDIENCE_BUILD_ALREADY_ACTIVE","AUDIENCE_EDIT_CONFLICT","AUDIENCE_MEMBERSHIP_NOT_EXPRESSIBLE","AUDIENCE_NOT_FOUND","AUDIENCE_RUN_NOT_FOUND","AUDIT_NOT_FOUND","AUTHENTICATION_REQUIRED","AUTOMATION_GRAPH_INVALID","AUTOMATION_NOT_FOUND","AUTOMATION_NOT_PAUSABLE","AUTOMATION_NOT_PUBLISHED","AUTOMATION_RUN_NOT_FOUND","AUTOMATION_VERSION_CONFLICT","AUTOMATION_VERSION_NOT_FOUND","BATCH_TOO_LARGE","BRAND_DOMAIN_CONFLICT","BRAND_ID_REQUIRED","BRAND_LIMIT_REACHED","BRAND_NOT_FOUND","BRAND_NOT_READY","BRAND_SCOPE_MISMATCH","CHAT_NOT_FOUND","COMMENT_NOT_FOUND","CONSENT_REQUIRED","CONTACT_NOT_FOUND","CONTENT_OPERATION_FAILED","CONTRACT_LOCKED_BY_PUBLISHED_AUTOMATIONS","CORE_FIELD_IMMUTABLE","DOMAIN_ALREADY_EXISTS","DOMAIN_CLAIMED_ELSEWHERE","DOMAIN_NOT_FOUND","DOMAIN_NOT_READY","DOMAIN_OTHER_BRAND","DOMAIN_PROVIDER_ERROR","DOMAIN_PURPOSE_NOT_ALLOWED","DOMAIN_VERIFICATION_FAILED","DOMAIN_VERIFIED_ELSEWHERE","EMAIL_GENERATION_FAILED","EMAIL_GROUP_NAME_CONFLICT","EMAIL_GROUP_NOT_FOUND","EMAIL_IMAGES_MISSING","EMAIL_IMPORT_FAILED","EMAIL_IMPORT_PERSISTENCE_FAILED","EMAIL_IN_PROGRESS","EMAIL_IN_USE_BY_AUTOMATION","EMAIL_NOT_FOUND","EMAIL_NOT_READY","EMAIL_RESULT_UNAVAILABLE","EMAIL_RUN_AMBIGUOUS","EMAIL_TEMPLATE_INVALID","EMAIL_VERSION_NOT_FOUND","EXPORT_PROVIDER_ERROR","EXPORT_UNSUPPORTED","FIELD_NAME_COLLISION","FIELD_NOT_FOUND","FIELD_TYPE_MISMATCH","FIGMA_ACCESS_DENIED","FIGMA_CONVERSION_FAILED","FIGMA_FRAME_NOT_FOUND","FIGMA_NOT_CONNECTED","FIGMA_UNAVAILABLE","FIGMA_URL_INVALID","FLOW_NOT_FOUND","IDEMPOTENCY_CONFLICT","IDEMPOTENCY_IN_PROGRESS","INSIGHT_NOT_FOUND","INSUFFICIENT_CREDITS","INSUFFICIENT_PERMISSIONS","INSUFFICIENT_ROLE","INTEGRATION_NOT_CONNECTED","INTERNAL_ERROR","INVALID_API_KEY","INVALID_EMAIL","INVALID_PAYLOAD","INVALID_REQUEST","LIQUID_RENDER_ERROR","METHOD_NOT_ALLOWED","MISSING_EMAIL","NO_ELIGIBLE_RECIPIENTS","NO_PUBLISHED_AUTOMATION","NOT_FOUND","NOT_IMPLEMENTED","ORG_SCOPE_REQUIRED","PAYLOAD_SCHEMA_EMAIL_REQUIRED","PAYLOAD_TOO_LARGE","PREVIEW_NOT_FOUND","PUBLISH_VALIDATION_FAILED","RATE_LIMITED","RECIPIENT_UNSUBSCRIBED","REFERENCE_EMAIL_NOT_FOUND","RESUBSCRIBE_NOT_ALLOWED","RUN_IN_PROGRESS","RUN_NOT_CANCELLABLE","RUN_NOT_PAUSABLE","RUN_NOT_PAUSED","RUN_NOT_RESUMABLE","RUN_START_FAILED","RUN_STOP_FAILED","SEND_NOT_CANCELLABLE","SEND_NOT_FOUND","SEND_NOT_PAUSABLE","SEND_NOT_RESUMABLE","SEND_QUOTA_EXCEEDED","SERVICE_UNAVAILABLE","TEMPLATE_NOT_FOUND","TEST_RECIPIENT_NOT_ALLOWED","TRIGGER_ALREADY_EXISTS","TRIGGER_EVENT_NOT_FOUND","TRIGGER_HAS_DEPENDENT_AUTOMATIONS","TRIGGER_IMMUTABLE","TRIGGER_INSTANCE_NOT_FOUND","TRIGGER_LIMIT_REACHED","TRIGGER_NOT_FIREABLE","UPLOAD_IN_PROGRESS","UPLOAD_NOT_FOUND","UPLOAD_NOT_RECEIVED"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","enum":["authentication_error","authorization_error","invalid_request","not_found","not_implemented","conflict","rate_limit","payment_required","service_unavailable","internal_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"suggestion":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"error.suggestion","typeLabel":"string"},"docs":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"error.docs","typeLabel":"string\u003curi>"},"param":{"type":"string","minLength":1,"uniqueKey":"error.param","typeLabel":"string"},"retryAfter":{"type":"integer","minimum":0,"uniqueKey":"error.retryAfter","typeLabel":"integer"},"details":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","type","message","suggestion","docs"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"apiKeyRevoked":{"title":"apiKeyRevoked","value":{"error":{"code":"API_KEY_REVOKED","type":"authentication_error","message":"The API key was revoked.","suggestion":"Create a new active API key and retry.","docs":"https://docs.brew.new/api-reference/api/authentication"}}},"authenticationRequired":{"title":"authenticationRequired","value":{"error":{"code":"AUTHENTICATION_REQUIRED","type":"authentication_error","message":"No API key or session accompanied the request.","suggestion":"Provide a valid API key or sign in with an organization session.","docs":"https://docs.brew.new/api-reference/api/authentication"}}},"invalidApiKey":{"title":"invalidApiKey","value":{"error":{"code":"INVALID_API_KEY","type":"authentication_error","message":"The API key is malformed or unknown.","suggestion":"Check the API key format and retry with a valid active key.","docs":"https://docs.brew.new/api-reference/api/authentication"}}}},"exampleType":"examples"}},"exampleType":"examples"},"8bee16b3-5333-43ed-b10a-6f3843f10136":{"description":"`ACCOUNT_SUSPENDED`: The organization behind the credential is suspended.\n\n`BRAND_SCOPE_MISMATCH`: A brand-scoped credential named a brand other than the one it is bound to.\n\n`INSUFFICIENT_PERMISSIONS`: The credential lacks the permission scope the operation needs.\n\n`INSUFFICIENT_ROLE`: The caller lacks the access the operation needs: `param` names `member` (access to the brand) or `org_admin` (the organization role).","headers":{"x-request-id":{"schema":{"type":"string","description":"Unique request identifier. Share this with support when debugging a request.","example":"req_8cac13fd94e6420cacdd75a1aa403a28"},"required":true,"description":"Unique request identifier. Share this with support when debugging a request."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["ACCOUNT_SUSPENDED","API_KEY_REVOKED","AUDIENCE_BUILD_ACTIVE","AUDIENCE_BUILD_ALREADY_ACTIVE","AUDIENCE_EDIT_CONFLICT","AUDIENCE_MEMBERSHIP_NOT_EXPRESSIBLE","AUDIENCE_NOT_FOUND","AUDIENCE_RUN_NOT_FOUND","AUDIT_NOT_FOUND","AUTHENTICATION_REQUIRED","AUTOMATION_GRAPH_INVALID","AUTOMATION_NOT_FOUND","AUTOMATION_NOT_PAUSABLE","AUTOMATION_NOT_PUBLISHED","AUTOMATION_RUN_NOT_FOUND","AUTOMATION_VERSION_CONFLICT","AUTOMATION_VERSION_NOT_FOUND","BATCH_TOO_LARGE","BRAND_DOMAIN_CONFLICT","BRAND_ID_REQUIRED","BRAND_LIMIT_REACHED","BRAND_NOT_FOUND","BRAND_NOT_READY","BRAND_SCOPE_MISMATCH","CHAT_NOT_FOUND","COMMENT_NOT_FOUND","CONSENT_REQUIRED","CONTACT_NOT_FOUND","CONTENT_OPERATION_FAILED","CONTRACT_LOCKED_BY_PUBLISHED_AUTOMATIONS","CORE_FIELD_IMMUTABLE","DOMAIN_ALREADY_EXISTS","DOMAIN_CLAIMED_ELSEWHERE","DOMAIN_NOT_FOUND","DOMAIN_NOT_READY","DOMAIN_OTHER_BRAND","DOMAIN_PROVIDER_ERROR","DOMAIN_PURPOSE_NOT_ALLOWED","DOMAIN_VERIFICATION_FAILED","DOMAIN_VERIFIED_ELSEWHERE","EMAIL_GENERATION_FAILED","EMAIL_GROUP_NAME_CONFLICT","EMAIL_GROUP_NOT_FOUND","EMAIL_IMAGES_MISSING","EMAIL_IMPORT_FAILED","EMAIL_IMPORT_PERSISTENCE_FAILED","EMAIL_IN_PROGRESS","EMAIL_IN_USE_BY_AUTOMATION","EMAIL_NOT_FOUND","EMAIL_NOT_READY","EMAIL_RESULT_UNAVAILABLE","EMAIL_RUN_AMBIGUOUS","EMAIL_TEMPLATE_INVALID","EMAIL_VERSION_NOT_FOUND","EXPORT_PROVIDER_ERROR","EXPORT_UNSUPPORTED","FIELD_NAME_COLLISION","FIELD_NOT_FOUND","FIELD_TYPE_MISMATCH","FIGMA_ACCESS_DENIED","FIGMA_CONVERSION_FAILED","FIGMA_FRAME_NOT_FOUND","FIGMA_NOT_CONNECTED","FIGMA_UNAVAILABLE","FIGMA_URL_INVALID","FLOW_NOT_FOUND","IDEMPOTENCY_CONFLICT","IDEMPOTENCY_IN_PROGRESS","INSIGHT_NOT_FOUND","INSUFFICIENT_CREDITS","INSUFFICIENT_PERMISSIONS","INSUFFICIENT_ROLE","INTEGRATION_NOT_CONNECTED","INTERNAL_ERROR","INVALID_API_KEY","INVALID_EMAIL","INVALID_PAYLOAD","INVALID_REQUEST","LIQUID_RENDER_ERROR","METHOD_NOT_ALLOWED","MISSING_EMAIL","NO_ELIGIBLE_RECIPIENTS","NO_PUBLISHED_AUTOMATION","NOT_FOUND","NOT_IMPLEMENTED","ORG_SCOPE_REQUIRED","PAYLOAD_SCHEMA_EMAIL_REQUIRED","PAYLOAD_TOO_LARGE","PREVIEW_NOT_FOUND","PUBLISH_VALIDATION_FAILED","RATE_LIMITED","RECIPIENT_UNSUBSCRIBED","REFERENCE_EMAIL_NOT_FOUND","RESUBSCRIBE_NOT_ALLOWED","RUN_IN_PROGRESS","RUN_NOT_CANCELLABLE","RUN_NOT_PAUSABLE","RUN_NOT_PAUSED","RUN_NOT_RESUMABLE","RUN_START_FAILED","RUN_STOP_FAILED","SEND_NOT_CANCELLABLE","SEND_NOT_FOUND","SEND_NOT_PAUSABLE","SEND_NOT_RESUMABLE","SEND_QUOTA_EXCEEDED","SERVICE_UNAVAILABLE","TEMPLATE_NOT_FOUND","TEST_RECIPIENT_NOT_ALLOWED","TRIGGER_ALREADY_EXISTS","TRIGGER_EVENT_NOT_FOUND","TRIGGER_HAS_DEPENDENT_AUTOMATIONS","TRIGGER_IMMUTABLE","TRIGGER_INSTANCE_NOT_FOUND","TRIGGER_LIMIT_REACHED","TRIGGER_NOT_FIREABLE","UPLOAD_IN_PROGRESS","UPLOAD_NOT_FOUND","UPLOAD_NOT_RECEIVED"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","enum":["authentication_error","authorization_error","invalid_request","not_found","not_implemented","conflict","rate_limit","payment_required","service_unavailable","internal_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"suggestion":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"error.suggestion","typeLabel":"string"},"docs":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"error.docs","typeLabel":"string\u003curi>"},"param":{"type":"string","minLength":1,"uniqueKey":"error.param","typeLabel":"string"},"retryAfter":{"type":"integer","minimum":0,"uniqueKey":"error.retryAfter","typeLabel":"integer"},"details":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","type","message","suggestion","docs"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"accountSuspended":{"title":"accountSuspended","value":{"error":{"code":"ACCOUNT_SUSPENDED","type":"authorization_error","message":"The organization behind the credential is suspended.","suggestion":"The organization behind this credential is suspended. Contact support@brew.new; do not retry.","docs":"https://docs.brew.new/api-reference/api/authentication"}}},"brandScopeMismatch":{"title":"brandScopeMismatch","value":{"error":{"code":"BRAND_SCOPE_MISMATCH","type":"authorization_error","message":"A brand-scoped credential named a brand other than the one it is bound to.","suggestion":"Omit the brand to use the one this credential is bound to, or use an organization-scoped credential to reach other brands.","docs":"https://docs.brew.new/api-reference/api/authentication"}}},"insufficientPermissions":{"title":"insufficientPermissions","value":{"error":{"code":"INSUFFICIENT_PERMISSIONS","type":"authorization_error","message":"The credential lacks the permission scope the operation needs.","suggestion":"Use an API key or session with the required permission.","docs":"https://docs.brew.new/api-reference/api/authentication"}}},"insufficientRole":{"title":"insufficientRole","value":{"error":{"code":"INSUFFICIENT_ROLE","type":"authorization_error","message":"The caller lacks the access the operation needs: `param` names `member` (access to the brand) or `org_admin` (the organization role).","suggestion":"Ask an organization admin to run this, to add you to the brand, or to make you an admin.","docs":"https://docs.brew.new/api-reference/api/authentication"}}}},"exampleType":"examples"}},"exampleType":"examples"},"9765e87c-13b0-4d5d-b7bc-c5b25aef955d":{"description":"`BRAND_NOT_FOUND`: The named or bound brand does not exist in this organization (unknown, deleting, or another organization).\n\n`TRIGGER_EVENT_NOT_FOUND`: No trigger with that id exists in the brand.","headers":{"x-request-id":{"schema":{"type":"string","description":"Unique request identifier. Share this with support when debugging a request.","example":"req_8cac13fd94e6420cacdd75a1aa403a28"},"required":true,"description":"Unique request identifier. Share this with support when debugging a request."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["ACCOUNT_SUSPENDED","API_KEY_REVOKED","AUDIENCE_BUILD_ACTIVE","AUDIENCE_BUILD_ALREADY_ACTIVE","AUDIENCE_EDIT_CONFLICT","AUDIENCE_MEMBERSHIP_NOT_EXPRESSIBLE","AUDIENCE_NOT_FOUND","AUDIENCE_RUN_NOT_FOUND","AUDIT_NOT_FOUND","AUTHENTICATION_REQUIRED","AUTOMATION_GRAPH_INVALID","AUTOMATION_NOT_FOUND","AUTOMATION_NOT_PAUSABLE","AUTOMATION_NOT_PUBLISHED","AUTOMATION_RUN_NOT_FOUND","AUTOMATION_VERSION_CONFLICT","AUTOMATION_VERSION_NOT_FOUND","BATCH_TOO_LARGE","BRAND_DOMAIN_CONFLICT","BRAND_ID_REQUIRED","BRAND_LIMIT_REACHED","BRAND_NOT_FOUND","BRAND_NOT_READY","BRAND_SCOPE_MISMATCH","CHAT_NOT_FOUND","COMMENT_NOT_FOUND","CONSENT_REQUIRED","CONTACT_NOT_FOUND","CONTENT_OPERATION_FAILED","CONTRACT_LOCKED_BY_PUBLISHED_AUTOMATIONS","CORE_FIELD_IMMUTABLE","DOMAIN_ALREADY_EXISTS","DOMAIN_CLAIMED_ELSEWHERE","DOMAIN_NOT_FOUND","DOMAIN_NOT_READY","DOMAIN_OTHER_BRAND","DOMAIN_PROVIDER_ERROR","DOMAIN_PURPOSE_NOT_ALLOWED","DOMAIN_VERIFICATION_FAILED","DOMAIN_VERIFIED_ELSEWHERE","EMAIL_GENERATION_FAILED","EMAIL_GROUP_NAME_CONFLICT","EMAIL_GROUP_NOT_FOUND","EMAIL_IMAGES_MISSING","EMAIL_IMPORT_FAILED","EMAIL_IMPORT_PERSISTENCE_FAILED","EMAIL_IN_PROGRESS","EMAIL_IN_USE_BY_AUTOMATION","EMAIL_NOT_FOUND","EMAIL_NOT_READY","EMAIL_RESULT_UNAVAILABLE","EMAIL_RUN_AMBIGUOUS","EMAIL_TEMPLATE_INVALID","EMAIL_VERSION_NOT_FOUND","EXPORT_PROVIDER_ERROR","EXPORT_UNSUPPORTED","FIELD_NAME_COLLISION","FIELD_NOT_FOUND","FIELD_TYPE_MISMATCH","FIGMA_ACCESS_DENIED","FIGMA_CONVERSION_FAILED","FIGMA_FRAME_NOT_FOUND","FIGMA_NOT_CONNECTED","FIGMA_UNAVAILABLE","FIGMA_URL_INVALID","FLOW_NOT_FOUND","IDEMPOTENCY_CONFLICT","IDEMPOTENCY_IN_PROGRESS","INSIGHT_NOT_FOUND","INSUFFICIENT_CREDITS","INSUFFICIENT_PERMISSIONS","INSUFFICIENT_ROLE","INTEGRATION_NOT_CONNECTED","INTERNAL_ERROR","INVALID_API_KEY","INVALID_EMAIL","INVALID_PAYLOAD","INVALID_REQUEST","LIQUID_RENDER_ERROR","METHOD_NOT_ALLOWED","MISSING_EMAIL","NO_ELIGIBLE_RECIPIENTS","NO_PUBLISHED_AUTOMATION","NOT_FOUND","NOT_IMPLEMENTED","ORG_SCOPE_REQUIRED","PAYLOAD_SCHEMA_EMAIL_REQUIRED","PAYLOAD_TOO_LARGE","PREVIEW_NOT_FOUND","PUBLISH_VALIDATION_FAILED","RATE_LIMITED","RECIPIENT_UNSUBSCRIBED","REFERENCE_EMAIL_NOT_FOUND","RESUBSCRIBE_NOT_ALLOWED","RUN_IN_PROGRESS","RUN_NOT_CANCELLABLE","RUN_NOT_PAUSABLE","RUN_NOT_PAUSED","RUN_NOT_RESUMABLE","RUN_START_FAILED","RUN_STOP_FAILED","SEND_NOT_CANCELLABLE","SEND_NOT_FOUND","SEND_NOT_PAUSABLE","SEND_NOT_RESUMABLE","SEND_QUOTA_EXCEEDED","SERVICE_UNAVAILABLE","TEMPLATE_NOT_FOUND","TEST_RECIPIENT_NOT_ALLOWED","TRIGGER_ALREADY_EXISTS","TRIGGER_EVENT_NOT_FOUND","TRIGGER_HAS_DEPENDENT_AUTOMATIONS","TRIGGER_IMMUTABLE","TRIGGER_INSTANCE_NOT_FOUND","TRIGGER_LIMIT_REACHED","TRIGGER_NOT_FIREABLE","UPLOAD_IN_PROGRESS","UPLOAD_NOT_FOUND","UPLOAD_NOT_RECEIVED"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","enum":["authentication_error","authorization_error","invalid_request","not_found","not_implemented","conflict","rate_limit","payment_required","service_unavailable","internal_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"suggestion":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"error.suggestion","typeLabel":"string"},"docs":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"error.docs","typeLabel":"string\u003curi>"},"param":{"type":"string","minLength":1,"uniqueKey":"error.param","typeLabel":"string"},"retryAfter":{"type":"integer","minimum":0,"uniqueKey":"error.retryAfter","typeLabel":"integer"},"details":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","type","message","suggestion","docs"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"brandNotFound":{"title":"brandNotFound","value":{"error":{"code":"BRAND_NOT_FOUND","type":"not_found","message":"The named or bound brand does not exist in this organization (unknown, deleting, or another organization).","suggestion":"List the brands this credential can reach with GET /v1/brands.","docs":"https://docs.brew.new/api-reference/api/errors"}}},"triggerEventNotFound":{"title":"triggerEventNotFound","value":{"error":{"code":"TRIGGER_EVENT_NOT_FOUND","type":"not_found","message":"No trigger with that id exists in the brand.","suggestion":"List triggers with GET /v1/automations/triggers.","docs":"https://docs.brew.new/api-reference/api/errors"}}}},"exampleType":"examples"}},"exampleType":"examples"},"a41d063c-fcc7-4721-b794-5081ff2edae4":{"description":"`TRIGGER_NOT_FIREABLE`: Brew starts this trigger itself when its event happens, so it cannot be fired over the API.","headers":{"x-request-id":{"schema":{"type":"string","description":"Unique request identifier. Share this with support when debugging a request.","example":"req_8cac13fd94e6420cacdd75a1aa403a28"},"required":true,"description":"Unique request identifier. Share this with support when debugging a request."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["ACCOUNT_SUSPENDED","API_KEY_REVOKED","AUDIENCE_BUILD_ACTIVE","AUDIENCE_BUILD_ALREADY_ACTIVE","AUDIENCE_EDIT_CONFLICT","AUDIENCE_MEMBERSHIP_NOT_EXPRESSIBLE","AUDIENCE_NOT_FOUND","AUDIENCE_RUN_NOT_FOUND","AUDIT_NOT_FOUND","AUTHENTICATION_REQUIRED","AUTOMATION_GRAPH_INVALID","AUTOMATION_NOT_FOUND","AUTOMATION_NOT_PAUSABLE","AUTOMATION_NOT_PUBLISHED","AUTOMATION_RUN_NOT_FOUND","AUTOMATION_VERSION_CONFLICT","AUTOMATION_VERSION_NOT_FOUND","BATCH_TOO_LARGE","BRAND_DOMAIN_CONFLICT","BRAND_ID_REQUIRED","BRAND_LIMIT_REACHED","BRAND_NOT_FOUND","BRAND_NOT_READY","BRAND_SCOPE_MISMATCH","CHAT_NOT_FOUND","COMMENT_NOT_FOUND","CONSENT_REQUIRED","CONTACT_NOT_FOUND","CONTENT_OPERATION_FAILED","CONTRACT_LOCKED_BY_PUBLISHED_AUTOMATIONS","CORE_FIELD_IMMUTABLE","DOMAIN_ALREADY_EXISTS","DOMAIN_CLAIMED_ELSEWHERE","DOMAIN_NOT_FOUND","DOMAIN_NOT_READY","DOMAIN_OTHER_BRAND","DOMAIN_PROVIDER_ERROR","DOMAIN_PURPOSE_NOT_ALLOWED","DOMAIN_VERIFICATION_FAILED","DOMAIN_VERIFIED_ELSEWHERE","EMAIL_GENERATION_FAILED","EMAIL_GROUP_NAME_CONFLICT","EMAIL_GROUP_NOT_FOUND","EMAIL_IMAGES_MISSING","EMAIL_IMPORT_FAILED","EMAIL_IMPORT_PERSISTENCE_FAILED","EMAIL_IN_PROGRESS","EMAIL_IN_USE_BY_AUTOMATION","EMAIL_NOT_FOUND","EMAIL_NOT_READY","EMAIL_RESULT_UNAVAILABLE","EMAIL_RUN_AMBIGUOUS","EMAIL_TEMPLATE_INVALID","EMAIL_VERSION_NOT_FOUND","EXPORT_PROVIDER_ERROR","EXPORT_UNSUPPORTED","FIELD_NAME_COLLISION","FIELD_NOT_FOUND","FIELD_TYPE_MISMATCH","FIGMA_ACCESS_DENIED","FIGMA_CONVERSION_FAILED","FIGMA_FRAME_NOT_FOUND","FIGMA_NOT_CONNECTED","FIGMA_UNAVAILABLE","FIGMA_URL_INVALID","FLOW_NOT_FOUND","IDEMPOTENCY_CONFLICT","IDEMPOTENCY_IN_PROGRESS","INSIGHT_NOT_FOUND","INSUFFICIENT_CREDITS","INSUFFICIENT_PERMISSIONS","INSUFFICIENT_ROLE","INTEGRATION_NOT_CONNECTED","INTERNAL_ERROR","INVALID_API_KEY","INVALID_EMAIL","INVALID_PAYLOAD","INVALID_REQUEST","LIQUID_RENDER_ERROR","METHOD_NOT_ALLOWED","MISSING_EMAIL","NO_ELIGIBLE_RECIPIENTS","NO_PUBLISHED_AUTOMATION","NOT_FOUND","NOT_IMPLEMENTED","ORG_SCOPE_REQUIRED","PAYLOAD_SCHEMA_EMAIL_REQUIRED","PAYLOAD_TOO_LARGE","PREVIEW_NOT_FOUND","PUBLISH_VALIDATION_FAILED","RATE_LIMITED","RECIPIENT_UNSUBSCRIBED","REFERENCE_EMAIL_NOT_FOUND","RESUBSCRIBE_NOT_ALLOWED","RUN_IN_PROGRESS","RUN_NOT_CANCELLABLE","RUN_NOT_PAUSABLE","RUN_NOT_PAUSED","RUN_NOT_RESUMABLE","RUN_START_FAILED","RUN_STOP_FAILED","SEND_NOT_CANCELLABLE","SEND_NOT_FOUND","SEND_NOT_PAUSABLE","SEND_NOT_RESUMABLE","SEND_QUOTA_EXCEEDED","SERVICE_UNAVAILABLE","TEMPLATE_NOT_FOUND","TEST_RECIPIENT_NOT_ALLOWED","TRIGGER_ALREADY_EXISTS","TRIGGER_EVENT_NOT_FOUND","TRIGGER_HAS_DEPENDENT_AUTOMATIONS","TRIGGER_IMMUTABLE","TRIGGER_INSTANCE_NOT_FOUND","TRIGGER_LIMIT_REACHED","TRIGGER_NOT_FIREABLE","UPLOAD_IN_PROGRESS","UPLOAD_NOT_FOUND","UPLOAD_NOT_RECEIVED"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","enum":["authentication_error","authorization_error","invalid_request","not_found","not_implemented","conflict","rate_limit","payment_required","service_unavailable","internal_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"suggestion":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"error.suggestion","typeLabel":"string"},"docs":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"error.docs","typeLabel":"string\u003curi>"},"param":{"type":"string","minLength":1,"uniqueKey":"error.param","typeLabel":"string"},"retryAfter":{"type":"integer","minimum":0,"uniqueKey":"error.retryAfter","typeLabel":"integer"},"details":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","type","message","suggestion","docs"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"triggerNotFireable":{"title":"triggerNotFireable","value":{"error":{"code":"TRIGGER_NOT_FIREABLE","type":"conflict","message":"Brew starts this trigger itself when its event happens, so it cannot be fired over the API.","suggestion":"Try the automation with its Test action (POST /v1/automations/{automationId}/test) instead.","docs":"https://docs.brew.new/api-reference/api/errors"}}}},"exampleType":"examples"}},"exampleType":"examples"},"f8cb657d-6e37-4afd-bb40-e064d291f45b":{"description":"`RATE_LIMITED`: The credential exhausted the rolling window for this route policy; Retry-After is when the oldest recorded request leaves, and the refused request does not take a slot.","headers":{"x-request-id":{"schema":{"type":"string","description":"Unique request identifier. Share this with support when debugging a request.","example":"req_8cac13fd94e6420cacdd75a1aa403a28"},"required":true,"description":"Unique request identifier. Share this with support when debugging a request."},"X-RateLimit-Limit":{"schema":{"type":"integer","description":"Requests allowed in the current rolling rate limit window.","example":100},"required":true,"description":"Requests allowed in the current rolling rate limit window."},"X-RateLimit-Remaining":{"schema":{"type":"integer","description":"Requests remaining in the current rolling rate limit window.","example":0},"required":true,"description":"Requests remaining in the current rolling rate limit window."},"X-RateLimit-Reset":{"schema":{"type":"integer","description":"Unix timestamp in seconds when the oldest recorded request leaves the rolling window.","example":1712592360},"required":true,"description":"Unix timestamp in seconds when the oldest recorded request leaves the rolling window."},"Retry-After":{"schema":{"type":"integer","description":"Seconds to wait before retrying the request.","example":42},"required":true,"description":"Seconds to wait before retrying the request."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["ACCOUNT_SUSPENDED","API_KEY_REVOKED","AUDIENCE_BUILD_ACTIVE","AUDIENCE_BUILD_ALREADY_ACTIVE","AUDIENCE_EDIT_CONFLICT","AUDIENCE_MEMBERSHIP_NOT_EXPRESSIBLE","AUDIENCE_NOT_FOUND","AUDIENCE_RUN_NOT_FOUND","AUDIT_NOT_FOUND","AUTHENTICATION_REQUIRED","AUTOMATION_GRAPH_INVALID","AUTOMATION_NOT_FOUND","AUTOMATION_NOT_PAUSABLE","AUTOMATION_NOT_PUBLISHED","AUTOMATION_RUN_NOT_FOUND","AUTOMATION_VERSION_CONFLICT","AUTOMATION_VERSION_NOT_FOUND","BATCH_TOO_LARGE","BRAND_DOMAIN_CONFLICT","BRAND_ID_REQUIRED","BRAND_LIMIT_REACHED","BRAND_NOT_FOUND","BRAND_NOT_READY","BRAND_SCOPE_MISMATCH","CHAT_NOT_FOUND","COMMENT_NOT_FOUND","CONSENT_REQUIRED","CONTACT_NOT_FOUND","CONTENT_OPERATION_FAILED","CONTRACT_LOCKED_BY_PUBLISHED_AUTOMATIONS","CORE_FIELD_IMMUTABLE","DOMAIN_ALREADY_EXISTS","DOMAIN_CLAIMED_ELSEWHERE","DOMAIN_NOT_FOUND","DOMAIN_NOT_READY","DOMAIN_OTHER_BRAND","DOMAIN_PROVIDER_ERROR","DOMAIN_PURPOSE_NOT_ALLOWED","DOMAIN_VERIFICATION_FAILED","DOMAIN_VERIFIED_ELSEWHERE","EMAIL_GENERATION_FAILED","EMAIL_GROUP_NAME_CONFLICT","EMAIL_GROUP_NOT_FOUND","EMAIL_IMAGES_MISSING","EMAIL_IMPORT_FAILED","EMAIL_IMPORT_PERSISTENCE_FAILED","EMAIL_IN_PROGRESS","EMAIL_IN_USE_BY_AUTOMATION","EMAIL_NOT_FOUND","EMAIL_NOT_READY","EMAIL_RESULT_UNAVAILABLE","EMAIL_RUN_AMBIGUOUS","EMAIL_TEMPLATE_INVALID","EMAIL_VERSION_NOT_FOUND","EXPORT_PROVIDER_ERROR","EXPORT_UNSUPPORTED","FIELD_NAME_COLLISION","FIELD_NOT_FOUND","FIELD_TYPE_MISMATCH","FIGMA_ACCESS_DENIED","FIGMA_CONVERSION_FAILED","FIGMA_FRAME_NOT_FOUND","FIGMA_NOT_CONNECTED","FIGMA_UNAVAILABLE","FIGMA_URL_INVALID","FLOW_NOT_FOUND","IDEMPOTENCY_CONFLICT","IDEMPOTENCY_IN_PROGRESS","INSIGHT_NOT_FOUND","INSUFFICIENT_CREDITS","INSUFFICIENT_PERMISSIONS","INSUFFICIENT_ROLE","INTEGRATION_NOT_CONNECTED","INTERNAL_ERROR","INVALID_API_KEY","INVALID_EMAIL","INVALID_PAYLOAD","INVALID_REQUEST","LIQUID_RENDER_ERROR","METHOD_NOT_ALLOWED","MISSING_EMAIL","NO_ELIGIBLE_RECIPIENTS","NO_PUBLISHED_AUTOMATION","NOT_FOUND","NOT_IMPLEMENTED","ORG_SCOPE_REQUIRED","PAYLOAD_SCHEMA_EMAIL_REQUIRED","PAYLOAD_TOO_LARGE","PREVIEW_NOT_FOUND","PUBLISH_VALIDATION_FAILED","RATE_LIMITED","RECIPIENT_UNSUBSCRIBED","REFERENCE_EMAIL_NOT_FOUND","RESUBSCRIBE_NOT_ALLOWED","RUN_IN_PROGRESS","RUN_NOT_CANCELLABLE","RUN_NOT_PAUSABLE","RUN_NOT_PAUSED","RUN_NOT_RESUMABLE","RUN_START_FAILED","RUN_STOP_FAILED","SEND_NOT_CANCELLABLE","SEND_NOT_FOUND","SEND_NOT_PAUSABLE","SEND_NOT_RESUMABLE","SEND_QUOTA_EXCEEDED","SERVICE_UNAVAILABLE","TEMPLATE_NOT_FOUND","TEST_RECIPIENT_NOT_ALLOWED","TRIGGER_ALREADY_EXISTS","TRIGGER_EVENT_NOT_FOUND","TRIGGER_HAS_DEPENDENT_AUTOMATIONS","TRIGGER_IMMUTABLE","TRIGGER_INSTANCE_NOT_FOUND","TRIGGER_LIMIT_REACHED","TRIGGER_NOT_FIREABLE","UPLOAD_IN_PROGRESS","UPLOAD_NOT_FOUND","UPLOAD_NOT_RECEIVED"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","enum":["authentication_error","authorization_error","invalid_request","not_found","not_implemented","conflict","rate_limit","payment_required","service_unavailable","internal_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"suggestion":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"error.suggestion","typeLabel":"string"},"docs":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"error.docs","typeLabel":"string\u003curi>"},"param":{"type":"string","minLength":1,"uniqueKey":"error.param","typeLabel":"string"},"retryAfter":{"type":"integer","minimum":0,"uniqueKey":"error.retryAfter","typeLabel":"integer"},"details":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","type","message","suggestion","docs"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"rateLimited":{"title":"rateLimited","value":{"error":{"code":"RATE_LIMITED","type":"rate_limit","message":"The credential exhausted the rolling window for this route policy; Retry-After is when the oldest recorded request leaves, and the refused request does not take a slot.","suggestion":"Wait the Retry-After time, then retry the same request.","docs":"https://docs.brew.new/api-reference/api/rate-limits","retryAfter":42,"details":{"scope":"credential","limit":100,"remaining":0,"reset":1712592360,"consumed":false}}}}},"exampleType":"examples"}},"exampleType":"examples"},"3eef22ce-4eaa-4c96-a95c-e3e91b8f3f66":{"description":"`INTERNAL_ERROR`: An unexpected failure; the x-request-id header identifies it.","headers":{"x-request-id":{"schema":{"type":"string","description":"Unique request identifier. Share this with support when debugging a request.","example":"req_8cac13fd94e6420cacdd75a1aa403a28"},"required":true,"description":"Unique request identifier. Share this with support when debugging a request."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["ACCOUNT_SUSPENDED","API_KEY_REVOKED","AUDIENCE_BUILD_ACTIVE","AUDIENCE_BUILD_ALREADY_ACTIVE","AUDIENCE_EDIT_CONFLICT","AUDIENCE_MEMBERSHIP_NOT_EXPRESSIBLE","AUDIENCE_NOT_FOUND","AUDIENCE_RUN_NOT_FOUND","AUDIT_NOT_FOUND","AUTHENTICATION_REQUIRED","AUTOMATION_GRAPH_INVALID","AUTOMATION_NOT_FOUND","AUTOMATION_NOT_PAUSABLE","AUTOMATION_NOT_PUBLISHED","AUTOMATION_RUN_NOT_FOUND","AUTOMATION_VERSION_CONFLICT","AUTOMATION_VERSION_NOT_FOUND","BATCH_TOO_LARGE","BRAND_DOMAIN_CONFLICT","BRAND_ID_REQUIRED","BRAND_LIMIT_REACHED","BRAND_NOT_FOUND","BRAND_NOT_READY","BRAND_SCOPE_MISMATCH","CHAT_NOT_FOUND","COMMENT_NOT_FOUND","CONSENT_REQUIRED","CONTACT_NOT_FOUND","CONTENT_OPERATION_FAILED","CONTRACT_LOCKED_BY_PUBLISHED_AUTOMATIONS","CORE_FIELD_IMMUTABLE","DOMAIN_ALREADY_EXISTS","DOMAIN_CLAIMED_ELSEWHERE","DOMAIN_NOT_FOUND","DOMAIN_NOT_READY","DOMAIN_OTHER_BRAND","DOMAIN_PROVIDER_ERROR","DOMAIN_PURPOSE_NOT_ALLOWED","DOMAIN_VERIFICATION_FAILED","DOMAIN_VERIFIED_ELSEWHERE","EMAIL_GENERATION_FAILED","EMAIL_GROUP_NAME_CONFLICT","EMAIL_GROUP_NOT_FOUND","EMAIL_IMAGES_MISSING","EMAIL_IMPORT_FAILED","EMAIL_IMPORT_PERSISTENCE_FAILED","EMAIL_IN_PROGRESS","EMAIL_IN_USE_BY_AUTOMATION","EMAIL_NOT_FOUND","EMAIL_NOT_READY","EMAIL_RESULT_UNAVAILABLE","EMAIL_RUN_AMBIGUOUS","EMAIL_TEMPLATE_INVALID","EMAIL_VERSION_NOT_FOUND","EXPORT_PROVIDER_ERROR","EXPORT_UNSUPPORTED","FIELD_NAME_COLLISION","FIELD_NOT_FOUND","FIELD_TYPE_MISMATCH","FIGMA_ACCESS_DENIED","FIGMA_CONVERSION_FAILED","FIGMA_FRAME_NOT_FOUND","FIGMA_NOT_CONNECTED","FIGMA_UNAVAILABLE","FIGMA_URL_INVALID","FLOW_NOT_FOUND","IDEMPOTENCY_CONFLICT","IDEMPOTENCY_IN_PROGRESS","INSIGHT_NOT_FOUND","INSUFFICIENT_CREDITS","INSUFFICIENT_PERMISSIONS","INSUFFICIENT_ROLE","INTEGRATION_NOT_CONNECTED","INTERNAL_ERROR","INVALID_API_KEY","INVALID_EMAIL","INVALID_PAYLOAD","INVALID_REQUEST","LIQUID_RENDER_ERROR","METHOD_NOT_ALLOWED","MISSING_EMAIL","NO_ELIGIBLE_RECIPIENTS","NO_PUBLISHED_AUTOMATION","NOT_FOUND","NOT_IMPLEMENTED","ORG_SCOPE_REQUIRED","PAYLOAD_SCHEMA_EMAIL_REQUIRED","PAYLOAD_TOO_LARGE","PREVIEW_NOT_FOUND","PUBLISH_VALIDATION_FAILED","RATE_LIMITED","RECIPIENT_UNSUBSCRIBED","REFERENCE_EMAIL_NOT_FOUND","RESUBSCRIBE_NOT_ALLOWED","RUN_IN_PROGRESS","RUN_NOT_CANCELLABLE","RUN_NOT_PAUSABLE","RUN_NOT_PAUSED","RUN_NOT_RESUMABLE","RUN_START_FAILED","RUN_STOP_FAILED","SEND_NOT_CANCELLABLE","SEND_NOT_FOUND","SEND_NOT_PAUSABLE","SEND_NOT_RESUMABLE","SEND_QUOTA_EXCEEDED","SERVICE_UNAVAILABLE","TEMPLATE_NOT_FOUND","TEST_RECIPIENT_NOT_ALLOWED","TRIGGER_ALREADY_EXISTS","TRIGGER_EVENT_NOT_FOUND","TRIGGER_HAS_DEPENDENT_AUTOMATIONS","TRIGGER_IMMUTABLE","TRIGGER_INSTANCE_NOT_FOUND","TRIGGER_LIMIT_REACHED","TRIGGER_NOT_FIREABLE","UPLOAD_IN_PROGRESS","UPLOAD_NOT_FOUND","UPLOAD_NOT_RECEIVED"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","enum":["authentication_error","authorization_error","invalid_request","not_found","not_implemented","conflict","rate_limit","payment_required","service_unavailable","internal_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"suggestion":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"error.suggestion","typeLabel":"string"},"docs":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"error.docs","typeLabel":"string\u003curi>"},"param":{"type":"string","minLength":1,"uniqueKey":"error.param","typeLabel":"string"},"retryAfter":{"type":"integer","minimum":0,"uniqueKey":"error.retryAfter","typeLabel":"integer"},"details":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","type","message","suggestion","docs"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"internalError":{"title":"internalError","value":{"error":{"code":"INTERNAL_ERROR","type":"internal_error","message":"An unexpected failure; the x-request-id header identifies it.","suggestion":"Retry the request. If it keeps failing, contact support with the x-request-id header.","docs":"https://docs.brew.new/api-reference/api/errors"}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"3becd03d-c396-4bc3-84c1-231cdbf0a23e":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API key","description":"Send your Brew API key as `Authorization: Bearer brew_xxx`.","x-default":"Bearer brew_your_api_key","scopes":[],"schemeName":"bearerAuth"}},"a3a3e731-b20f-48f7-873a-3123be78670a":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Send your Brew API key as `X-API-Key: brew_xxx`.","x-default":"brew_your_api_key","scopes":[],"schemeName":"apiKeyAuth"}}},"servers":{"16779731-d97b-4178-b35d-ab9db802c966":{"url":"https://brew.new/api","description":"Production"},"d75b81f5-e341-4448-9191-a43a58d2508e":{"url":"http://localhost:3000/api","description":"Local development"}},"schemas":{"1a0b2a43-3e97-4aea-906e-d879d89886b1":{"type":"object","properties":{"key":{"type":"string","minLength":1,"description":"Email/automation variable name, e.g. firstName. Use descriptive keys; fields have no separate description.","isRequired":true},"type":{"type":"string","enum":["string","int","boolean","object","array"],"isRequired":true},"required":{"type":"boolean","description":"True when the inbound payload must carry this key for the trigger to fire.","isRequired":true},"fallbackValue":{"oneOf":[{"type":"string","description":"Substitution value when the inbound payload is missing this field. Also used as the email agent's `e.g. {{ key | fallback }}` example. Scalar leaves only."},{"type":"number","description":"Substitution value when the inbound payload is missing this field. Also used as the email agent's `e.g. {{ key | fallback }}` example. Scalar leaves only."},{"type":"boolean","description":"Substitution value when the inbound payload is missing this field. Also used as the email agent's `e.g. {{ key | fallback }}` example. Scalar leaves only."}]},"pii":{"type":"string","enum":["none","low","high"],"description":"PII classification for redaction. \"high\" auto-redacts the value in execution logs and the inbound log. \"low\" (default when omitted) preserves the value. \"none\" is an explicit marker that the field is non-personal. On a container, \"high\" redacts the whole subtree."},"secret":{"type":"boolean","description":"True for a value used only to render this email: never stored on contacts, in logs or analytics; cannot be used in filters, splits or recipient fields. Scalars only, never `email`. False explicitly permits ordinary PII outside rendering; pii still controls log masking. When omitted, legacy high-PII scalar protection applies except for email and top-level firstName/lastName."},"children":{"type":"array","items":{"$circularRef":"1a0b2a43-3e97-4aea-906e-d879d89886b1"},"description":"Nested field nodes for type \"object\", or the element shape for an array of objects. Emails reference nested leaves as dotted paths ({{ order.total }}) and arrays via {% for %}."},"itemType":{"type":"string","enum":["string","int","boolean"],"description":"Element type for a type \"array\" of scalars. Omit when the array carries objects (declare `children` instead)."}},"required":["key","type","required"]}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"API key","description":"Send your Brew API key as `Authorization: Bearer brew_xxx`.","x-default":"Bearer brew_your_api_key","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Send your Brew API key as `Authorization: Bearer brew_xxx`.","format":"bearer","default":"Bearer brew_your_api_key","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"},{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Send your Brew API key as `X-API-Key: brew_xxx`.","x-default":"brew_your_api_key","scopes":[],"schemeName":"apiKeyAuth"},"schema":{"title":"X-API-Key","type":"string","description":"Send your Brew API key as `X-API-Key: brew_xxx`.","isRequired":true,"default":"brew_your_api_key","typeLabel":"string","deprecated":false},"schemeName":"apiKeyAuth","name":"X-API-Key"}],"title":"apiKeyAuth"}]},"originalFileLocation":"api-reference/openapi-public-v1.yaml"},"subdomain":"brew-796f053a","siteName":"Brew Help Docs","title":"Check a trigger is ready to fire - Brew Help Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-06T17:55:00.309Z","originalFileLocation":"api-reference/public-v1/automations/check-a-trigger-is-ready-to-fire.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Reports whether a fire would start anything right now, and everything a caller needs to wire one. Runs the same credential, brand scope and permission gates a real fire hits, without firing. Use when wiring an external service, before sending a live event. Returns 200 { ready, blockers[], payloadSchema, endpoint, publishedAutomations, counts, delivery? }. A NO_PUBLISHED_AUTOMATION blocker with ready: false means the trigger resolves and the credential passes, but nothing published listens for it yet, so a fire would start no runs. That stays a 200 because a probe has to report why a fire would not work. delivery appears for an integration trigger whose source sends only the events set up at its end (a Shopify shop sends a topic only to its own webhook): whether Brew has received that event, and what to set up when it has not. It never changes ready. Errors 404 TRIGGER_EVENT_NOT_FOUND for an unknown or cross-brand id; 409 TRIGGER_NOT_FIREABLE for a Brew event trigger, which Brew starts itself. See also fireTrigger, getTriggerContract, listTriggers.\">\u003cmeta data-mint-head name=\"keywords\" content=\"AI email marketing, Brew, AI-native email platform, on-brand email, email automations, email analytics, AI agents, MCP email server\">\u003cmeta data-mint-head name=\"application-name\" content=\"Brew Help Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"index, follow\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/brew-796f053a/Sm1C1504JEJ_FZ8Q/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/brew-796f053a/Sm1C1504JEJ_FZ8Q/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/brew-796f053a/Sm1C1504JEJ_FZ8Q/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/brew-796f053a/Sm1C1504JEJ_FZ8Q/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/brew-796f053a/Sm1C1504JEJ_FZ8Q/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/brew-796f053a/Sm1C1504JEJ_FZ8Q/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/brew-796f053a/Sm1C1504JEJ_FZ8Q/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/brew-796f053a/Sm1C1504JEJ_FZ8Q/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/brew-796f053a/Sm1C1504JEJ_FZ8Q/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Check a trigger is ready to fire - Brew Help Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Reports whether a fire would start anything right now, and everything a caller needs to wire one. Runs the same credential, brand scope and permission gates a real fire hits, without firing. Use when wiring an external service, before sending a live event. Returns 200 { ready, blockers[], payloadSchema, endpoint, publishedAutomations, counts, delivery? }. A NO_PUBLISHED_AUTOMATION blocker with ready: false means the trigger resolves and the credential passes, but nothing published listens for it yet, so a fire would start no runs. That stays a 200 because a probe has to report why a fire would not work. delivery appears for an integration trigger whose source sends only the events set up at its end (a Shopify shop sends a topic only to its own webhook): whether Brew has received that event, and what to set up when it has not. It never changes ready. Errors 404 TRIGGER_EVENT_NOT_FOUND for an unknown or cross-brand id; 409 TRIGGER_NOT_FIREABLE for a Brew event trigger, which Brew starts itself. See also fireTrigger, getTriggerContract, listTriggers.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Brew Help Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.brew.new/api-reference/public-v1/automations/check-a-trigger-is-ready-to-fire\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://docs.brew.new/images/og/default.png\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Check a trigger is ready to fire - Brew Help Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Reports whether a fire would start anything right now, and everything a caller needs to wire one. Runs the same credential, brand scope and permission gates a real fire hits, without firing. Use when wiring an external service, before sending a live event. Returns 200 { ready, blockers[], payloadSchema, endpoint, publishedAutomations, counts, delivery? }. A NO_PUBLISHED_AUTOMATION blocker with ready: false means the trigger resolves and the credential passes, but nothing published listens for it yet, so a fire would start no runs. That stays a 200 because a probe has to report why a fire would not work. delivery appears for an integration trigger whose source sends only the events set up at its end (a Shopify shop sends a topic only to its own webhook): whether Brew has received that event, and what to set up when it has not. It never changes ready. Errors 404 TRIGGER_EVENT_NOT_FOUND for an unknown or cross-brand id; 409 TRIGGER_NOT_FIREABLE for a Brew event trigger, which Brew starts itself. See also fireTrigger, getTriggerContract, listTriggers.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://docs.brew.new/images/og/default.png\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/brew-796f053a/Sm1C1504JEJ_FZ8Q/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Brew Help Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FF772D\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.brew.new/api-reference/public-v1/automations/check-a-trigger-is-ready-to-fire\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/public-v1/automations/check-a-trigger-is-ready-to-fire.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.brew.new/#organization\",\"name\":\"Brew Help Docs\",\"url\":\"https://docs.brew.new\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/brew-796f053a/QjuRdMJynrgWDqeo/logo/lightmode.svg?fit=max\u0026auto=format\u0026n=QjuRdMJynrgWDqeo\u0026q=85\u0026s=5e906ff65142dc905a773e7747b47816\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.brew.new#website\",\"name\":\"Brew Help Docs\",\"url\":\"https://docs.brew.new\",\"publisher\":{\"@id\":\"https://docs.brew.new/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.brew.new/api-reference/public-v1/automations/check-a-trigger-is-ready-to-fire#webpage\",\"url\":\"https://docs.brew.new/api-reference/public-v1/automations/check-a-trigger-is-ready-to-fire\",\"name\":\"Check a trigger is ready to fire\",\"description\":\"Reports whether a fire would start anything right now, and everything a caller needs to wire one. Runs the same credential, brand scope and permission gates a real fire hits, without firing. Use when wiring an external service, before sending a live event. Returns 200 { ready, blockers[], payloadSchema, endpoint, publishedAutomations, counts, delivery? }. A NO_PUBLISHED_AUTOMATION blocker with ready: false means the trigger resolves and the credential passes, but nothing published listens for it yet, so a fire would start no runs. That stays a 200 because a probe has to report why a fire would not work. delivery appears for an integration trigger whose source sends only the events set up at its end (a Shopify shop sends a topic only to its own webhook): whether Brew has received that event, and what to set up when it has not. It never changes ready. Errors 404 TRIGGER_EVENT_NOT_FOUND for an unknown or cross-brand id; 409 TRIGGER_NOT_FIREABLE for a Brew event trigger, which Brew starts itself. See also fireTrigger, getTriggerContract, listTriggers.\",\"dateModified\":\"2026-11-06T17:55:00.309Z\",\"isPartOf\":{\"@id\":\"https://docs.brew.new#website\"},\"breadcrumb\":{\"@id\":\"https://docs.brew.new/api-reference/public-v1/automations/check-a-trigger-is-ready-to-fire#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.brew.new/api-reference/public-v1/automations/check-a-trigger-is-ready-to-fire#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Public API v1\",\"item\":\"https://docs.brew.new/api-reference/public-v1/emails/list-email-designs\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Automations\",\"item\":\"https://docs.brew.new/api-reference/public-v1/automations/list-automations\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Check a trigger is ready to fire\",\"item\":\"https://docs.brew.new/api-reference/public-v1/automations/check-a-trigger-is-ready-to-fire\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.brew.new/api-reference/public-v1/automations/check-a-trigger-is-ready-to-fire#apireference\",\"headline\":\"Check a trigger is ready to fire\",\"name\":\"Check a trigger is ready to fire\",\"description\":\"Reports whether a fire would start anything right now, and everything a caller needs to wire one. Runs the same credential, brand scope and permission gates a real fire hits, without firing. Use when wiring an external service, before sending a live event. Returns 200 { ready, blockers[], payloadSchema, endpoint, publishedAutomations, counts, delivery? }. A NO_PUBLISHED_AUTOMATION blocker with ready: false means the trigger resolves and the credential passes, but nothing published listens for it yet, so a fire would start no runs. That stays a 200 because a probe has to report why a fire would not work. delivery appears for an integration trigger whose source sends only the events set up at its end (a Shopify shop sends a topic only to its own webhook): whether Brew has received that event, and what to set up when it has not. It never changes ready. Errors 404 TRIGGER_EVENT_NOT_FOUND for an unknown or cross-brand id; 409 TRIGGER_NOT_FIREABLE for a Brew event trigger, which Brew starts itself. See also fireTrigger, getTriggerContract, listTriggers.\",\"url\":\"https://docs.brew.new/api-reference/public-v1/automations/check-a-trigger-is-ready-to-fire\",\"mainEntityOfPage\":{\"@id\":\"https://docs.brew.new/api-reference/public-v1/automations/check-a-trigger-is-ready-to-fire#webpage\"},\"image\":\"https://docs.brew.new/images/og/default.png\",\"dateModified\":\"2026-11-06T17:55:00.309Z\",\"publisher\":{\"@id\":\"https://docs.brew.new/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.brew.new#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Brew Help Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Brew Help Docs","nav":{"global":{},"tabs":[{"tab":"Docs","pages":[{"title":"Docs","href":"/get-started/welcome"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/brew-university"}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/integrations/integrations"}]},{"tab":"Developers","groups":[{"group":"Start Here","pages":[{"title":"Build with Brew","href":"/api-reference/overview"},{"title":"API Introduction","href":"/api-reference/api/api-introduction"},{"title":"Send Your First Email from Code","href":"/api-reference/guides/send-your-first-email-from-code"},{"title":"API Catalog","href":"/api-reference/api/api-catalog"}]},{"group":"Public API v1","pages":[{"group":"Emails","pages":[{"title":"List email designs","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/emails","href":"/api-reference/public-v1/emails/list-email-designs"},{"title":"Generate an email design","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/emails","href":"/api-reference/public-v1/emails/generate-an-email-design"},{"title":"Get an email design","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/emails/{emailId}","href":"/api-reference/public-v1/emails/get-an-email-design"},{"title":"Delete an email design","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml delete /v1/emails/{emailId}","href":"/api-reference/public-v1/emails/delete-an-email-design"},{"title":"Edit an email design","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml patch /v1/emails/{emailId}","href":"/api-reference/public-v1/emails/edit-an-email-design"},{"title":"Import an email","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/emails/import","href":"/api-reference/public-v1/emails/import-an-email"},{"title":"Import a Figma frame","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/emails/figma","href":"/api-reference/public-v1/emails/import-a-figma-frame"},{"title":"Clone an email design","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/emails/{emailId}/clone","href":"/api-reference/public-v1/emails/clone-an-email-design"},{"title":"Restore a historical version","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/emails/{emailId}/restore","href":"/api-reference/public-v1/emails/restore-a-historical-version"},{"title":"Export a design to an ESP","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/emails/{emailId}/export","href":"/api-reference/public-v1/emails/export-a-design-to-an-esp"},{"title":"Audit an email","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/emails/audit","href":"/api-reference/public-v1/emails/audit-an-email"},{"title":"Preview across clients \u0026 devices","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/emails/{emailId}/client-previews","href":"/api-reference/public-v1/emails/preview-across-clients-\u0026-devices"},{"title":"List inbox placement tests","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/emails/{emailId}/inbox-placement-tests","href":"/api-reference/public-v1/emails/list-inbox-placement-tests"},{"title":"Run an inbox placement test","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/emails/{emailId}/inbox-placement-tests","href":"/api-reference/public-v1/emails/run-an-inbox-placement-test"},{"title":"Get inbox placement test results","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/emails/{emailId}/inbox-placement-tests/{testId}","href":"/api-reference/public-v1/emails/get-inbox-placement-test-results"},{"title":"Read a saved email audit","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/emails/audits/{auditId}","href":"/api-reference/public-v1/emails/read-a-saved-email-audit"},{"title":"Read email rendering progress","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/emails/client-previews/{previewId}","href":"/api-reference/public-v1/emails/read-email-rendering-progress"},{"title":"Create an authenticated email canvas embed session","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/canvas/sessions","href":"/api-reference/public-v1/emails/create-an-authenticated-email-canvas-embed-session"},{"title":"Refresh a canvas session","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/canvas/sessions/{sessionId}/refresh","href":"/api-reference/public-v1/emails/refresh-a-canvas-session"},{"title":"Revoke a canvas session","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml delete /v1/canvas/sessions/{sessionId}","href":"/api-reference/public-v1/emails/revoke-a-canvas-session"},{"title":"List email groups","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/email-groups","href":"/api-reference/public-v1/emails/list-email-groups"},{"title":"Create an email group","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/email-groups","href":"/api-reference/public-v1/emails/create-an-email-group"},{"title":"Get an email group","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/email-groups/{groupId}","href":"/api-reference/public-v1/emails/get-an-email-group"},{"title":"Delete an email group","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml delete /v1/email-groups/{groupId}","href":"/api-reference/public-v1/emails/delete-an-email-group"},{"title":"Update an email group","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml patch /v1/email-groups/{groupId}","href":"/api-reference/public-v1/emails/update-an-email-group"},{"title":"Send an email","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/sends","href":"/api-reference/public-v1/emails/send-an-email"},{"title":"Cancel a send","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/sends/{sendId}/cancel","href":"/api-reference/public-v1/emails/cancel-a-send"},{"title":"Pause a gradual send","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/sends/{sendId}/pause","href":"/api-reference/public-v1/emails/pause-a-gradual-send"},{"title":"Resume a paused gradual send","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/sends/{sendId}/resume","href":"/api-reference/public-v1/emails/resume-a-paused-gradual-send"},{"title":"List email comments","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/emails/{emailId}/comments","href":"/api-reference/public-v1/emails/list-email-comments"}]},{"group":"Sends","pages":[{"title":"List sends","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/sends","href":"/api-reference/public-v1/sends/list-sends"},{"title":"Get a send","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/sends/{sendId}","href":"/api-reference/public-v1/sends/get-a-send"}]},{"group":"Analytics","pages":[{"title":"Brand overview (totals, rates, timeseries)","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/analytics/overview","href":"/api-reference/public-v1/analytics/brand-overview-totals-rates-timeseries"},{"title":"Automation performance","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/analytics/automations","href":"/api-reference/public-v1/analytics/automation-performance"},{"title":"Unified events feed","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/analytics/events","href":"/api-reference/public-v1/analytics/unified-events-feed"}]},{"group":"Automations","pages":[{"title":"List automations","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/automations","href":"/api-reference/public-v1/automations/list-automations"},{"title":"Create an automation","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/automations","href":"/api-reference/public-v1/automations/create-an-automation"},{"title":"Get an automation","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/automations/{automationId}","href":"/api-reference/public-v1/automations/get-an-automation"},{"title":"Delete an automation","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml delete /v1/automations/{automationId}","href":"/api-reference/public-v1/automations/delete-an-automation"},{"title":"Update or publish an automation","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml patch /v1/automations/{automationId}","href":"/api-reference/public-v1/automations/update-or-publish-an-automation"},{"title":"Test an automation","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/automations/{automationId}/test","href":"/api-reference/public-v1/automations/test-an-automation"},{"title":"Run a manual-audience automation","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/automations/{automationId}/run","href":"/api-reference/public-v1/automations/run-a-manual-audience-automation"},{"title":"List manual-audience runs","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/automations/audience-runs","href":"/api-reference/public-v1/automations/list-manual-audience-runs"},{"title":"Get a manual-audience run","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/automations/audience-runs/{audienceRunId}","href":"/api-reference/public-v1/automations/get-a-manual-audience-run"},{"title":"Pause a manual-audience run","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/automations/audience-runs/{audienceRunId}/pause","href":"/api-reference/public-v1/automations/pause-a-manual-audience-run"},{"title":"Resume a manual-audience run","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/automations/audience-runs/{audienceRunId}/resume","href":"/api-reference/public-v1/automations/resume-a-manual-audience-run"},{"title":"Cancel a manual-audience run","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/automations/audience-runs/{audienceRunId}/cancel","href":"/api-reference/public-v1/automations/cancel-a-manual-audience-run"},{"title":"List automation runs","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/automations/runs","href":"/api-reference/public-v1/automations/list-automation-runs"},{"title":"Get an automation run","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/automations/runs/{automationRunId}","href":"/api-reference/public-v1/automations/get-an-automation-run"},{"title":"Cancel an automation run","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/automations/runs/{automationRunId}/cancel","href":"/api-reference/public-v1/automations/cancel-an-automation-run"},{"title":"Get or create an unsubscribe trigger","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/automations/triggers/brew-events","href":"/api-reference/public-v1/automations/get-or-create-an-unsubscribe-trigger"},{"title":"List triggers","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/automations/triggers","href":"/api-reference/public-v1/automations/list-triggers"},{"title":"Create a trigger","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/automations/triggers","href":"/api-reference/public-v1/automations/create-a-trigger"},{"title":"Get a trigger","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/automations/triggers/{triggerEventId}","href":"/api-reference/public-v1/automations/get-a-trigger"},{"title":"Delete a trigger","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml delete /v1/automations/triggers/{triggerEventId}","href":"/api-reference/public-v1/automations/delete-a-trigger"},{"title":"Update a trigger","description":"Updates one or more editable fields (`title`, `description`, `payloadSchema`). Whether a trigger fires is governed solely by `automation.published` on each wired automation — there is no per-trigger off-switch. Integration-provisioned triggers are immutable here (`422 TRIGGER_IMMUTABLE`). While a published automation uses the trigger, a `payloadSchema` change that would stop it from running (removing or retyping a field it reads, or declaring the shape of an open object or list so one of its merge tags no longer resolves) is refused with `409 CONTRACT_LOCKED_BY_PUBLISHED_AUTOMATIONS`. Returns the bare updated row.","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml patch /v1/automations/triggers/{triggerEventId}","href":"/api-reference/public-v1/automations/update-a-trigger"},{"title":"Check a trigger is ready to fire","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/automations/triggers/{triggerEventId}/readiness","href":"/api-reference/public-v1/automations/check-a-trigger-is-ready-to-fire"},{"title":"Fire a trigger","description":"Fires the trigger: validates the payload against the stored contract, upserts the contact it describes, then starts one run per published automation attached to the trigger.\n\n**Use when** an event in your product should start every published automation attached to this trigger.\n\n**Input** `{ payload }`, validated against the trigger’s `payloadSchema`. Unknown fields are accepted and reported in `warnings[]`. The contact derived from the payload is upserted before the fan-out with the declared top-level scalar fields the fire sent; object and array fields stay template data, and a contract `fallbackValue` is never written onto the contact. A value the contact field’s type refuses is left out and reported as a `FIELD_TYPE_MISMATCH` warning (`field`, `expectedType`, `actualType`); the rest of the contact is written and the runs still start.\n\n**Returns** `202 { triggerInstanceId, triggerEventId, status, automationRunIds[], notStarted[], publishedAutomations[], counts, warnings[], receivedAt }`. Follow a run with `getAutomationRun`, the fire itself with `getTriggerInstance`. `notStarted[]` names each automation whose run failed to start and why, so a `triggered` fire with no runs explains itself. `counts.skipped` is the recipients a suppression already covered, so `automations: 2, skipped: 2` means nothing was delivered.\n\n**Idempotency** send a stable `Idempotency-Key` header on every retry. A repeat answers `200` with `status: \"replayed\"` and the ORIGINAL run ids; nothing fires twice. A fire key is matched against the stored trigger receipt, so it replays for as long as the receipt is kept (90 days), not only the 24 hours of the shared response cache. Use one key per business action and never reuse it for a different fire.\n\n**Errors** `400 INVALID_PAYLOAD` when the payload does not satisfy the schema, or when `email` (or `user.email`) is not one plain address such as `jane@example.com`: a display name (`Jane \u003cjane@example.com>`), a list or a line break is refused with `details.errors[].code: \"invalid_email\"`, and no contact is written; `404 TRIGGER_EVENT_NOT_FOUND` for an unknown or cross-brand id; `422 NO_PUBLISHED_AUTOMATION` when nothing published listens for the trigger; `409 IDEMPOTENCY_CONFLICT` when a key is reused with a different body; `409 TRIGGER_NOT_FIREABLE` for a Brew event trigger, which Brew starts itself (try its automation with `testAutomation`).\n\n**See also** `checkTriggerReady`, `getTriggerInstance`, `listAutomationRuns`.","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/automations/triggers/{triggerEventId}/fire","href":"/api-reference/public-v1/automations/fire-a-trigger"},{"title":"Get a trigger payload contract","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/automations/triggers/{triggerEventId}/contract","href":"/api-reference/public-v1/automations/get-a-trigger-payload-contract"},{"title":"Declare a trigger payload contract","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml put /v1/automations/triggers/{triggerEventId}/contract","href":"/api-reference/public-v1/automations/declare-a-trigger-payload-contract"},{"title":"Validate a trigger payload","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/automations/triggers/{triggerEventId}/contract/validate","href":"/api-reference/public-v1/automations/validate-a-trigger-payload"},{"title":"Infer a payload contract from an example","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/payload-contracts/infer","href":"/api-reference/public-v1/automations/infer-a-payload-contract-from-an-example"},{"title":"List trigger instances","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/automations/trigger-instances","href":"/api-reference/public-v1/automations/list-trigger-instances"},{"title":"Get a trigger instance","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/automations/trigger-instances/{triggerInstanceId}","href":"/api-reference/public-v1/automations/get-a-trigger-instance"}]},{"group":"Contacts","pages":[{"title":"List contacts","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/contacts","href":"/api-reference/public-v1/contacts/list-contacts"},{"title":"Create or update contacts","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/contacts","href":"/api-reference/public-v1/contacts/create-or-update-contacts"},{"title":"Get a contact","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/contacts/{email}","href":"/api-reference/public-v1/contacts/get-a-contact"},{"title":"Delete a contact","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml delete /v1/contacts/{email}","href":"/api-reference/public-v1/contacts/delete-a-contact"},{"title":"Update a contact","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml patch /v1/contacts/{email}","href":"/api-reference/public-v1/contacts/update-a-contact"},{"title":"Get contacts","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/contacts/search","href":"/api-reference/public-v1/contacts/get-contacts"},{"title":"Validate email deliverability","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/contacts/validate","href":"/api-reference/public-v1/contacts/validate-email-deliverability"},{"title":"Bulk-import contacts from CSV","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/contacts/import-csv","href":"/api-reference/public-v1/contacts/bulk-import-contacts-from-csv"},{"title":"Bulk-import contacts from JSON","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/contacts/import","href":"/api-reference/public-v1/contacts/bulk-import-contacts-from-json"},{"title":"Batch-delete contacts","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/contacts/batch-delete","href":"/api-reference/public-v1/contacts/batch-delete-contacts"}]},{"group":"Contact Fields","pages":[{"title":"List contact fields","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/fields","href":"/api-reference/public-v1/contact-fields/list-contact-fields"},{"title":"Create a contact field","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/fields","href":"/api-reference/public-v1/contact-fields/create-a-contact-field"},{"title":"Get a contact field","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/fields/{fieldName}","href":"/api-reference/public-v1/contact-fields/get-a-contact-field"},{"title":"Delete a contact field","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml delete /v1/fields/{fieldName}","href":"/api-reference/public-v1/contact-fields/delete-a-contact-field"}]},{"group":"Audiences","pages":[{"title":"List audiences","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/audiences","href":"/api-reference/public-v1/audiences/list-audiences"},{"title":"Create an audience","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/audiences","href":"/api-reference/public-v1/audiences/create-an-audience"},{"title":"Get an audience","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/audiences/{audienceId}","href":"/api-reference/public-v1/audiences/get-an-audience"},{"title":"Delete an audience","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml delete /v1/audiences/{audienceId}","href":"/api-reference/public-v1/audiences/delete-an-audience"},{"title":"Update an audience","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml patch /v1/audiences/{audienceId}","href":"/api-reference/public-v1/audiences/update-an-audience"},{"title":"Create an audience from analytics events","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/audiences/from-events","href":"/api-reference/public-v1/audiences/create-an-audience-from-analytics-events"},{"title":"Duplicate an audience","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/audiences/{audienceId}/duplicate","href":"/api-reference/public-v1/audiences/duplicate-an-audience"}]},{"group":"Domains","pages":[{"title":"List domains","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/domains","href":"/api-reference/public-v1/domains/list-domains"},{"title":"Add a domain","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/domains","href":"/api-reference/public-v1/domains/add-a-domain"},{"title":"Get a domain","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/domains/{domainId}","href":"/api-reference/public-v1/domains/get-a-domain"},{"title":"Delete a domain","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml delete /v1/domains/{domainId}","href":"/api-reference/public-v1/domains/delete-a-domain"},{"title":"Update domain settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml patch /v1/domains/{domainId}","href":"/api-reference/public-v1/domains/update-domain-settings"},{"title":"Verify a domain","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/domains/{domainId}/verify","href":"/api-reference/public-v1/domains/verify-a-domain"},{"title":"List a domain's unsubscribes","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/domains/{domainId}/unsubscribes","href":"/api-reference/public-v1/domains/list-a-domains-unsubscribes"},{"title":"Add addresses to a domain's unsubscribe list","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/domains/{domainId}/unsubscribes","href":"/api-reference/public-v1/domains/add-addresses-to-a-domains-unsubscribe-list"},{"title":"Remove an address from a domain's unsubscribe list","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml delete /v1/domains/{domainId}/unsubscribes/{email}","href":"/api-reference/public-v1/domains/remove-an-address-from-a-domains-unsubscribe-list"},{"title":"Import a CSV into a domain's unsubscribe list","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/domains/{domainId}/unsubscribes/import","href":"/api-reference/public-v1/domains/import-a-csv-into-a-domains-unsubscribe-list"},{"title":"Export a domain's unsubscribe list","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/domains/{domainId}/unsubscribes/export","href":"/api-reference/public-v1/domains/export-a-domains-unsubscribe-list"},{"title":"Get domain health","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/domains/{domainId}/health","href":"/api-reference/public-v1/domains/get-domain-health"}]},{"group":"Templates","pages":[{"title":"List templates","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/templates","href":"/api-reference/public-v1/templates/list-templates"},{"title":"Get a public template","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/templates/{templateId}","href":"/api-reference/public-v1/templates/get-a-public-template"},{"title":"List flows","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/flows","href":"/api-reference/public-v1/templates/list-flows"},{"title":"Get a flow","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/flows/{slug}","href":"/api-reference/public-v1/templates/get-a-flow"}]},{"group":"Brand","pages":[{"title":"Get the brand bound to this API key","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/brand","href":"/api-reference/public-v1/brand/get-the-brand-bound-to-this-api-key"},{"title":"Update brand identity + design system","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml patch /v1/brand","href":"/api-reference/public-v1/brand/update-brand-identity-+-design-system"},{"title":"Get brand images","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/brand/images","href":"/api-reference/public-v1/brand/get-brand-images"},{"title":"Delete a brand image","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml delete /v1/brand/images/{assetId}","href":"/api-reference/public-v1/brand/delete-a-brand-image"}]},{"group":"Brands","pages":[{"title":"List the brands this credential can reach","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/brands","href":"/api-reference/public-v1/brands/list-the-brands-this-credential-can-reach"},{"title":"Create a brand and start its extraction","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/brands","href":"/api-reference/public-v1/brands/create-a-brand-and-start-its-extraction"},{"title":"Get one brand’s lifecycle state","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/brands/{brandId}","href":"/api-reference/public-v1/brands/get-one-brand’s-lifecycle-state"}]},{"group":"Content","pages":[{"title":"Generate an image","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/content/generate-image","href":"/api-reference/public-v1/content/generate-an-image"},{"title":"Generate a GIF","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/content/gif","href":"/api-reference/public-v1/content/generate-a-gif"},{"title":"Transform an image","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/content/transform","href":"/api-reference/public-v1/content/transform-an-image"},{"title":"Render HTML to a PNG","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/content/html-to-png","href":"/api-reference/public-v1/content/render-html-to-a-png"},{"title":"Add image","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/content/add-image","href":"/api-reference/public-v1/content/add-image"},{"title":"Create an image upload","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/content/image-uploads","href":"/api-reference/public-v1/content/create-an-image-upload"}]},{"group":"Usage","pages":[{"title":"Get usage","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/usage","href":"/api-reference/public-v1/usage/get-usage"}]},{"group":"Integrations","pages":[{"title":"List integrations","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/integrations","href":"/api-reference/public-v1/integrations/list-integrations"}]},{"group":"API Keys","pages":[{"title":"List API keys","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/api-keys","href":"/api-reference/public-v1/api-keys/list-api-keys"},{"title":"Create an API key","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml post /v1/api-keys","href":"/api-reference/public-v1/api-keys/create-an-api-key"},{"title":"Revoke an API key","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml delete /v1/api-keys/{keyId}","href":"/api-reference/public-v1/api-keys/revoke-an-api-key"}]},{"group":"Health","pages":[{"title":"Liveness probe","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/health","href":"/api-reference/public-v1/health/liveness-probe"}]},{"group":"Meta","pages":[{"title":"Machine-readable API catalog","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/help","href":"/api-reference/public-v1/meta/machine-readable-api-catalog"}]},{"group":"Chats","pages":[{"title":"List chats","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/chats","href":"/api-reference/public-v1/chats/list-chats"},{"title":"Get chat context","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/chats/{chatId}","href":"/api-reference/public-v1/chats/get-chat-context"}]},{"group":"Insights","pages":[{"title":"List insights","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/insights","href":"/api-reference/public-v1/insights/list-insights"},{"title":"Get an insight","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/insights/{insightId}","href":"/api-reference/public-v1/insights/get-an-insight"}]},{"group":"Notifications","pages":[{"title":"List notifications","deprecated":null,"version":null,"openapi":"/api-reference/openapi-public-v1.yaml get /v1/notifications","href":"/api-reference/public-v1/notifications/list-notifications"}]}]},{"group":"API Contracts","pages":[{"title":"Authentication and Security","href":"/api-reference/api/authentication"},{"title":"Organization and Brand Credentials","href":"/api-reference/api/organization-and-brand-scope"},{"title":"Data Model","href":"/api-reference/api/data-model"},{"title":"Rate Limits","href":"/api-reference/api/rate-limits"},{"title":"Idempotency","href":"/api-reference/api/idempotency"},{"title":"Pagination","href":"/api-reference/api/pagination"},{"title":"Batch Operations","href":"/api-reference/api/batch-operations"},{"title":"Async Jobs and Polling","href":"/api-reference/api/async-jobs"},{"title":"API Credits","sidebarTitle":"Credits","href":"/api-reference/api/credits"},{"title":"Events and Webhooks","href":"/api-reference/api/events-and-webhooks"},{"title":"API Errors","sidebarTitle":"Errors","href":"/api-reference/api/errors"},{"title":"Response Headers","href":"/api-reference/api/response-headers"},{"title":"API Design Notes","href":"/api-reference/api/design-notes"},{"title":"Migrate to the New v1 Surface","href":"/api-reference/api/v1-migration"}]},{"group":"API Guides","pages":[{"title":"Check Brand Readiness Before Generating","href":"/api-reference/guides/check-brand-readiness"},{"title":"Upload a Local Image","href":"/api-reference/guides/upload-a-local-image"},{"title":"Monitor Email Sends","href":"/api-reference/guides/monitor-campaign-sends"},{"title":"Explore Per-Contact Engagement","href":"/api-reference/guides/per-contact-engagement"},{"title":"Read Brew Insights","href":"/api-reference/guides/read-brew-insights"},{"title":"Typed Payload Contracts","href":"/api-reference/guides/typed-payload-contracts"}]},{"group":"MCP Server","pages":[{"title":"Brew MCP Server","href":"/api-reference/mcp/overview"},{"title":"MCP Quickstart","href":"/api-reference/mcp/quickstart"},{"title":"Connect Your MCP Client","sidebarTitle":"Connect Your Client","href":"/api-reference/mcp/connect-your-client"},{"title":"MCP Tools","href":"/api-reference/mcp/tools"},{"title":"MCP Workflows","href":"/api-reference/mcp/workflows"},{"title":"Sync a CRM into Brew over MCP","href":"/api-reference/mcp/sync-a-crm"},{"title":"Sync Brew and Attio over MCP","href":"/api-reference/mcp/attio"},{"title":"MCP Authentication and Scoping","href":"/api-reference/mcp/authentication-and-scoping"}]},{"group":"CLI","pages":[{"title":"Brew CLI","href":"/api-reference/cli/overview"},{"title":"CLI Quickstart","href":"/api-reference/cli/quickstart"},{"title":"CLI Installation","sidebarTitle":"Installation","href":"/api-reference/cli/installation"},{"title":"CLI Authentication","sidebarTitle":"Authentication","href":"/api-reference/cli/authentication"},{"title":"CLI Commands","sidebarTitle":"Commands","href":"/api-reference/cli/commands"},{"title":"CLI Common Flows","sidebarTitle":"Common Flows","href":"/api-reference/cli/common-flows"},{"title":"Use the CLI from AI Agents","sidebarTitle":"Use from AI Agents","href":"/api-reference/cli/agents"}]},{"group":"SDKs","pages":[{"title":"SDK Overview","href":"/sdks/overview"},{"title":"SDK Authentication","sidebarTitle":"Authentication","href":"/sdks/authentication"},{"title":"Generate Your Own SDK","href":"/sdks/openapi-codegen"},{"title":"TypeScript Installation","href":"/sdks/typescript/installation"},{"title":"TypeScript Quickstart","href":"/sdks/typescript/quickstart"},{"title":"TypeScript Resource Surface","href":"/sdks/typescript/resources"},{"title":"Build a White-Label Email Editor","sidebarTitle":"White-Label Integration","href":"/sdks/typescript/white-label-email-editor"},{"title":"Embed the Email Canvas","href":"/sdks/typescript/embedded-email-canvas"},{"title":"TypeScript Error Handling","href":"/sdks/typescript/error-handling"},{"title":"Agentic Cookbook","href":"/sdks/typescript/agentic-cookbook"}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog/overview"}]},{"tab":"Legal","pages":[{"title":"Legal","href":"/legal/terms-of-service"}]}]},"basePath":"","title":"Check a trigger is ready to fire - Brew Help Docs","buildId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","deploymentId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CBsVopKK.js","utils-DZAk68jJ.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-D32AYZrP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-D_A5_cny.js","snippetPresets-xNRfS9th.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BIB25-tq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CydJ4w4j.js","shallow-CYPBeQSG.js","getApiPlaygroundDisplay-A5xJVBOu.js","CodeSnippet-BVRTgi3m.js","CodeSnippets-DjD6BSlt.js","Page-Dr40SSJq.js","getPastedJson-D4V4JyrR.js","icon-uhcnG22T.js","MethodPill-CM-ZQdGH.js","DuplicateIcon-B_WnOiNf.js","createIcon-CJsb8utt.js","DynamicMarkdown-D-2HDKEp.js","SectionHeading-KP5xmMgQ.js","axios-vUo_bRtp.js","Markdown-D_k0dg6k.js","clsx-DK3K4Z1S.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DE3EVdvd.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-fN9H9n9g.js"]}