---
title: "Get journey maps (v3)"
method: GET
path: "/api/v1/discovery/journey-maps-v3/{id}"
tags: ["discovery"]
---

# Get journey maps (v3)

`GET /api/v1/discovery/journey-maps-v3/{id}`

## Request

- Base URL: `https://point11.ai`
- URL: `https://point11.ai/api/v1/discovery/journey-maps-v3/{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 customer journey map: how conversations move from question to recommendation, which brands appear at each stage, and outcomes, over the conversations dated in the 30 days ending its results window's as-of day (`scope.window`). Brands are measured by wins, by share, and, for the campaign's own brand, by `market`: each product's AI-influenced market a year (serviceable market × AI influence, as Business revenue tracking states it) split evenly across the window's conversations on it and carried to the brand that won each one, so a brand's value is its revenue influenced, the share of the market it won in AI answers (for the campaign's own brand, discovery_overview_reports_get_v5's revenue influenced), and what no brand won is the remainder.

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

- DiscoveryJourneyMapsGetV3Response
  - `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.
  - `map` object, nullable, required: Null unless `scope.state` is `ready`.
    - `datasetKey` string, required
    - `customerCount` number, required: The as-of window's conversations, one per customer and assistant asked.
    - `measures` object[], required: The ways to measure the brand column; the first is the default.
      - `key` 'wins' | 'share' | 'market', required
      - `label` string, required
      - `unit` 'customers' | 'usd', required
      - `exclusive` boolean, required: Whether a conversation lands on at most one brand; an exclusive measure leaves what reached no brand as a remainder.
      - `total` number, required: The whole a brand's value is read against.
      - `brands` object[], required
        - `key` string, required
        - `name` string, required
        - `value` number, required
      - `groupings` object[], required
        - `key` 'decision-factors' | 'revenue' | 'audiences' | 'channels' | 'topics' | 'locations' | 'engines', required
        - `flows` object[], required
          - `segmentId` string, required
          - `brandKey` string, required
          - `value` number, required
        - `weights` object: Each segment's weight by segment id; absent where it weighs its customers.
    - `segmentations` object[], required: The grouping dimensions with data in the window; the first is the default.
      - `key` 'decision-factors' | 'revenue' | 'audiences' | 'channels' | 'topics' | 'locations' | 'engines', required
      - `label` string, required
      - `segments` object[], required
        - `id` string, required
        - `label` string, required
        - `count` number, required
        - `share` number, required: Share of all the as-of window's conversations.
        - `scope` object: The segment-scope key naming exactly this bucket, when one does.
          - `axis` 'audience' | 'channel' | 'topic' | 'engine', required
          - `id` string, required
    - `brandNames` string[], required: The brand names whose favicons `discovery.brand-icons.get.v2` reads for this map.
    - `targetBrandKey` string, nullable, 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)
