---
title: "Leads in a list, oldest first, cursor-paged"
method: GET
path: "/lists/{id}/leads"
tags: ["Leads"]
---

# Leads in a list, oldest first, cursor-paged

`GET /lists/{id}/leads`

## Request

- Base URL: `https://mcp.senders.ai/api/v1`
- URL: `https://mcp.senders.ai/api/v1/lists/{id}/leads`
- Auth: HTTP bearer

Scope: leads:read. format=csv returns text/csv with X-Has-More and X-Next-Cursor headers.

## Path parameters

- `id` integer, required

## Query parameters

- `limit` integer
- `cursor` string
- `since` string
- `max_priority` integer
- `format` 'csv'

## Response `200`

OK

- LeadPage
  - `data` Lead[], required
    - `id` integer, required
    - `list_id` integer, required
    - `priority` integer, nullable: 1 = best
    - `segment` string, nullable
    - `name` string, nullable
    - `first_name` string, nullable
    - `last_name` string, nullable
    - `title` string, nullable
    - `organization` string, nullable
    - `domain` string, nullable
    - `signal_summary` string, nullable
    - `reach` string, nullable
    - `email` string, email, nullable
    - `email_status` 'verified' | 'catch_all' | 'risky' | 'invalid' | 'personal' | 'unverified' | 'none', required
    - `contact_channel` 'email' | 'linkedin' | 'form' | 'dm' | 'mgmt' | 'other' | 'none', required
    - `linkedin_url` string, nullable
    - `alt_contact` string, nullable
    - `notes` string, nullable
    - `outreach` Outreach, required
      - `status` 'not_contacted' | 'pending' | 'contacted' | 'replied' | 'bounced' | 'unsubscribed' | 'dnc' | 'held' | 'meeting_booked'
      - `lead_status` 'interested' | 'meeting_booked' | 'not_interested' | 'out_of_office' | 'wrong_person' | 'closed' | 'null', nullable
      - `reply_sentiment` 'positive' | 'negative' | 'neutral' | 'auto_reply' | 'null', nullable
      - `last_contacted_at` string, date-time, nullable: ISO 8601, UTC
      - `replied_at` string, date-time, nullable: ISO 8601, UTC
    - `added_at` string, date-time, nullable: ISO 8601, UTC
  - `has_more` boolean, required
  - `next_cursor` string, nullable, required: Cursor after the last item. Save it to resume; null only when the page is empty and no cursor was sent.

## Other responses

- `400`: Invalid parameter (bad_request)
- `401`: Missing, wrong or revoked token (unauthorized)
- `403`: Missing scope (forbidden), paused account (account_inactive) or plan without the API (feature_not_enabled)
- `404`: No such list on this account (not_found)
- `429`: Rate limited (rate_limited, daily_limit). Wait Retry-After seconds.

---

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