Brand overview (totals, rates, timeseries)
Windowed brand overview — the EXACT read behind the app’s /analytics metric cards + chart (same unique-recipient and machine-click rules), so API/MCP numbers can never disagree with the page. Defaults to the last 7 days. Optional filters, all of which COMPOSE freely: source (csv of send sources), automationId, emailId, audienceId (csv, ≤20), triggerEventId (csv, ≤10 — integration trigger-events, resolved to their wired automations), and domain (sending domain). A single filter is answered from pre-aggregated rollup rows; any combination (and anything with domain, which has no rollup dimension) is answered by aggregating raw events instead — exact, but capped, so watch truncated on wide windows. Returns { totals, rates, buckets, granularity, timeZone, range, truncated } — truncated: true means the window exceeded the scan budget; narrow the range. Requires the emails scope.
Authorizations
Send your Brew API key as Authorization: Bearer brew_xxx.
Query Parameters
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.
1 - 256CSV 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.
1 - 2048Scope to one email design. Composes with every other filter — a design used by several automations can be narrowed with automationId.
1 - 64CSV of audience ids (max 20). Composes with every other filter.
1 - 2048CSV of integration trigger-event ids (max 10), resolved to their wired automations. Composes with every other filter.
1 - 2048Sending domain (fromEmail match). Has no rollup dimension, so requests carrying it are answered from raw events — check truncated on wide windows.
1 - 255