---
title: "Get campaign overview (v7)"
method: GET
path: "/api/v1/experience/campaign-overview-v7/{id}"
tags: ["experience"]
---

# Get campaign overview (v7)

`GET /api/v1/experience/campaign-overview-v7/{id}`

## Request

- Base URL: `https://point11.ai`
- URL: `https://point11.ai/api/v1/experience/campaign-overview-v7/{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`)

Get an Experience campaign's overview panels over a results window: the campaign's interactions (each campaign visit with a verdict, every repetition, device and cycle) dated in the 30 UTC days ending with results.asOf (the range's end, or the last interaction day before it), under optional customer segments: where the customers behind those interactions are, with each one's journeys and passes, and the newest of its journeys per customer and device queued for review, each previewed by its stored thumbnail. results names that window as experience_campaign_analytics_get_v9 names it; it is null, and both panels empty, while the scope holds no interaction. Read a journey's captured stages with experience_journeys_get_v3.

## Path parameters

- `id` string, uuid, required: The Experience campaign's id

## Query parameters

- `destination` string, nullable: A campaign website's id (destinations[].id) or name; absent reads the campaign's own measured website

## Headers

- `Point11-Organization` string, uuid

## Response `200`

Success.

- ExperienceCampaignOverviewGetV7Response
  - `customerLocations` object[], required
    - `customerId` string, required
    - `addressDetail` object, nullable, required
    - `countryCode` string, nullable, required
    - `subdivisionCode` string, nullable, required
    - `location` object, required
      - `country` string, nullable, required
      - `countryCode` string, nullable, required
      - `admin1` string, nullable, required
      - `admin1Code` string, nullable, required
      - `city` string, nullable, required
      - `street` string, nullable, required
      - `postcode` string, nullable, required
      - `latitude` number, nullable, required
      - `longitude` number, nullable, required
      - `coordinateSource` 'source' | 'derived_descendants' | 'unavailable' | 'street_address', nullable, required
      - `label` string, nullable, required
    - `journeyCount` integer, required
    - `finishedCount` integer, required
    - `scoredCount` integer, required
    - `judgedCount` integer, required
    - `passedCount` integer, required
  - `replayJourneys` object[], required
    - `runId` string, required
    - `inProgress` boolean, required
    - `executionStatus` 'scheduled' | 'waiting' | 'running' | 'completed' | 'failed' | 'cancelled', nullable, required
    - `customerId` string, required
    - `customerName` string, required
    - `customerJobTitle` string, nullable, required: The customer's job title as the visit's scenario froze it; null when it named none
    - `destinationName` string, required
    - `destinationFingerprint` string, nullable, required: The website's id (experience_campaigns_get_v3's destinations[].id, which destinationFingerprint filters by); null for a visit no campaign website holds
    - `browserDevice` 'desktop' | 'mobile' | 'ios_safari', required
    - `agent` 'point11' | 'dots' | 'spark' | 'muse' | 'grok_bot', required: The agent that shopped the visit; point11 (Point11's own shopper) for a visit no campaign planned. Another agent's visit of the same customer, website and device is another row (visitIdentity.key ends in :<agent>)
    - `nativeApp` object, nullable, required
      - `platform` 'ios' | 'android', required
      - `buildId` string, uuid, required
      - `sha256` string, required
      - `appId` string, required
      - `versionLabel` string, required
      - `deviceName` string, required
      - `osVersion` string, required
    - `unavailableReason` string, nullable, required
    - `achieved` boolean, nullable, required
    - `qualityStars` number, nullable, required
    - `completedAt` string, date-time, nullable, required
    - `actionCount` integer, required
    - `durationMs` number, nullable, required
    - `evidenceDisposition` 'sufficient' | 'insufficient' | 'policy_limited' | 'infrastructure_limited' | 'scenario_mismatch'
    - `recording` object, required
      - `thumbnailArtifactId` string, nullable, required: The journey's stored thumbnail: its first captured screen as a WebP sized for the overview's replay card (kind thumbnail), downloaded with experience_run_artifacts_download_v3; null until it is stored
      - `recorded` boolean, required: Whether the journey captured any screen: one that did and has no thumbnail yet still has a recording to watch
  - `results` ExperienceResults, nullable, required: Every figure is over the campaign's interactions dated in the 30 UTC days ending with its day: a single figure as of asOf, a line one point per day from `from` to `to`. Null when the campaign has no interaction on or before the range's end under the scope
    - `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.
    - `campaignCustomerCount` integer: Under a segment scope: the whole campaign's distinct customers in the same 30 days on the same website, unscoped (customers a precision order added for a group count only in that group's readings). Absent when the read is unscoped, whose customerCount is the campaign's.
    - `bucketCustomerCount` integer: Under a scope that names a customer bucket (an attribute or a store): the distinct customers inside it in the same 30 days. Absent without one.

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