Skip to main content
GET
This endpoint covers the whole organization. It works with an organization API key (for the key’s own organization only), a signed-in session, or the MCP server. A brand API key returns 403 with code API_KEY_ROUTE_NOT_ALLOWED.
Retrieve the All Brands portfolio overview for one of the organizations the authenticated user belongs to. It returns a per-brand snapshot (AI visibility, domain rating, open next steps, tracked prompts/keywords, and Search/Traffic) alongside a few organization-level KPIs. The response is read from the persisted daily snapshot (brandDailyStats). When the window ends today and a brand has no snapshot from the last day, up to 8 such brands are computed live during the request (Search Console, analytics, AI visibility), so those calls can be slower. The live results are not stored, and any stale brands past the 8 per request are not recomputed in that response. To force a fresh recompute, call POST /v3/organization/portfolio/refresh (optional body organizationId), which enqueues snapshot jobs and returns { "enqueued": <count> }.

Deltas & sparklines

  • Point metrics (AI visibility): delta is the absolute change of the latest in-window value vs. the prior equal-length window. It is 0 when there is no prior value.
  • Count metrics (search clicks, traffic visits): delta is the percentage change of the window sums, rounded to a whole number. It is 0 when the prior sum is 0 or missing.
  • Sparklines are the daily series across the selected window.

Top-level fields

kpis

brands[]

Metrics come from the persisted daily snapshot. If a brand has no data yet for the window (no audit, no AI visibility runs, or a disconnected integration), the relevant metric returns null (search, traffic, domainRating) or 0 (counts), and sparklines return empty or partial series.
Omit organizationId for single-org users. A user in several organizations who omits it gets 400, so resolve the organization from any of your teams first (each team carries its organizationId).

Authorizations

Authorization
string
header
required

Your SnowSEO API key (sk_...).

Query Parameters

organizationId
string

Organization ID (from list_teams). Optional when the user belongs to a single org; required to pick one when they belong to several.

start
string

Window start date (YYYY-MM-DD, in the requester's time zone). Defaults to 30 days before end; omit with an end date for All Time (from the first stored data, no prior-period deltas).

end
string

Window end date (YYYY-MM-DD, in the requester's time zone). Defaults to today; a future date is clamped to today.

Response

200 - application/json

Default Response

asOf
string<date-time> | null
required
isAgency
boolean
required
kpis
object
required
brands
object[]
required