Skip to main content
September 2026 · Available on all plans.
Historical note · September 2026 · Describes Brew as of September 2026. For current behavior, see Brand vs Organization Keys.

What Shipped

Running several brands from code used to mean one API key per brand, and one agent connection per brand. Switching brands meant switching credentials. Now one key, or one agent connection, can reach every brand in your organization. You name the brand on each call. Keys locked to a single brand work exactly as before.

Two Kinds of Key

When you create a key in Settings → API, scope it to one brand or to the whole organization.
  • Brand key. Reaches one brand, with nothing to name on a request. Use it when an integration only ever touches that brand, so a leak stays inside it.
  • Organization key. Reaches every brand. Each request names its brand in the X-Brand-Id header. There is no default brand, so a call that forgets fails instead of landing in the wrong place. With the brands permission, it can also create brands.
GET /v1/brands lists the brand ids an organization key can use.

Your Agent, Across Every Brand

MCP connections scope the same way. Connect Claude, Cursor, or any MCP client to one brand, or to all of them.
1

Connect once

Add https://brew.new/api/mcp to your client, sign in with Brew, and pick all brands instead of one. An organization key works too.
2

Ask across brands

“Compare last month’s open rates for Acme and North Studio.” The agent calls list_brands, then passes a brand_id on each call.
3

Approve before anything sends

A real send or audience launch pauses for your approval first, so nothing goes out from the wrong brand.

In the SDK and CLI

The TypeScript SDK pins a brand with brew.withBrand(brandId), and brew.brands lists and creates brands. The CLI takes --brand <brandId> or BREW_BRAND_ID.

Get Started

Read Brand vs Organization Keys for the full rules, or MCP Authentication & Scoping to connect an agent across brands.