/v1/dealsList deals
Keyset-paginated deals within the caller’s scope (owner). `filter` takes DEAL_FILTER_FIELDS; `q` matches the title or a D- reference. Sort keys: created_at (default, descending), updated_at, agreed_value, token_date, closed_at, number.
Access: API key with deals:read, or a member session. Permission deals.view.
Parameters
cursorquery- string
Opaque cursor from the previous page (`meta.next_cursor`).
limitquery- integer
Page size, 1–200.
sortquery- string
Comma list of sort keys, "-" prefix for descending, e.g. -received_at.
filterquery- string
Filter tree ({ all | any | not | field/op/value }) as JSON or base64url(JSON).
qquery- string
Free-text search.
viewquery- "open" | "won" | "lost" | "all"
open (default), won, lost or all.
stagequery- DealStage
offer_made, owner_review, accepted and move_in belong to rental deals only (R-01).
typequery- DealType
kindquery- "sale" | "rental"
sale, or rental (rent and lease together: the rental pipeline).
owner_idquery- string
A member id, or `me`.
lead_idquery- Id
Opaque record id.
property_idquery- Id
Opaque record id.
Response · 200
datarequired- array of DealSummary
metarequired- PageMeta
curl -X GET 'https://api.propzolo.com/v1/deals' \
-H 'Authorization: Bearer pz_live_…'{
"data": [
{
"id": "cmusrceel0000q7kaafxqi1om",
"ref": "D-1024",
"number": 0,
"type": "sale",
"kind": "resale",
"stage": "negotiation",
"title": "string",
"contact": {
"id": "cmusrceel0000q7kaafxqi1om",
"name": "string"
},
"lead": {
"id": "cmusrceel0000q7kaafxqi1om",
"ref": "string"
},
"property": {
"id": "cmusrceel0000q7kaafxqi1om",
"ref_code": "string",
"title": "string"
},
"project": {
"id": "cmusrceel0000q7kaafxqi1om",
"name": "string"
},
"unit": {
"id": "cmusrceel0000q7kaafxqi1om",
"unit_no": "string"
},
"owner": {
"id": "cmusrceel0000q7kaafxqi1om",
"name": "string"
},
"agreed_value": 850000000,
"token_amount": 850000000,
"token_date": "2026-10-06",
"agreement_date": "2026-10-06",
"registration_date": "2026-10-06",
"handover_date": "2026-10-06",
"commission_amount": 850000000,
"commission_received": 850000000,
"lost_reason": "string",
"closed_at": "2026-10-06T05:30:00.000Z",
"created_at": "2026-10-06T05:30:00.000Z",
"updated_at": "2026-10-06T05:30:00.000Z"
}
],
"meta": {
"next_cursor": "string",
"has_more": true
}
}Errors
401No valid session or API key (missing, expired or revoked).403The caller lacks the permission, API-key scope or support grant this operation needs.422Invalid input; `error.fields` maps field paths to messages.429Too many requests; retry after the Retry-After header.500Unexpected error; quote `error.request_id` to support.

