/v1/leadsList leads
Keyset-paginated leads within the caller’s view scope. `filter` takes the shared filter DSL over the lead fields (requirement and contact fields included), `view` a smart-list preset, `q` a name, phone suffix (4+ digits) or reference (L-10234). Sort keys: received_at, created_at, next_follow_up_at, last_activity_at, status_changed_at, number, expected_value, score, probability (- for descending).
Access: API key with leads:read, or a member session. Permission leads.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- LeadView
Smart-list presets.
Response · 200
datarequired- array of LeadSummary
metarequired- PageMeta
curl -X GET 'https://api.propzolo.com/v1/leads' \
-H 'Authorization: Bearer pz_live_…'{
"data": [
{
"id": "cmusrceel0000q7kaafxqi1om",
"number": 0,
"ref": "L-10234",
"lead_type": "buy",
"temperature": "hot",
"score": 0,
"score_probability": 0,
"probability_band": "high",
"pipeline_id": "cmusrceel0000q7kaafxqi1om",
"status": {
"id": "cmusrceel0000q7kaafxqi1om",
"key": "string",
"name": "string",
"color": "string",
"category": "open"
},
"sub_status": {
"id": "cmusrceel0000q7kaafxqi1om",
"key": "string",
"name": "string"
},
"status_changed_at": "2026-10-06T05:30:00.000Z",
"contact": {
"id": "cmusrceel0000q7kaafxqi1om",
"name": "string",
"phone": "string",
"email": "string",
"city": "string",
"is_nri": true,
"country": "string"
},
"tags": [
"string"
],
"flags": [
"escalate"
],
"owner": {
"id": "cmusrceel0000q7kaafxqi1om",
"name": "string"
},
"presales": {
"id": "cmusrceel0000q7kaafxqi1om",
"name": "string"
},
"source": {
"id": "cmusrceel0000q7kaafxqi1om",
"name": "string"
},
"project_id": "cmusrceel0000q7kaafxqi1om",
"property_id": "cmusrceel0000q7kaafxqi1om",
"received_at": "2026-10-06T05:30:00.000Z",
"last_enquiry_at": "2026-10-06T05:30:00.000Z",
"next_follow_up_at": "2026-10-06T05:30:00.000Z",
"last_activity_at": "2026-10-06T05:30:00.000Z",
"last_contacted_at": "2026-10-06T05:30:00.000Z",
"enquiry_count": 0,
"call_attempts": 0,
"connected_calls": 0,
"duplicate_kind": "string",
"duplicate_of_id": "cmusrceel0000q7kaafxqi1om",
"expected_value": 850000000,
"requirement": {
"budget_min": 850000000,
"budget_max": 850000000,
"bhk": [
0
],
"property_types": [
"apartment"
],
"locality_ids": [
"cmusrceel0000q7kaafxqi1om"
],
"location_text": "string"
},
"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.

