Skip to main content

Overview

Brew currently ships an official TypeScript SDK for the public API. It is a thin, typed wrapper over the same /api/v1 endpoints documented in the API reference. The SDK does not invent a second contract. It follows the OpenAPI source of truth. For the same coverage from a terminal, a script, or a CI job, see the Brew CLI. It wraps the same endpoints and ships as a Homebrew tap, an npm package, or a standalone binary.

Current SDK

What You Get

  • Typed request and response shapes.
  • One client with resource methods like brew.contacts.upsert(...).
  • Automatic retries for safe retry cases.
  • Auto-generated idempotency keys on POST.
  • Typed BrewApiError handling for non-2xx responses.

Current TypeScript SDK Resources

The TypeScript SDK exposes every public v1 resource. Reads are flat: one list() per resource that returns a { data, pagination } collection, or a single row when you pass its id (list({ emailId }), list({ audienceId }), …). ?include= opt-ins (html, versions, graph, count, events, logs) embed the heavier detail on demand. Every authenticated resource above resolves to the one brand bound to the API key. The SDK does not send X-Brand-Id or accept a brandId request field. The public template catalog is the only organization-wide read; help and health are public. Create and manage brand-bound keys at brew.new/settings/api. See API authentication for the full scoping and permission contract.

Other Languages

The TypeScript SDK is the only one Brew currently ships as a typed, versioned wrapper. For Python / Go / Ruby / Java / PHP / Swift / Kotlin / .NET, generate a client from the canonical OpenAPI 3.1 spec. See Generate your own SDK for the recommended generators and one-command scaffolds. The spec lives at:
  • https://brew.new/openapi/public-api-v1.yaml: served from the API host
  • https://docs.brew.new/api-reference/openapi-public-v1.yaml: served from this docs site
If you want REST directly (no codegen), every endpoint works fine with curl / httpx / fetch. See the cURL examples on every generated Public API v1 endpoint page.

SDK or REST API

Use the SDK when you want:
  • Type safety.
  • Less HTTP boilerplate.
  • Built-in retries and idempotency support.
  • A resource-oriented client surface.

Determinism vs AI Authoring

The SDK and HTTP surfaces are intentionally deterministic for graph authoring. AI is scoped to email body content only, via brew.emails.generate({ prompt }). If you want free-form natural-language authoring of a whole graph, use the chat-side orchestrator in the dashboard instead.

Suggested Reading Order

  1. Authentication
  2. TypeScript Installation
  3. TypeScript Quickstart
  4. API Reference

Need Help?

Our team is ready to support you at every step of your journey with Brew. Choose the option that works best for you:

Search Documentation

Type in the “Ask any question” search bar at the top left to instantly find relevant documentation pages.

ChatGPT/Claude Integration

Click “Open in ChatGPT” at the top right of any page to explore it further with ChatGPT or Claude.