---
title: "List campaign entries"
method: GET
path: "/api/v1/campaigns/campaign-entries"
tags: ["campaigns"]
deprecated: true
---

# List campaign entries

`GET /api/v1/campaigns/campaign-entries`

## Request

- Base URL: `https://point11.ai`
- URL: `https://point11.ai/api/v1/campaigns/campaign-entries`
- 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.campaign-entries.list.v2 (campaigns_campaign_entries_list_v2) to read an edit's rerun as `edit_rerun`; this version reads one as `run_now`. List one Discovery, Experience or Research campaign's entries (each launch, scheduled run, run now, or recovery), newest first. Each carries what started it and who asked, its status, and its units' progress: the visits, interviews or conversations admitted, delivered, failed and still open, the outcome they add up to, and failure reasons with their counts. An entry Point11 ran itself (an operator's test run) is not listed, except the settled results of a Discovery campaign Point11 ran and published to the organization. Pass the returned nextCursor to continue.

## Query parameters

- `limit` integer: Number of items to return (1–1000)
- `cursor` string: Opaque cursor returned as nextCursor by the previous page
- `campaignId` string, required: The campaign whose entries to list.

## Headers

- `Point11-Organization` string, uuid

## Response `200`

Success.

- CampaignsCampaignEntriesListResponse
  - `data` CampaignsDataItem3[], required
    - `id` string, required
    - `campaignId` string, required
    - `product` 'discovery' | 'research' | 'experience', required
    - `sequence` integer, required: The entry's ordinal among its campaign's entries, from 1.
    - `origin` 'launch' | 'schedule' | 'run_now' | 'recovery', nullable, required: What started the entry: `launch`, `schedule`, `run_now`, or `recovery` (an edit's rerun reads as `run_now`). Null only on an entry recorded before entries named their origin.
    - `requestedByUserId` string, nullable, required: The member who launched it or ran it now; null for a scheduled or recovery entry.
    - `status` 'running' | 'succeeded' | 'failed' | 'cancelled' | 'partial', required: The entry's one outcome, always `progress.outcome`: running until it settles; failed or cancelled when its product or a stop settled it so; otherwise counted from its units, except that a succeeded entry whose units no longer exist stays succeeded.
    - `startedAt` string, required: ISO timestamp.
    - `completedAt` string, nullable, required: ISO timestamp; null while it runs.
    - `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
    - `stored` object: Point11's operator door only: the entry's stored status and failure reason as written, from which `status` and `failureReason` are read. Never present on a customer's call.
      - `status` 'running' | 'succeeded' | 'failed' | 'cancelled' | 'partial', required: The status the entry's row holds, as its product or a stop wrote it.
      - `failureReason` string, nullable, required: The failure reason as written, which can be an operator's stop note or an internal diagnostic.
    - `economics` CampaignsEconomics: Point11's operator door only: what the entry charged and cost, with the receipts not priced yet counted beside the recorded cost. Never present on a customer's call.
      - `includedQuantity` integer, required: Delivered units the billing period's inclusion absorbed.
      - `overageQuantity` integer, required: Delivered units beyond the inclusion.
      - `chargeCents` integer, required: The overage billed for those units, in cents.
      - `recordedCostUsd` number, required: The cost recorded on the entry's receipts, in USD; nothing is estimated.
      - `unpricedReceipts` integer, required: Receipts whose exact cost is not known yet: shown as +N unpriced beside the recorded cost.
  - `nextCursor` 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)
