---
title: "Get summaries"
method: GET
path: "/api/v1/campaigns/summaries/{id}"
tags: ["campaigns"]
deprecated: true
---

# Get summaries

`GET /api/v1/campaigns/summaries/{id}`

## Request

- Base URL: `https://point11.ai`
- URL: `https://point11.ai/api/v1/campaigns/summaries/{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`)

> **Deprecated.**

Deprecated: use campaigns.summaries.get.v2 (campaigns_summaries_get_v2) for every product's work counted by its entries and a Mirror's customers. Get one Discovery, Experience or Research campaign as campaigns.summaries.list.v1 lists it, by its id or route key (`campaignKey`), even while it is archived or still being set up; also says whether Point11 support already owns its failed work. Read its saved setup with its product's campaign-settings read (for example discovery.campaign-settings.get.v1).

## Path parameters

- `id` string, required: The campaign's id, or its route key (`campaignKey`).

## Headers

- `Point11-Organization` string, uuid

## Response `200`

Success.

- CampaignsSummariesGetResponse
  - `campaign` union, required
    - object
      - `id` string, required
      - `campaignKey` string, nullable, required
      - `name` string, required
      - `brandName` string, nullable, required
      - `url` string, required
      - `domain` string, required
      - `status` 'active' | 'paused' | 'archived' | 'deleted', required
      - `schedule` union, required
        - object
          - `mode` 'calendar', required
          - `issue` string, nullable, required
          - `clockStarted` boolean, required: Whether the campaign's clock has started. An always-on Experience campaign's starts once its first run delivers a visit; until then it runs no month.
          - `nextAt` string: ISO timestamp at which the clock an always-on Experience campaign's first accepted run started next opens a cycle. It is the stored instant: a promise only while the campaign is Active, has no schedule issue, Point11 does not hold it, and the account admits its work (`execution.admissionAllowed`), and once passed, a cycle due to be planned. A visit placed ahead (`execution.activity.nextTargetAt`) comes first. Absent for a Discovery campaign, whose calendar names its next customer, and for a clock no accepted run started.
        - object
          - `mode` 'once', required
          - `issue` string, nullable, required
          - `nextAt` string, nullable, required
        - object
          - `mode` 'recurring', required
          - `issue` string, nullable, required
          - `frequency` 'daily' | 'weekly' | 'monthly' | 'quarterly', required
          - `nextAt` string, nullable, required
        - object
          - `mode` 'source', required
          - `issue` string, nullable, required
          - `source` object, required
            - `id` string, required
            - `name` string, nullable, required
            - `status` 'active' | 'paused' | 'archived' | 'deleted', nullable, required
        - object
          - `mode` 'unavailable', required
          - `issue` string, required
      - `work` CampaignsWork, required
        - `scope` 'campaign' | 'current_cycle', required
        - `state` 'not_started' | 'in_progress' | 'settled' | 'unknown', required
        - `outcome` 'running' | 'succeeded' | 'failed' | 'cancelled' | 'partial', nullable, required
        - `total` integer, required
        - `pending` integer, nullable, required
        - `running` integer, nullable, required
        - `succeeded` integer, required
        - `partial` integer, required
        - `failed` integer, required
        - `cancelled` integer, required
        - `skipped` integer, required
      - `execution` CampaignsExecution, required: The account's admission of the campaign's new work, and its execution evidence.
        - `activity` object, nullable, required: The campaign's activity from the stored facts campaigns.activities.get.v3 reads for the organization and a product: `nextTargetAt` its stored next customer, `running` the runs Billing admitted for it and has not finished (a reserved dispatch or run from its reservation, before any customer starts), and `due` 1 once that customer's time has passed while Billing admits its product's new work; `queued` is 0 and `scheduleTimeZone` null. Null when those facts could not be read.
          - `campaignId` string, required
          - `nextTargetAt` string, nullable, required
          - `running` integer, required
          - `queued` integer, required
          - `due` integer, required
          - `scheduleTimeZone` string, nullable, required
        - `admissionAllowed` boolean, required
        - `admissionUnavailable` boolean, required: The admission check could not be made; it holds nothing.
        - `reason` string, nullable, required
        - `subscriptionPaused` boolean, required
        - `code` string, nullable, required: Billing's refusal code behind `reason` when Billing refuses new work, else null.
      - `launch` object, required
        - `awaitingFunding` boolean, required
        - `refused` boolean, required
      - `readiness` object, required
        - `state` 'ready' | 'preparing' | 'needs_attention', required
        - `message` string, nullable, required
      - `subtype` string, nullable, required
      - `targetKind` 'profile' | 'physical_locations', nullable, required
      - `forecastAudience` boolean, required: Whether a Discovery campaign's customers are its forecast's alone (forecast mode, as Bootup's Forecast campaign); false for any other campaign.
      - `customerCount` integer, nullable, required: The customers the campaign's settings name: Discovery's customer target (it grows with the roster), Research's interview target, an Experience Burst's launch customers. Null for an Experience Pulse, which follows its source campaign.
      - `createdAt` string, required: ISO timestamp.
      - `updatedAt` string, required: ISO timestamp.
      - `latestEntry` CampaignsLatestEntry, required
        - `id` string, required
        - `sequence` integer, required: The entry's ordinal among its campaign's entries, from 1.
        - `failureReason` string, nullable, required: The code the entry settled with when it failed or was cancelled (for example no_unit_delivered or no_eligible_customers); null otherwise, or when it recorded no code.
        - `progress` ResearchProgress, required: The entry's units, counted from its product's delivered evidence.
          - `unitLabel` 'visit' | 'interview' | 'conversation', required: What one unit of this entry's work is: an Experience visit, a Research interview, a Discovery conversation.
          - `admission` 'entry' | 'unit', required: `entry`: the entry's work is admitted and billed once; `unit`: each unit is.
          - `counts` object, required
            - `admitted` integer, required: Units admitted to run.
            - `delivered` integer, required: Settled units the product counts as delivered.
            - `failed` integer, required: Units that ended without delivering: counted as each one ends where the entry's work is admitted once, and when a unit's own admission settles where each unit is.
            - `open` integer, required: Units that have not ended yet.
          - `outcome` 'running' | 'succeeded' | 'failed' | 'cancelled' | 'partial', required: Running until the entry settles; failed or cancelled when its product settled it so (a failed final result still counts the units it delivered); otherwise counted from the units: succeeded when every admitted unit delivered, partial when some did, failed when none did. An entry its product settled succeeded whose units no longer exist (all counts 0) stays succeeded.
          - `failureReasons` object[], required: Why the failed units failed, one row per reason with how many units it ended. A unit that failed while its admission still runs has no reason until that settles.
            - `reason` string, required
            - `count` integer, required
      - `product` 'discovery' | 'research', required
      - `type` string, required: "Discovery" or the Research playbook's label.
    - object
      - `id` string, required
      - `campaignKey` string, nullable, required
      - `name` string, required
      - `brandName` string, nullable, required
      - `url` string, required
      - `domain` string, required
      - `status` 'active' | 'paused' | 'archived' | 'deleted', required
      - `schedule` union, required
        - object
          - `mode` 'calendar', required
          - `issue` string, nullable, required
          - `clockStarted` boolean, required: Whether the campaign's clock has started. An always-on Experience campaign's starts once its first run delivers a visit; until then it runs no month.
          - `nextAt` string: ISO timestamp at which the clock an always-on Experience campaign's first accepted run started next opens a cycle. It is the stored instant: a promise only while the campaign is Active, has no schedule issue, Point11 does not hold it, and the account admits its work (`execution.admissionAllowed`), and once passed, a cycle due to be planned. A visit placed ahead (`execution.activity.nextTargetAt`) comes first. Absent for a Discovery campaign, whose calendar names its next customer, and for a clock no accepted run started.
        - object
          - `mode` 'once', required
          - `issue` string, nullable, required
          - `nextAt` string, nullable, required
        - object
          - `mode` 'recurring', required
          - `issue` string, nullable, required
          - `frequency` 'daily' | 'weekly' | 'monthly' | 'quarterly', required
          - `nextAt` string, nullable, required
        - object
          - `mode` 'source', required
          - `issue` string, nullable, required
          - `source` object, required
            - `id` string, required
            - `name` string, nullable, required
            - `status` 'active' | 'paused' | 'archived' | 'deleted', nullable, required
        - object
          - `mode` 'unavailable', required
          - `issue` string, required
      - `work` CampaignsWork, required
        - `scope` 'campaign' | 'current_cycle', required
        - `state` 'not_started' | 'in_progress' | 'settled' | 'unknown', required
        - `outcome` 'running' | 'succeeded' | 'failed' | 'cancelled' | 'partial', nullable, required
        - `total` integer, required
        - `pending` integer, nullable, required
        - `running` integer, nullable, required
        - `succeeded` integer, required
        - `partial` integer, required
        - `failed` integer, required
        - `cancelled` integer, required
        - `skipped` integer, required
      - `execution` CampaignsExecution, required: The account's admission of the campaign's new work, and its execution evidence.
        - `activity` object, nullable, required: The campaign's activity from the stored facts campaigns.activities.get.v3 reads for the organization and a product: `nextTargetAt` its stored next customer, `running` the runs Billing admitted for it and has not finished (a reserved dispatch or run from its reservation, before any customer starts), and `due` 1 once that customer's time has passed while Billing admits its product's new work; `queued` is 0 and `scheduleTimeZone` null. Null when those facts could not be read.
          - `campaignId` string, required
          - `nextTargetAt` string, nullable, required
          - `running` integer, required
          - `queued` integer, required
          - `due` integer, required
          - `scheduleTimeZone` string, nullable, required
        - `admissionAllowed` boolean, required
        - `admissionUnavailable` boolean, required: The admission check could not be made; it holds nothing.
        - `reason` string, nullable, required
        - `subscriptionPaused` boolean, required
        - `code` string, nullable, required: Billing's refusal code behind `reason` when Billing refuses new work, else null.
      - `launch` object, required
        - `awaitingFunding` boolean, required
        - `refused` boolean, required
      - `readiness` object, required
        - `state` 'ready' | 'preparing' | 'needs_attention', required
        - `message` string, nullable, required
      - `subtype` string, nullable, required
      - `targetKind` 'profile' | 'physical_locations', nullable, required
      - `forecastAudience` boolean, required: Whether a Discovery campaign's customers are its forecast's alone (forecast mode, as Bootup's Forecast campaign); false for any other campaign.
      - `customerCount` integer, nullable, required: The customers the campaign's settings name: Discovery's customer target (it grows with the roster), Research's interview target, an Experience Burst's launch customers. Null for an Experience Pulse, which follows its source campaign.
      - `createdAt` string, required: ISO timestamp.
      - `updatedAt` string, required: ISO timestamp.
      - `latestEntry` CampaignsLatestEntry, required
        - `id` string, required
        - `sequence` integer, required: The entry's ordinal among its campaign's entries, from 1.
        - `failureReason` string, nullable, required: The code the entry settled with when it failed or was cancelled (for example no_unit_delivered or no_eligible_customers); null otherwise, or when it recorded no code.
        - `progress` ResearchProgress, required: The entry's units, counted from its product's delivered evidence.
          - `unitLabel` 'visit' | 'interview' | 'conversation', required: What one unit of this entry's work is: an Experience visit, a Research interview, a Discovery conversation.
          - `admission` 'entry' | 'unit', required: `entry`: the entry's work is admitted and billed once; `unit`: each unit is.
          - `counts` object, required
            - `admitted` integer, required: Units admitted to run.
            - `delivered` integer, required: Settled units the product counts as delivered.
            - `failed` integer, required: Units that ended without delivering: counted as each one ends where the entry's work is admitted once, and when a unit's own admission settles where each unit is.
            - `open` integer, required: Units that have not ended yet.
          - `outcome` 'running' | 'succeeded' | 'failed' | 'cancelled' | 'partial', required: Running until the entry settles; failed or cancelled when its product settled it so (a failed final result still counts the units it delivered); otherwise counted from the units: succeeded when every admitted unit delivered, partial when some did, failed when none did. An entry its product settled succeeded whose units no longer exist (all counts 0) stays succeeded.
          - `failureReasons` object[], required: Why the failed units failed, one row per reason with how many units it ended. A unit that failed while its admission still runs has no reason until that settles.
            - `reason` string, required
            - `count` integer, required
      - `product` 'experience', required
      - `type` 'Experience', required
      - `experience` object, required
        - `mode` 'pulse' | 'burst', required
        - `targetSummary` object, required
          - `platforms` string[], required
          - `accessModes` string[], required
  - `supportOwned` boolean, required: Point11 support owns the campaign's failed work: an open delivery issue is recorded for it.

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