---
title: "List the CRM lists a watchlist can be built from"
method: GET
path: "/api/v1/watchlists/sources"
tags: ["Watchlists"]
---

# List the CRM lists a watchlist can be built from

`GET /api/v1/watchlists/sources`

## Request

- Base URL: `https://api.rodz.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.rodz.io/api/v1/watchlists/sources`
- Auth: HTTP bearer

Build a watchlist from a list that already lives in your CRM, instead of sending the members inline — and keep the two in step as the segment moves.

**Input:** `provider` — `hubspot` (default) or `pipedrive`.

**Output:** `sources[]`, each with `sourceType` and `sourceListId` to pass straight into a watchlist's `config`, plus `name`, `size`, `watches` (`people` for a Job Change Watchlist, `companies` for the company watchlists) and `updatesItself` (true when the list is rule-based, so its membership changes on its own).

An empty array means that CRM is not connected to your account. Connecting one is an interactive authorisation and is done in the dashboard — this endpoint only reads what is already connected. A `412` means the connection exists but was granted without permission to read lists; reconnect it from the dashboard.

**Use cases:**
- Watch the champions in a closed-won list and hear the day one of them lands somewhere new — a warm introduction into a brand-new account.
- Point a company watchlist at the target-account list your team already maintains, so the accounts you monitor never drift from the accounts you sell to.
- Leave `sourceDynamicSync` on so a rule-based segment adds and removes watched records by itself, with no further API calls.

## Query parameters

- `provider` 'hubspot' | 'pipedrive': Which connected CRM to read.

## Response `200`

Successful Response

- object
  - `sources` object[], required
    - `sourceType` 'hubspot_list' | 'pipedrive_filter', required: Pass this as `sourceType` when creating a watchlist.
    - `sourceListId` string, required: Pass this as `sourceListId`.
    - `name` string, required: The list's name in your CRM.
    - `watches` 'people' | 'companies', required: What the list holds. A people list feeds a Job Change Watchlist; a companies list feeds any of the company watchlists.
    - `size` integer, nullable: How many records the list holds, when the CRM reports it.
    - `updatesItself` boolean, required: True when the list is rule-based, so its membership changes on its own. A hand-curated list only changes when someone edits it.

## Other responses

- `412`: The CRM is connected but has not granted permission to read lists
- `422`: Validation Error
- `429`: Rate limit exceeded. Retry after the number of seconds in the `Retry-After` response header.

---

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