/v1/propertiesList listings
Keyset-paginated listings within the caller’s view scope. `filter` takes the shared filter DSL over PROPERTY_FILTER_FIELDS, `q` searches the title, society and P- reference; `near_*`/`radius_m` or `polygon` narrow by map area (PostGIS). Sort keys: created_at, updated_at, price, rent_amount, area_sqft (- for descending).
Access: API key with properties:read, or a member session. Permission properties.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.
near_latquery- number
near_lngquery- number
radius_mquery- integer
polygonquery- string
JSON array of [lng, lat] pairs (3–200 points), or base64url of it.
Response · 200
datarequired- array of PropertySummary
metarequired- PageMeta
curl -X GET 'https://api.propzolo.com/v1/properties' \
-H 'Authorization: Bearer pz_live_…'{
"data": [
{
"id": "cmusrceel0000q7kaafxqi1om",
"ref_code": "P-2031",
"listing_type": "sale",
"category": "residential",
"property_type": "apartment",
"title": "string",
"status": "draft",
"bhk": 0,
"bathrooms": 0,
"layout": "simplex",
"carpet_area": 0,
"builtup_area": 0,
"super_area": 0,
"plot_area": 0,
"area_unit": "sqft",
"area_sqft": 0,
"price": 850000000,
"price_per_sqft": 850000000,
"price_on_request": true,
"rent_amount": 850000000,
"deposit_amount": 850000000,
"maintenance_amount": 850000000,
"maintenance_period": "string",
"furnishing": "unfurnished",
"facing": "north",
"possession_status": "ready_to_move",
"possession_date": "2026-10-06",
"available_from": "2026-10-06",
"society_name": "string",
"sub_locality": "string",
"city": "string",
"locality": {
"id": "cmusrceel0000q7kaafxqi1om",
"name": "string",
"city": "string"
},
"latitude": 0,
"longitude": 0,
"location_precision": "exact",
"cover_url": "string",
"photos_count": 0,
"matches_count": 0,
"listed_by": {
"id": "cmusrceel0000q7kaafxqi1om",
"name": "string"
},
"is_featured": true,
"verified_at": "2026-10-06T05:30:00.000Z",
"verification_badge": {
"status": "verified",
"verified_at": "2026-10-06T05:30:00.000Z",
"expires_at": "2026-10-06T05:30:00.000Z",
"valid_until": "2026-10-06"
},
"views_count": 0,
"shares_count": 0,
"enquiries_count": 0,
"visits_count": 0,
"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.

