---
title: "List lead conversations"
method: GET
path: "/v1/ads/local-services/leads/{leadId}/conversations"
tags: ["Ad Insights"]
---

# List lead conversations

`GET /v1/ads/local-services/leads/{leadId}/conversations`

Conversation entries of one Local Services lead: phone calls (duration,
recording URL) and messages (text, attachment URLs), oldest first. Read
live from `local_services_lead_conversation`, always scoped to a single
lead. Call-recording URLs require read access on the Google Ads account.
Draws on the shared Google Ads operations budget.

## Path parameters

- `leadId` string, required

## Query parameters

- `accountId` string, required
- `adAccountId` string
- `customerId` string
- `pageToken` string

## Response `200`

Lead conversations

- object
  - `customerId` string
  - `data` object[]
    - `id` string, nullable
    - `channel` string, nullable — PHONE_CALL / MESSAGE / SMS / EMAIL / WHATSAPP / ADS_API.
    - `participantType` string, nullable — ADVERTISER or CONSUMER.
    - `eventDateTime` string, nullable
    - `phoneCall` object, nullable — Only on PHONE_CALL entries.
      - `callDurationMillis` integer, nullable
      - `callRecordingUrl` string, nullable
    - `message` object, nullable — Only on message-channel entries.
      - `text` string, nullable
      - `attachmentUrls` string[]
  - `paging` object
    - `nextPageToken` string, nullable — Null when the last page was returned.

## Other responses

- `400` — Invalid request
- `401` — Unauthorized
- `404` — The account or requested resource was not found or is not accessible. An account ID may have been disconnected and removed. Read GET /v1/accounts for current account IDs.
- `409` — The account exists but is inactive or needs reconnection. Reconnect it, then read GET /v1/accounts for its current account ID before retrying. Code: ads_connection_required.
- `429` — Google Ads operations budget exhausted; retry later.
- `501` — Only available on Google Ads accounts

## Changes

- **2026-09-25** `2c04683ce694` — 12 info
  - added the optional property `details/adAccountId` to the response with the `400` status
  - added the optional property `details/adAccountId` to the response with the `404` status
  - added the optional property `details/adAccountId` to the response with the `409` status
  - added the optional property `details/createdObjects` to the response with the `400` status
  - …8 more
- **2026-09-23** `dd3865482f9f` — 2 info
  - added the new optional `query` request parameter `adAccountId`
  - `query` request parameter `customerId` was deprecated
- **2026-09-16** `3e6ddf2a99ea` — 3 info
  - added the optional property `details/budgetScope` to the response with the `400` status
  - added the optional property `details/budgetScope` to the response with the `404` status
  - added the optional property `details/budgetScope` to the response with the `409` status
- **2026-09-15** `0dba7d004d75` — 6 info
  - added the optional property `details/quotaExhausted` to the response with the `400` status
  - added the optional property `details/quotaExhausted` to the response with the `404` status
  - added the optional property `details/quotaExhausted` to the response with the `409` status
  - added the optional property `details/quotaScope` to the response with the `400` status
  - …2 more
- **2026-09-10** `e70ed06e7150` — 2 info
  - added the non-success response with the status `404`
  - added the non-success response with the status `409`

[Full history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/ads/local-services/leads/:leadId/conversations/get.md)

---

[API](https://skmtc.dev/zernio/apis/zernio-api.md) · [All operations](https://skmtc.dev/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zernio/apis/zernio-api/revisions/b2325332041a?raw)
