latestOpenAPI 3.0.3Proprietary2026-08-1960166333.3 KB

8e62fb5a9414

Conversations

Search Conversations

Search the sales conversations recorded by Lusha Conversations for your account. Returns each conversation's metadata, AI summary, action items, risks, objections, competitor mentions, coaching analysis, and chapters. Transcripts are not included — fetch those from Get Conversation Transcript.

Two modes on the same contract:

  • Keyword mode — supply query to rank conversations by transcript content. All other filters are ignored.
  • Filter mode — omit query and supply the structural filters.

Both modes return the same response shape. An empty body is valid and returns the first page of the account's conversations.

Validation notes:

  • companyDomains matches on domain, not display name. Resolve a company name to a domain first (e.g. via Search Companies).
  • dateFrom / dateTo accept date-only YYYY-MM-DD values. Datetimes, reduced precision (2026, 2026-01), basic format (20260101), and impossible dates (2026-02-31) are rejected with 400.
  • pageSize above 100 is rejected with 400 — it is not silently clamped.
  • conversationIds that don't exist, are still processing, or belong to another account are omitted from the response rather than erroring.

Billing: 1 credit per block of up to 25 conversations returned (1–25 = 1, 26–50 = 2, 51–75 = 3, 76–100 = 4), via ci_meeting_data_export. Charged on results returned, not the page size requested. A request that returns nothing is free. While ci_meeting_data_export isn't seeded on your account's pricebook, the endpoint stays free (billing.creditsCharged is 0).

Note: summary, coaching, and chapters come from an asynchronous post-call pipeline. A null summary on a recent conversation means analysis isn't ready yet, not "nothing found". A null severity on a risk or objection means the pipeline didn't assess it — do not read it as "low".

post/v3/account/conversations/search

Request body

querystring

Free-text search over transcript content. When present, the structural filters below are ignored.

conversationIdsstring[]

Return only these conversations. IDs that don't exist, are still processing, or belong to another account are omitted from the response rather than erroring.

dateFromstring date

Earliest meeting date, inclusive (YYYY-MM-DD).

dateTostring date

Latest meeting date, inclusive (YYYY-MM-DD).

contactNamesstring[]

Partial, case-insensitive match on participant names. Multiple values are ORed.

companyDomainsstring[]

Company domains of the external participants (e.g. acme.com). Matches on domain, not display name. Multiple values are ORed.

meetingTitlesstring[]

Partial, case-insensitive match on the meeting title. Multiple values are ORed.

pageinteger

Page number, starting at 1.

pageSizeinteger

Conversations per page. Values above 100 are rejected with 400 (not silently clamped).

Example request

{
  "query": "pricing objection",
  "dateFrom": "2026-01-01",
  "dateTo": "2026-03-31",
  "contactNames": [
    "Jane Doe"
  ],
  "companyDomains": [
    "acme.com"
  ],
  "meetingTitles": [
    "Quarterly review"
  ],
  "page": 1,
  "pageSize": 25
}

Response

Successful response

requestIdstring uuid

Correlation / request id for support and tracing.

Example response

{
  "requestId": "3f1a9c2e-7b4d-4a8e-9f10-2c5d6e7a8b90",
  "conversations": [
    {
      "id": "8f2c9b1e-4a7d-4f3b-9c2e-1d6a5b8c7e90",
      "title": "Acme <> Lusha - Quarterly review",
      "date": "2026-03-12",
      "startTime": "2026-03-12T14:00:00Z",
      "durationSeconds": 1830,
      "durationFormatted": "30m 30s",
      "meetingType": "discovery",
      "isExternal": true,
      "company": {
        "name": "Acme Inc",
        "domain": "acme.com"
      },
      "participants": [
        {
          "name": "Jane Doe",
          "email": "jane@acme.com",
          "role": "VP Sales"
        }
      ],
      "topicLabels": [
        "pricing",
        "security"
      ],
      "summary": {
        "text": "The team walked through the pricing tiers.",
        "keyHighlights": [
          "Budget confirmed for Q3"
        ],
        "actionItems": [
          {
            "text": "Send the revised pricing sheet",
            "owner": "Sam Rep",
            "dueDate": "2026-03-19"
          }
        ],
        "nextSteps": [
          "Schedule a technical deep dive"
        ],
        "risks": [
          {
            "text": "Budget approval is still pending",
            "severity": "high"
          }
        ],
        "objections": [
          {
            "text": "Budget approval is still pending",
            "severity": "high"
          }
        ],
        "competition": [
          {
            "name": "Competitor Inc",
            "context": "Mentioned as incumbent",
            "sentiment": "negative"
          }
        ]
      },
      "coaching": {
        "overallScore": 68,
        "likelihoodOfSale": 45,
        "sections": [
          {
            "section": "discovery",
            "score": 72,
            "whatHappened": "The rep opened with a clear agenda.",
            "whatToKeep": [
              "Strong discovery questions"
            ],
            "whatToImprove": [
              "Confirm the decision process earlier"
            ]
          }
        ],
        "notes": "Focus on quantifying impact."
      },
      "chapters": [
        {
          "title": "Introductions",
          "startTime": "00:00:00",
          "endTime": "00:04:12",
          "summary": "Participants introduced themselves."
        }
      ]
    }
  ],
  "page": {
    "page": 1,
    "pageSize": 25,
    "totalItems": 137,
    "totalPages": 6
  },
  "billing": {
    "creditsCharged": 3,
    "resultsReturned": 1
  }
}