---
title: "Get overview reports (v5)"
method: GET
path: "/api/v1/discovery/overview-reports-v5/{id}"
tags: ["discovery"]
---

# Get overview reports (v5)

`GET /api/v1/discovery/overview-reports-v5/{id}`

## Request

- Base URL: `https://point11.ai`
- URL: `https://point11.ai/api/v1/discovery/overview-reports-v5/{id}`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://auth.point11.ai/oauth2/authorize`, token URL `https://auth.point11.ai/oauth2/token`)

Read a campaign's overview: brand share, win rate, and revenue influence KPIs with trends, competitive position, why the brand wins and loses, and conversation totals, over the campaign's results window (`scope.window`): every value as of the window's as-of day, averaged over the conversations dated in the 30 days ending it, every trend one point per day (null for a day whose window holds no conversation the value counts), and every change the value minus its value 30 days before the as-of day (null without one). A share or win rate nothing in scope measured is { kind: absent, reason }, never 0.

## Path parameters

- `id` string, uuid, required: Discovery campaign id.

## Query parameters

- `dateRange` string, nullable: Result window: `all`, a preset id, or `yyyy-MM-dd..yyyy-MM-dd`. Omit for the campaign's default window.
- `brandPerspective` string, nullable: Read the results as this brand (one of the campaign's brands). Omit for your own.
- `segments` string[]: Narrows the read to these segments, ANDed: one `axis:id` per axis (any number of distinct `customer:` entries), in canonical axis order. Empty reads the whole dispatch.

## Headers

- `Point11-Organization` string, uuid

## Response `200`

Success.

- DiscoveryOverviewReportsGetV5Response
  - `scope` DiscoveryScope, required
    - `campaignId` string, required
    - `state` 'ready' | 'running' | 'failed' | 'out-of-range' | 'no-campaign', required: `ready` carries results; every other state carries none.
    - `failureReason` string, nullable, required
    - `perspective` object, nullable, required: The brand lens applied; null when the report honors no lens or carries no results.
      - `brand` string, required: The brand the results were read as.
      - `isOwnBrand` boolean, required: Whether that brand is the campaign's own.
    - `window` object, nullable, required: The results window; null unless `state` is `ready`.
      - `from` string, date, required: The first UTC day a trend plots: the range's, never before the first interaction.
      - `to` string, date, required: The last UTC day a trend plots: the range's end, never past today.
      - `asOf` string, date, required: The UTC day every single value is as of: its value is the average over the campaign's interactions dated in the 30 days ending with it. The range's end, or, when those 30 days hold none, the last day with an interaction.
      - `comparedTo` string, date, required: The day a change compares with: 30 days before asOf.
      - `interactionCount` integer, required: The interactions dated in the 30 days ending asOf, under the scope.
      - `customerCount` integer, required: The distinct customers of those interactions.
  - `report` object, nullable, required: Null unless `scope.state` is `ready`.
    - `kpis` DiscoveryKpis, required
      - `segments` object[], required: The segments every read was narrowed to, ANDed; empty is the whole campaign.
        - `axis` 'audience' | 'channel' | 'market' | 'age' | 'householdIncome' | 'education' | 'lifeStage' | 'areaType' | 'companySize' | 'buyerRole' | 'seniority' | 'occupation' | 'job' | 'triggerType' | 'intentStage' | 'language' | 'gender' | 'product' | 'engine' | 'competitor' | 'topic' | 'sentiment' | 'store' | 'customer', required: A pinned customer attribute (audience, channel, age, …); conversation evidence (`product` for the business's products, `engine`, `competitor`, `topic`, `sentiment`); or one `store` or `customer`.
        - `id` string, required: The member's id on that axis, as `discovery.segment-options.get` lists it.
      - `targetBrandName` string, nullable, required
      - `kpis` object, required: As of the window's as-of day.
        - `conversations` object, required
          - `value` number, required
          - `deltaPts` number, nullable, required: The value minus its value 30 days before the window's as-of day; null when either window holds no conversation in scope.
        - `brandShare` DiscoveryBrandShare, required
          - `value` union, required: The figure (`kind` measured, `value` in percent), or `kind` absent with the `reason` nothing in scope measured it: never a 0 for an empty denominator.
            - object
              - …
            - object
              - …
          - `deltaPts` number, nullable, required: The value minus its value 30 days before the window's as-of day; null when either window holds no conversation in scope.
        - `brandWinRate` DiscoveryBrandShare, required
          - `value` union, required: The figure (`kind` measured, `value` in percent), or `kind` absent with the `reason` nothing in scope measured it: never a 0 for an empty denominator.
            - object
              - …
            - object
              - …
          - `deltaPts` number, nullable, required: The value minus its value 30 days before the window's as-of day; null when either window holds no conversation in scope.
      - `revenueInfluence` object, required: Over the as-of window: the share of each line's AI-influenced market the brand's wins capture, a year, so it can exceed aiInfluencedSalesUsd; a point of a line's win rate is worth aiInfluencedMarketUsd ÷ 100. Zero coverage when the lens is not the campaign's own brand.
        - `influencedRevenueUsd` number, nullable, required
        - `influenceableRevenueUsd` number, nullable, required: Revenue the brand would influence by winning every covered conversation.
        - `coverage` object, required
          - `scope` 'locations': Location estimates may overlap markets.
          - `status` 'none' | 'partial' | 'complete', required
          - `includedLineCount` number, required
          - `totalLineCount` number, required
          - `coveredConversationCount` number, required
          - `totalConversationCount` number, required
          - `coveragePct` number, required
        - `lines` object[], required: The covered products (revenue lines), at company scope or one location, that influencedRevenueUsd adds up: each line's dollars are aiInfluencedMarketUsd × the segments' won conversations ÷ conversations, so over the whole window point × win rate.
          - `revenueLineId` string, required
          - `locationKey` string, nullable, required: Null at company scope.
          - `name` string, required
          - `annualSalesUsd` number, required
          - `aiInfluencePct` number, required
          - `serviceableAvailableMarketUsd` number, required: SAM: annual sales ÷ market share.
          - `aiInfluencedSalesUsd` number, required: Annual sales × AI influence: the brand's own sales, which the line's dollars may exceed.
          - `aiInfluencedMarketUsd` number, required: SAM × AI influence, a year: the line's dollars are a share of it, and a point is a hundredth of it.
          - `wins` integer, required: The brand's wins of conversations.
          - `conversations` integer, required: Every conversation on the line in the as-of window, in or out of the segments.
          - `point` object, required
            - `pointValueUsd` number, required: One point of the line's win rate, in dollars.
            - `basis` 'ceiling', required: Always ceiling: a point is aiInfluencedMarketUsd ÷ 100, whatever the rate.
          - `influencedRevenueUsd` number, required: The segments' dollars on the line.
          - `influenceableRevenueUsd` number, required: The segments' dollars on the line had the brand won every conversation.
      - `benchmarks` object, required: The highest other brand by each metric, as of the as-of day.
        - `brandShare` object, nullable, required
          - `name` string, required
          - `value` number, required
        - `brandWinRate` object, nullable, required
          - `name` string, required
          - `value` number, required
      - `customerCount` number, required: Distinct customers of the as-of window's conversations: the sample brand share and win rate stand on.
      - `earlierCustomerCount` integer, required: Distinct customers of the conversations in the window 30 days before the as-of day, which every change compares with.
      - `kpiSeries` object, required
        - `conversations` object[], required: One point per UTC day of the window's span, each that day's trailing 30-day window's value.
          - `day` string, date, required: UTC day; the value is its trailing 30-day window's.
          - `value` number, nullable, required: Null where that window holds no interaction.
        - `brandShare` object[], required: One point per UTC day of the window's span, each that day's trailing 30-day window's value.
          - `day` string, date, required: UTC day; the value is its trailing 30-day window's.
          - `value` number, nullable, required: Null where that window holds no interaction.
        - `brandWinRate` object[], required: One point per UTC day of the window's span, each that day's trailing 30-day window's value.
          - `day` string, date, required: UTC day; the value is its trailing 30-day window's.
          - `value` number, nullable, required: Null where that window holds no interaction.
      - `breaks` object[]: Days in the trends' span the campaign's conversations changed behavior version (its opening questions, customer replies or interview schedule), each with what changed; absent with none.
        - `day` string, date, required
        - `label` string, required
    - `competitivePosition` object, required
      - `customerCount` integer, required: Distinct customers of the as-of window's conversations: every row's share and win rate stand on them.
      - `earlierCustomerCount` integer, required: Distinct customers of the conversations in the window 30 days before, which every row's movement compares with.
      - `competitivePosition` object[], required: The target, then the brands the model labelled competitor or hybrid.
        - `faviconUrl` string, nullable, required
        - `faviconFallbackLabel` string, required
        - `faviconTone` 'dark' | 'light' | 'mixed' | 'unknown', required
        - `faviconTransparent` boolean, nullable, required
        - `faviconNeedsLightBackplate` boolean, required
        - `faviconNeedsDarkBackplate` boolean, required
        - `brandColor` string, nullable: The campaign's assigned color token for this brand.
        - `id` string, required
        - `name` string, required
        - `isCurrent` boolean, required: The brand the results are read as.
        - `brandShare` number, required
        - `brandWinRate` number, required
        - `movement` number, nullable, required: Its brand share minus its brand share 30 days before the as-of day; null when that window holds no conversation in scope.
      - `competitivePositionTotalCount` number, required
      - `optionClasses` object[], required: Offerings put forward with no named provider, and approaches: classes, not brands, so no benchmark or head-to-head reads them.
        - `kind` 'unowned_offering' | 'approach', required
        - `name` string, required
        - `brandShare` number, required: Share of conversations that put forward an option of the class.
        - `brandWinRate` number, required: Share of conversations whose final pick was an option of the class.
        - `options` object[], required: The class's options, most mentioned first.
          - `name` string, required
          - `mentions` number, required
          - `wins` number, required
          - `sites` string[], required: Hosts of the pages cited for it.
        - `optionTotalCount` number, required
      - `decisions` object, required
        - `total` number, required: Conversations whose assistant picked a winner.
        - `unownedOffering` number, required
        - `approach` number, required
    - `winLoss` object, required
      - `segments` object[], required: The segments the reads were narrowed to.
        - `axis` 'audience' | 'channel' | 'market' | 'age' | 'householdIncome' | 'education' | 'lifeStage' | 'areaType' | 'companySize' | 'buyerRole' | 'seniority' | 'occupation' | 'job' | 'triggerType' | 'intentStage' | 'language' | 'gender' | 'product' | 'engine' | 'competitor' | 'topic' | 'sentiment' | 'store' | 'customer', required: A pinned customer attribute (audience, channel, age, …); conversation evidence (`product` for the business's products, `engine`, `competitor`, `topic`, `sentiment`); or one `store` or `customer`.
        - `id` string, required: The member's id on that axis, as `discovery.segment-options.get` lists it.
      - `driverComparisons` object[]: Win/loss reasons against each leading competitor.
        - `faviconUrl` string, nullable, required
        - `faviconFallbackLabel` string, required
        - `faviconTone` 'dark' | 'light' | 'mixed' | 'unknown', required
        - `faviconTransparent` boolean, nullable, required
        - `faviconNeedsLightBackplate` boolean, required
        - `faviconNeedsDarkBackplate` boolean, required
        - `brandColor` string, nullable: The campaign's assigned color token for this brand.
        - `id` string, required
        - `name` string, required
        - `whyWeWin` object[], required
          - `label` string, required
          - `score` number, nullable, required: Conversations of the as-of window that gave it.
          - `customers` integer, required: Distinct customers of the as-of window's conversations its kind counts from (the brand's wins for a win reason, its losses for a loss reason).
          - `direction` 'up' | 'down' | 'flat', required
          - `series` object[], required: Its count in each day's window; empty for a competitor comparison.
            - `day` string, date, required: UTC day; the value is its trailing 30-day window's.
            - `value` number, nullable, required: Null where that window holds no interaction.
        - `whyWeLose` object[], required
          - `label` string, required
          - `score` number, nullable, required: Conversations of the as-of window that gave it.
          - `customers` integer, required: Distinct customers of the as-of window's conversations its kind counts from (the brand's wins for a win reason, its losses for a loss reason).
          - `direction` 'up' | 'down' | 'flat', required
          - `series` object[], required: Its count in each day's window; empty for a competitor comparison.
            - `day` string, date, required: UTC day; the value is its trailing 30-day window's.
            - `value` number, nullable, required: Null where that window holds no interaction.
      - `driverComparisonTotalCount` number, required
      - `whyWeWin` object[], required
        - `label` string, required
        - `score` number, nullable, required: Conversations of the as-of window that gave it.
        - `customers` integer, required: Distinct customers of the as-of window's conversations its kind counts from (the brand's wins for a win reason, its losses for a loss reason).
        - `direction` 'up' | 'down' | 'flat', required
        - `series` object[], required: Its count in each day's window; empty for a competitor comparison.
          - `day` string, date, required: UTC day; the value is its trailing 30-day window's.
          - `value` number, nullable, required: Null where that window holds no interaction.
      - `whyWeWinTotalCount` number, required
      - `whyWeLose` object[], required
        - `label` string, required
        - `score` number, nullable, required: Conversations of the as-of window that gave it.
        - `customers` integer, required: Distinct customers of the as-of window's conversations its kind counts from (the brand's wins for a win reason, its losses for a loss reason).
        - `direction` 'up' | 'down' | 'flat', required
        - `series` object[], required: Its count in each day's window; empty for a competitor comparison.
          - `day` string, date, required: UTC day; the value is its trailing 30-day window's.
          - `value` number, nullable, required: Null where that window holds no interaction.
      - `whyWeLoseTotalCount` number, required
      - `insightsGenerated` boolean, required: Whether the as-of window holds a conversation in scope.
    - `conversations` object, required
      - `totalConversations` number, required

## Other responses

- `400`: The input, query, or Idempotency-Key is invalid.
- `401`: The bearer is missing, expired, or not accepted.
- `403`: The credential lacks the operation's scope or role, or the operation needs a different door.
- `404`: The resource or organization does not exist for this caller.
- `405`: This path takes another HTTP method, named in `Allow`.
- `409`: The request conflicts with current state or with prior use of its Idempotency-Key.
- `413`: The request, or the answer it asks for, is too large; narrow it.
- `429`: The credential's rate budget is spent; retry after `Retry-After` seconds.
- `500`: An unexpected server failure; retry later. Only `request_id` identifies it.
- `503`: A dependency is temporarily unavailable; retry after `Retry-After` seconds.
- `default`: Another status a product answers for its own refusal (for example `415` for an unsupported attachment); branch on `code`.

---

[API](https://skmtc.dev/point11/apis/point11-api.md) · [All operations](https://skmtc.dev/point11/apis/point11-api/llms.txt) · [OpenAPI document](https://skmtc.dev/point11/apis/point11-api/revisions/36a84c7aca11?raw)
