---
title: "List conversations"
method: GET
path: "/api/v1/discovery/conversations"
tags: ["discovery"]
deprecated: true
---

# List conversations

`GET /api/v1/discovery/conversations`

## Request

- Base URL: `https://point11.ai`
- URL: `https://point11.ai/api/v1/discovery/conversations`
- 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 discovery.conversations.list.v2 (discovery_conversations_list_v2), which answers the results window its rows read in `scope.window`; this version lists the same conversations and names in `scope.dispatchId` the newest run that measured a conversation of the window's last 30 days. Page through every conversation of a campaign's results window, newest or oldest first, optionally narrowed to segments, one assistant, and the campaign brand's outcome (won; mentioned while another brand or none won; absent), and searched, ignoring case, by the customer's name and the transcript's text (the customer's prompts and the assistant's answers). Each row names the customer, the assistant, when it started, how many turns it shows, the outcome, the winner and the brands it named, its first prompt, where a search hit, and how many sources it cited. Read one transcript in full with business.customer-conversations.get (the row's conversationId as `id`, and its customerId). A campaign without results answers its state and no rows.

## Query parameters

- `limit` integer: Number of conversations to return (1–50)
- `cursor` string: Opaque cursor returned as nextCursor by the previous page
- `id` string, uuid, required: Discovery campaign id.
- `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.
- `search` string: Text matched, ignoring case, against the customer's name and the transcript (prompts and answers).
- `engine` 'chatgpt' | 'gemini' | 'claude' | 'grok': Only this assistant's conversations.
- `outcome` 'won' | 'mentioned' | 'absent': Only conversations with this outcome for the campaign's brand.
- `conversationId` string, uuid: Only this conversation: its row when the window and segments hold it, else none, so a link to one conversation reads its row once.
- `sort` 'newest' | 'oldest': By when each conversation started; default newest first.

## Headers

- `Point11-Organization` string, uuid

## Response `200`

Success.

- DiscoveryConversationsListResponse
  - `data` object[], required
    - `conversationId` string, required: The Discovery conversation's id.
    - `customerId` string, required: The customer's id, which business.customer-conversations.get takes.
    - `customerKey` string, nullable, required: The customer's key in the customer pages.
    - `customerName` string, required
    - `customerSubtitle` string, required: The customer's job title, else their age; empty when neither is known.
    - `engine` string, required: The assistant's name, e.g. ChatGPT.
    - `engineId` string, required: The assistant's provider id, e.g. openai.
    - `occurredAt` string, required: ISO timestamp the conversation started.
    - `turnCount` integer, required: Turns the transcript shows.
    - `outcome` 'won' | 'mentioned' | 'absent', required: The campaign brand's outcome: `won`; `mentioned`, named while another brand or none won; `absent`, not named.
    - `winnerBrand` string, nullable, required: The brand the conversation recommended, if any.
    - `mentionedBrands` string[], required: The brands the conversation named, in the order the analysis recorded them, at most 12.
    - `mentionedBrandCount` integer, required: How many brands the conversation named in all.
    - `firstPrompt` string, required: The customer's first prompt on one line, shortened.
    - `match` object, nullable, required: Where a search hit; null without a search.
      - `field` 'customer' | 'prompt' | 'answer', required: Where the first hit is: the customer's name, a prompt, or an answer.
      - `turnIndex` integer, nullable, required: The hit's turn, counted from 0 in the turns business.customer-conversations.get returns; null for a hit in the customer's name.
      - `excerpt` string, required: The text around the hit, on one line.
      - `start` integer, required: Where the hit starts in `excerpt`, in UTF-16 code units.
      - `end` integer, required: Where the hit ends in `excerpt`, in UTF-16 code units.
    - `sourceCount` integer, required: Sources the answers cited.
  - `nextCursor` string, nullable, required
  - `scope` DiscoveryScope2, required
    - `campaignId` string, required
    - `state` 'ready' | 'running' | 'failed' | 'out-of-range' | 'no-campaign', required: `ready` carries results; every other state carries none.
    - `dispatchId` string, nullable, required: The newest run that measured a conversation of the results window's as-of window.
    - `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.
  - `totalCount` integer, nullable, required: Conversations the filters and search keep; null unless `scope.state` is `ready`.

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