Skip to main content
GET
Brand overview (totals, rates, timeseries)

Authorizations

Authorization
string
header
default:Bearer brew_your_api_key
required

Send your Brew API key as Authorization: Bearer brew_xxx.

Headers

X-Brand-Id
string

The brand this request acts on. REQUIRED for organization-scoped credentials (otherwise 400 BRAND_ID_REQUIRED — there is no default brand); list ids with GET /v1/brands. Brand-scoped credentials may omit it, and sending a different brand returns 403 BRAND_SCOPE_MISMATCH. A brand outside your organization returns 404 BRAND_NOT_FOUND.

Required string length: 1 - 64

Query Parameters

from
string<date-time>
to
string<date-time>
source
string

CSV of send sources to include (e.g. audience,api; valid values: audience, api, automation_manual, automation_integration, automation_custom). Composes with every other filter.

Required string length: 1 - 256
automationId
string

CSV of automation ids (max 20) — a single id is still valid. Composes with every other filter; one id reads a pre-aggregated rollup partition, several take the raw-event path.

Required string length: 1 - 2048
emailId
string

Scope to one email design. Composes with every other filter — a design used by several automations can be narrowed with automationId.

Required string length: 1 - 64
audienceId
string

CSV of audience ids (max 20). Composes with every other filter.

Required string length: 1 - 2048
triggerEventId
string

CSV of integration trigger-event ids (max 10), resolved to their wired automations. Composes with every other filter.

Required string length: 1 - 2048
domain
string

Sending domain (fromEmail match). Has no rollup dimension, so requests carrying it are answered from raw events — check truncated on wide windows.

Required string length: 1 - 255
recipient
string

CSV of recipient rules (max 10) matching who RECEIVED the email — the SAME grammar and the same parameter name as GET /v1/analytics/events, so one filter string moves between the two and the totals here describe exactly the rows that feed lists. A full address matches exactly, @domain matches the domain, any other text matches as a substring; prefix ! to exclude (e.g. @clay.com,!ceo@clay.com). Includes OR together; excludes always apply. Like domain this has no rollup dimension (stored rows aggregate ACROSS recipients), so requests carrying it are answered from raw events — check truncated on wide windows.

Required string length: 1 - 2048

Response

Brand-wide totals, rates, and a zero-filled timeseries for the window.

totals
object
required
rates
object
required
buckets
object[]
required
granularity
enum<string>
required
Available options:
5m,
1h,
1d
timeZone
string
required
range
object
required
truncated
boolean
required