November 2026 · For every contract change, see the
API Changelog.
What Shipped
We went through Brew’s MCP server and API call by call, the way an assistant and a developer use them, and acted on what builders told us. The goal: one call should give an agent or a developer everything it needs for the next step, without a second guess or a retry.Errors That List Every Problem
A400 INVALID_REQUEST with more than one problem now lists them all in
details.issues[], up to 20, each with the field and the reason. Fix a request
in one pass instead of one error at a time. On a field that accepts several
shapes, such as mode, the error names the part that’s wrong instead of
saying “Invalid input”.
Automation saves do the same. An AUTOMATION_GRAPH_INVALID issue now carries
a code such as cycle or unreachable_node, so you know what to fix in the
graph. API Errors lists every code.
MCP Results an Assistant Can Read
- Send results carry the numbers. Each send in an analytics result lists delivered, opened, and clicked, plus bounces and unsubscribes when there are any. An assistant can answer “how did my last campaign do?” from one call.
- Domain health leads with a verdict. The summary says whether the domain is ready to send and names its weakest part, such as “Weakest: placement 25/100”.
- Fewer tools to choose from. Three tools folded into their siblings. An organization connection now has 89 tools and a brand connection 88. See the MCP tool catalog.
- Limit errors say when the limit resets, so an agent can tell you when to try again.
- Filters take arrays. Analytics and audience filters accept
["pro", "enterprise"]instead of a comma-separated string.
Name Your Email Canvases
POST /v1/emails and MCP create_email take an optional title. Without one,
Brew names the canvas from the subject line, or else turns the prompt into a
short label: “An on-brand welcome email for my newsletter” becomes “Welcome
email for newsletter”. Your Emails list stays readable when an agent creates
dozens.
Safer Automation Edits
PATCH /v1/automations/{automationId}keeps your connections when you send onlynodes. Sendconnections: []when you mean to clear them.expectedBaseVersionIdworks on its own. Send the version you read, and the save returns409 AUTOMATION_VERSION_CONFLICTif someone changed the automation since. With it, two agents, or an agent and a teammate, can’t overwrite each other’s work.
Know What Changed
- Contact updates report only real changes.
PATCH /v1/contacts/{email}returnsupdatedwith just the fields whose value changed, pluswarningswhen Brew converted a value to its field’s type or had to assume a date’s day and month order. - Email import says what didn’t carry over. When an imported design can’t
keep an element or some text,
assetReport.warningsnames it. - Brand reads return the brand’s saved name and tagline by default, so an agent greets your customers with the name you chose.
Free Brand-Image Search
Searching your brand’s images by meaning (GET /v1/brand/images?q=, MCP
search_brand_images) is now free. Agents can look for the right photo as
often as they need.