---
title: "Get segment win rates (v2)"
method: GET
path: "/api/v1/discovery/segment-win-rates-v2/{id}"
tags: ["discovery"]
---

# Get segment win rates (v2)

`GET /api/v1/discovery/segment-win-rates-v2/{id}`

## Request

- Base URL: `https://point11.ai`
- URL: `https://point11.ai/api/v1/discovery/segment-win-rates-v2/{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 brand win rate for each revenue line, each audience and each channel, with each split's all-up win rate, as of its results window's as-of day (`scope.window`), exactly as discovery_revenue_reports_get_v4, discovery_audience_reports_get_v5 and discovery_channel_reports_get_v4 state them for the same window, read as the campaign's own brand. Carries no trend, driver or competitor: the reports carry those.

## 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.

## Headers

- `Point11-Organization` string, uuid

## Response `200`

Success.

- DiscoverySegmentWinRatesGetV2Response
  - `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: As of the results window's as-of day.
    - `revenue` object, required
      - `rows` object[], required: One row per revenue line, as discovery.revenue-reports.get lists them.
        - `id` string, required
        - `name` string, required: The revenue line's name; its id where none is known.
        - `winRate` number, required: Brand win rate (%).
      - `portfolioWinRate` union, required: The campaign's all-up brand win rate (%), as discovery.revenue-reports.get states it.
        - object
          - `kind` 'measured', required
          - `value` number, required
        - object
          - `kind` 'absent', required
          - `reason` 'no_measurement_in_scope' | 'no_conversations_in_segment', required: `no_conversations_in_segment`: the segments left no conversation of the window; `no_measurement_in_scope`: the window, unnarrowed, holds none the figure counts.
    - `audience` object, required
      - `rows` object[], required: One row per audience, as discovery.audience-reports.get lists them.
        - `id` string, required
        - `name` string, required: The audience's name; its id where none is known.
        - `winRate` number, required: Brand win rate (%).
      - `portfolioWinRate` union, required: The campaign's all-up brand win rate (%), as discovery.audience-reports.get states it.
        - object
          - `kind` 'measured', required
          - `value` number, required
        - object
          - `kind` 'absent', required
          - `reason` 'no_measurement_in_scope' | 'no_conversations_in_segment', required: `no_conversations_in_segment`: the segments left no conversation of the window; `no_measurement_in_scope`: the window, unnarrowed, holds none the figure counts.
    - `channel` object, required
      - `rows` object[], required: One row per channel, as discovery.channel-reports.get lists them.
        - `id` string, required
        - `name` string, required: The channel's name; its id where none is known.
        - `winRate` number, required: Brand win rate (%).
      - `portfolioWinRate` union, required: The campaign's all-up brand win rate (%), as discovery.channel-reports.get states it.
        - object
          - `kind` 'measured', required
          - `value` number, required
        - object
          - `kind` 'absent', required
          - `reason` 'no_measurement_in_scope' | 'no_conversations_in_segment', required: `no_conversations_in_segment`: the segments left no conversation of the window; `no_measurement_in_scope`: the window, unnarrowed, holds none the figure counts.

## 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/5241805fe425?raw)
