deals_list
Lists Pipedrive deals page by page with cursor pagination and filters for status, stage, owner, person, organization, pipeline, or creation date.
Instructions
List deals with cursor-based pagination and filtering options. Backed by Pipedrive API v2 (GET /api/v2/deals).
Returns a page of deals. Use filters to narrow results by status, stage, owner, person, organization, or pipeline.
Workflow tips:
Use status filter to get only 'open', 'won', 'lost', or 'deleted' deals; omit status entirely for all non-deleted deals (v1's 'all_not_deleted' has no v2 equivalent, so it is dropped rather than sent)
Set owned_by_you=1 to see only your deals (resolves your user id via GET /users/me, cached)
Combine with filter_id to use pre-configured Pipedrive filters
Paginate with cursor: pass the cursor from the previous response's additional_data.next_cursor to get the next page; omit it (or pass null) for the first page. A null next_cursor means you're on the last page. 'start' is deprecated and ignored — v2 does not support offset pagination.
sort_by only accepts a small set of v2 fields (confirmed working: id, add_time, update_time) — arbitrary v1 sort fields like 'title' or 'value' will be rejected by the API
For all deals without manual pagination, use deals/list_all_auto instead
Use add_time_from / add_time_until to filter by creation date (client-side). NOTE: this only filters the current page; for complete date-range results use deals/list_all_auto
Common use cases:
List all open deals: { "status": "open" }
List my won deals: { "status": "won", "owned_by_you": 1 }
List deals in a specific stage: { "stage_id": 123 }
Get the next page: { "cursor": "<next_cursor from previous response>" }
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Field to sort by. v2 only accepts a small enum — confirmed working: id, add_time, update_time. | |
| limit | No | Number of items to return | |
| start | No | DEPRECATED — ignored. v2 uses cursor-based pagination; see "cursor". | |
| cursor | No | Opaque cursor from a previous response (additional_data.next_cursor) to fetch the next page. | |
| org_id | No | Filter by organization ID | |
| status | No | Filter by deal status. 'all_not_deleted' is v1-only and is translated to 'no status filter' since v2 has no such value. | |
| sort_by | No | Sort direction | |
| user_id | No | Filter by user (owner) ID — sent as owner_id to v2. If owned_by_you=1 is also set, owned_by_you takes precedence and this value is ignored. | |
| stage_id | No | Filter by stage ID | |
| filter_id | No | ID of the filter to use | |
| person_id | No | Filter by person ID | |
| pipeline_id | No | Filter by pipeline ID | |
| owned_by_you | No | Filter deals owned by the authorized user (1 = yes, 0 = no). Takes precedence over user_id when both are provided. | |
| add_time_from | No | Filter deals created on or after this date (YYYY-MM-DD). Applied client-side. | |
| add_time_until | No | Filter deals created on or before this date (YYYY-MM-DD). Applied client-side. |