Every automation tool uses the same public API: instant triggers through REST hooks, polling triggers for samples and fallbacks, and actions over the documented endpoints — all with one scoped API key.
webhooks:manage plus the read scope of each trigger and the write scope of each action you use.GET /v1/triggers).The subscriptions appear in Settings → Integrations → Webhooks, where an admin can pause or remove them.
new_leadleads:readlead.created)lead_status_changedleads:readlead.status_changed)visit_bookedsite_visits:readvisit.scheduled)deal_wondeals:readdeal.stage_changed)new_contactcontacts:readcontact.created)lead_assignedleads:readlead.assigned)lead_updatedleads:readlead.updated)task_createdtasks:readtask.created)task_completedtasks:readtask.completed)visit_completedsite_visits:readvisit.completed)visit_no_showsite_visits:readvisit.no_show)visit_cancelledsite_visits:readvisit.cancelled)call_loggedcalls:readcall.outcome_logged)message_receivedinbox:readmessage.received)email_receivedleads:reademail.received)property_createdproperties:readproperty.created)property_price_changedproperties:readproperty.price_changed)receipt_recordedreceipts:readreceipt.recorded)payment_link_paiddeals:readpayment_link.paid)payment_refundeddeals:readpayment.refunded)integration_brokenwebhooks:manageintegration.error)POST /v1/hooks
Authorization: Bearer pz_live_…
Content-Type: application/json
{ "target_url": "https://hooks.zapier.com/hooks/standard/…", "trigger": "new_lead", "app": "zapier" }DELETE /v1/hooks/{id}Each matching event POSTs one record (the shapes below) to the target URL, signed like webhooks and retried on the same ladder. Answer 410 to have the subscription removed. A revoked or expired key switches its subscriptions off.
GET /v1/triggers/{trigger}?limit=25 returns the newest records the key can see, newest first. id is the deduplication key (the record’s id; evt_… for events that can repeat, such as a status change or a reassignment). The key’s creator’s field rules apply — a key made by an agent sees masked phone numbers. Money is in paise.
{
"id": "cmlead00000000000000000001",
"ref": "L-1042",
"lead_type": "buy",
"temperature": "warm",
"status": {
"key": "new",
"name": "New"
},
"sub_status": null,
"source": "99acres",
"owner": {
"id": "cmmemb00000000000000000001",
"name": "Priya Sharma"
},
"contact": {
"id": "cmcont00000000000000000001",
"name": "Rahul Verma",
"phone": "+919812345678",
"email": "rahul@example.com",
"city": "Pune"
},
"requirement": {
"budget_min": 750000000,
"budget_max": 950000000,
"bhk": [
2,
3
],
"property_types": [
"apartment"
],
"location": "Baner"
},
"received_at": "2026-10-06T04:30:00.000Z",
"created_at": "2026-10-06T04:30:02.000Z",
"url": "https://app.propzolo.com/leads/cmlead00000000000000000001"
}{
"id": "evt_918273",
"changed_at": "2026-10-06T06:12:00.000Z",
"from_status": {
"key": "new",
"name": "New"
},
"to_status": {
"key": "site_visit_scheduled",
"name": "Site visit scheduled"
},
"lead": {
"id": "cmlead00000000000000000001",
"ref": "L-1042",
"lead_type": "buy",
"temperature": "warm",
"status": {
"key": "site_visit_scheduled",
"name": "Site visit scheduled"
},
"sub_status": null,
"source": "99acres",
"owner": {
"id": "cmmemb00000000000000000001",
"name": "Priya Sharma"
},
"contact": {
"id": "cmcont00000000000000000001",
"name": "Rahul Verma",
"phone": "+919812345678",
"email": "rahul@example.com",
"city": "Pune"
},
"requirement": {
"budget_min": 750000000,
"budget_max": 950000000,
"bhk": [
2,
3
],
"property_types": [
"apartment"
],
"location": "Baner"
},
"received_at": "2026-10-06T04:30:00.000Z",
"created_at": "2026-10-06T04:30:02.000Z",
"url": "https://app.propzolo.com/leads/cmlead00000000000000000001"
}
}{
"id": "cmvisi00000000000000000001",
"scheduled_at": "2026-10-10T05:30:00.000Z",
"status": "scheduled",
"visit_number": 1,
"meeting_point": "Sales office, Gate 2",
"agent": {
"id": "cmmemb00000000000000000001",
"name": "Priya Sharma"
},
"project": "Skyline Heights",
"listings": [
{
"ref_code": "P-2031",
"title": "3 BHK in Baner"
}
],
"lead": {
"id": "cmlead00000000000000000001",
"ref": "L-1042",
"contact": {
"id": "cmcont00000000000000000001",
"name": "Rahul Verma",
"phone": "+919812345678"
}
},
"created_at": "2026-10-06T06:12:00.000Z",
"url": "https://app.propzolo.com/leads/cmlead00000000000000000001"
}{
"id": "cmdeal00000000000000000001",
"ref": "D-1024",
"type": "sale",
"title": "3 BHK, Baner — Rahul Verma",
"stage": "closed_won",
"agreed_value": 925000000,
"token_amount": 5000000,
"commission_amount": 18500000,
"closed_at": "2026-10-20T09:00:00.000Z",
"lead_id": "cmlead00000000000000000001",
"owner": {
"id": "cmmemb00000000000000000001",
"name": "Priya Sharma"
},
"contact": {
"id": "cmcont00000000000000000001",
"name": "Rahul Verma",
"phone": "+919812345678"
},
"property": {
"ref_code": "P-2031",
"title": "3 BHK in Baner"
},
"url": "https://app.propzolo.com/deals?deal=cmdeal00000000000000000001"
}{
"id": "cmcont00000000000000000001",
"name": "Rahul Verma",
"phone": "+919812345678",
"email": "rahul@example.com",
"city": "Pune",
"kinds": [
"buyer"
],
"tags": [
"nri"
],
"owner_id": "cmmemb00000000000000000001",
"created_at": "2026-10-06T04:30:02.000Z",
"url": "https://app.propzolo.com/contacts/cmcont00000000000000000001"
}{
"id": "evt_918274",
"assigned_at": "2026-10-06T04:30:05.000Z",
"previous_owner": null,
"owner": {
"id": "cmmemb00000000000000000001",
"name": "Priya Sharma"
},
"lead": {
"id": "cmlead00000000000000000001",
"ref": "L-1042",
"lead_type": "buy",
"temperature": "warm",
"status": {
"key": "new",
"name": "New"
},
"sub_status": null,
"source": "99acres",
"owner": {
"id": "cmmemb00000000000000000001",
"name": "Priya Sharma"
},
"contact": {
"id": "cmcont00000000000000000001",
"name": "Rahul Verma",
"phone": "+919812345678",
"email": "rahul@example.com",
"city": "Pune"
},
"requirement": {
"budget_min": 750000000,
"budget_max": 950000000,
"bhk": [
2,
3
],
"property_types": [
"apartment"
],
"location": "Baner"
},
"received_at": "2026-10-06T04:30:00.000Z",
"created_at": "2026-10-06T04:30:02.000Z",
"url": "https://app.propzolo.com/leads/cmlead00000000000000000001"
}
}{
"id": "evt_918275",
"updated_at": "2026-10-06T05:00:00.000Z",
"changed": [
"temperature"
],
"lead": {
"id": "cmlead00000000000000000001",
"ref": "L-1042",
"lead_type": "buy",
"temperature": "warm",
"status": {
"key": "new",
"name": "New"
},
"sub_status": null,
"source": "99acres",
"owner": {
"id": "cmmemb00000000000000000001",
"name": "Priya Sharma"
},
"contact": {
"id": "cmcont00000000000000000001",
"name": "Rahul Verma",
"phone": "+919812345678",
"email": "rahul@example.com",
"city": "Pune"
},
"requirement": {
"budget_min": 750000000,
"budget_max": 950000000,
"bhk": [
2,
3
],
"property_types": [
"apartment"
],
"location": "Baner"
},
"received_at": "2026-10-06T04:30:00.000Z",
"created_at": "2026-10-06T04:30:02.000Z",
"url": "https://app.propzolo.com/leads/cmlead00000000000000000001"
}
}{
"id": "cmtask00000000000000000001",
"task_id": "cmtask00000000000000000001",
"title": "Call back about the Baner flat",
"type": "call",
"status": "open",
"priority": "normal",
"due_at": "2026-10-07T05:30:00.000Z",
"completed_at": null,
"outcome": null,
"assignee": {
"id": "cmmemb00000000000000000001",
"name": "Priya Sharma"
},
"lead": {
"id": "cmlead00000000000000000001",
"ref": "L-1042",
"contact": {
"id": "cmcont00000000000000000001",
"name": "Rahul Verma",
"phone": "+919812345678"
}
},
"created_at": "2026-10-06T06:12:00.000Z",
"url": "https://app.propzolo.com/leads/cmlead00000000000000000001"
}{
"id": "evt_918276",
"task_id": "cmtask00000000000000000001",
"title": "Call back about the Baner flat",
"type": "call",
"status": "done",
"priority": "normal",
"due_at": "2026-10-07T05:30:00.000Z",
"completed_at": "2026-10-07T05:40:00.000Z",
"outcome": "Interested",
"assignee": {
"id": "cmmemb00000000000000000001",
"name": "Priya Sharma"
},
"lead": {
"id": "cmlead00000000000000000001",
"ref": "L-1042",
"contact": {
"id": "cmcont00000000000000000001",
"name": "Rahul Verma",
"phone": "+919812345678"
}
},
"created_at": "2026-10-06T06:12:00.000Z",
"url": "https://app.propzolo.com/leads/cmlead00000000000000000001"
}{
"id": "cmvisi00000000000000000001",
"scheduled_at": "2026-10-10T05:30:00.000Z",
"visit_number": 1,
"meeting_point": "Sales office, Gate 2",
"agent": {
"id": "cmmemb00000000000000000001",
"name": "Priya Sharma"
},
"project": "Skyline Heights",
"listings": [
{
"ref_code": "P-2031",
"title": "3 BHK in Baner"
}
],
"lead": {
"id": "cmlead00000000000000000001",
"ref": "L-1042",
"contact": {
"id": "cmcont00000000000000000001",
"name": "Rahul Verma",
"phone": "+919812345678"
}
},
"created_at": "2026-10-06T06:12:00.000Z",
"url": "https://app.propzolo.com/leads/cmlead00000000000000000001",
"status": "completed",
"event_at": "2026-10-10T06:45:00.000Z"
}{
"id": "cmvisi00000000000000000001",
"scheduled_at": "2026-10-10T05:30:00.000Z",
"visit_number": 1,
"meeting_point": "Sales office, Gate 2",
"agent": {
"id": "cmmemb00000000000000000001",
"name": "Priya Sharma"
},
"project": "Skyline Heights",
"listings": [
{
"ref_code": "P-2031",
"title": "3 BHK in Baner"
}
],
"lead": {
"id": "cmlead00000000000000000001",
"ref": "L-1042",
"contact": {
"id": "cmcont00000000000000000001",
"name": "Rahul Verma",
"phone": "+919812345678"
}
},
"created_at": "2026-10-06T06:12:00.000Z",
"url": "https://app.propzolo.com/leads/cmlead00000000000000000001",
"status": "no_show",
"event_at": "2026-10-10T06:30:00.000Z",
"reason": "Not reachable"
}{
"id": "cmvisi00000000000000000001",
"scheduled_at": "2026-10-10T05:30:00.000Z",
"visit_number": 1,
"meeting_point": "Sales office, Gate 2",
"agent": {
"id": "cmmemb00000000000000000001",
"name": "Priya Sharma"
},
"project": "Skyline Heights",
"listings": [
{
"ref_code": "P-2031",
"title": "3 BHK in Baner"
}
],
"lead": {
"id": "cmlead00000000000000000001",
"ref": "L-1042",
"contact": {
"id": "cmcont00000000000000000001",
"name": "Rahul Verma",
"phone": "+919812345678"
}
},
"created_at": "2026-10-06T06:12:00.000Z",
"url": "https://app.propzolo.com/leads/cmlead00000000000000000001",
"status": "cancelled",
"event_at": "2026-10-09T12:00:00.000Z",
"reason": "Client travelling"
}{
"id": "evt_918277",
"call_id": "cmcall00000000000000000001",
"direction": "outgoing",
"phone": "+919812345678",
"contact_name": "Rahul Verma",
"started_at": "2026-10-06T05:10:00.000Z",
"duration_sec": 184,
"result": "answered",
"outcome": "interested",
"note": "Wants a Sunday visit",
"member": {
"id": "cmmemb00000000000000000001",
"name": "Priya Sharma"
},
"lead": {
"id": "cmlead00000000000000000001",
"ref": "L-1042"
},
"logged_at": "2026-10-06T05:14:00.000Z",
"url": "https://app.propzolo.com/leads/cmlead00000000000000000001"
}{
"id": "cmmsg000000000000000000001",
"channel": "whatsapp_cloud",
"type": "text",
"subject": null,
"text": "Is the Baner flat still available?",
"received_at": "2026-10-06T05:20:00.000Z",
"conversation_id": "cmconv00000000000000000001",
"lead_id": "cmlead00000000000000000001",
"contact": {
"id": "cmcont00000000000000000001",
"name": "Rahul Verma",
"phone": "+919812345678",
"email": "rahul@example.com"
},
"url": "https://app.propzolo.com/inbox?c=cmconv00000000000000000001"
}{
"id": "cmmail00000000000000000001",
"provider": "google",
"from": {
"name": "Rahul Verma",
"email": "rahul@example.com"
},
"subject": "Re: 3 BHK in Baner",
"snippet": "Thanks, Sunday 11 am works for us.",
"has_attachments": false,
"sent_at": "2026-10-06T05:00:00.000Z",
"lead": {
"id": "cmlead00000000000000000001",
"ref": "L-1042",
"lead_type": "buy",
"temperature": "warm",
"status": {
"key": "new",
"name": "New"
},
"sub_status": null,
"source": "99acres",
"owner": {
"id": "cmmemb00000000000000000001",
"name": "Priya Sharma"
},
"contact": {
"id": "cmcont00000000000000000001",
"name": "Rahul Verma",
"phone": "+919812345678",
"email": "rahul@example.com",
"city": "Pune"
},
"requirement": {
"budget_min": 750000000,
"budget_max": 950000000,
"bhk": [
2,
3
],
"property_types": [
"apartment"
],
"location": "Baner"
},
"received_at": "2026-10-06T04:30:00.000Z",
"created_at": "2026-10-06T04:30:02.000Z",
"url": "https://app.propzolo.com/leads/cmlead00000000000000000001"
}
}{
"id": "cmprop00000000000000000001",
"ref_code": "P-2031",
"title": "3 BHK in Baner",
"listing_type": "sale",
"property_type": "apartment",
"status": "active",
"bhk": 3,
"locality": "Baner",
"city": "Pune",
"price": 950000000,
"rent": null,
"deposit": null,
"created_at": "2026-10-05T07:00:00.000Z",
"url": "https://app.propzolo.com/inventory/properties/cmprop00000000000000000001"
}{
"id": "evt_918278",
"field": "price",
"from": 950000000,
"to": 925000000,
"change_pct": -2.63,
"changed_at": "2026-10-08T09:00:00.000Z",
"property": {
"id": "cmprop00000000000000000001",
"ref_code": "P-2031",
"title": "3 BHK in Baner",
"listing_type": "sale",
"property_type": "apartment",
"status": "active",
"bhk": 3,
"locality": "Baner",
"city": "Pune",
"price": 925000000,
"rent": null,
"deposit": null,
"created_at": "2026-10-05T07:00:00.000Z",
"url": "https://app.propzolo.com/inventory/properties/cmprop00000000000000000001"
}
}{
"id": "cmrcpt00000000000000000001",
"number": "RCPT/2026-27/0007",
"amount": 5000000,
"tds_amount": 0,
"purpose": "commission",
"mode": "gateway",
"reference": "pay_00000000000001",
"status": "cleared",
"received_on": "2026-10-20T00:00:00.000Z",
"deal": {
"id": "cmdeal00000000000000000001",
"ref": "D-1024",
"title": "3 BHK, Baner — Rahul Verma",
"lead_id": "cmlead00000000000000000001"
},
"created_at": "2026-10-20T09:05:00.000Z",
"url": "https://app.propzolo.com/deals?deal=cmdeal00000000000000000001"
}{
"id": "cmplnk00000000000000000001",
"purpose": "token",
"description": "Token for 3 BHK, Baner",
"amount": 5000000,
"amount_paid": 5000000,
"provider": "razorpay",
"paid_at": "2026-10-20T09:00:00.000Z",
"deal": {
"id": "cmdeal00000000000000000001",
"ref": "D-1024",
"title": "3 BHK, Baner — Rahul Verma",
"lead_id": "cmlead00000000000000000001"
},
"booking_id": null,
"url": "https://app.propzolo.com/deals?deal=cmdeal00000000000000000001"
}{
"id": "evt_918279",
"payment_link_id": "cmplnk00000000000000000001",
"amount": 1000000,
"source": "refund",
"outcome": "reversed",
"provider": "razorpay",
"provider_refund_id": "rfnd_00000000000001",
"refunded_at": "2026-10-22T10:00:00.000Z",
"deal": {
"id": "cmdeal00000000000000000001",
"ref": "D-1024",
"title": "3 BHK, Baner — Rahul Verma",
"lead_id": "cmlead00000000000000000001"
},
"booking_id": null,
"url": "https://app.propzolo.com/deals?deal=cmdeal00000000000000000001"
}{
"id": "evt_918280",
"connection_id": "cmconn00000000000000000001",
"provider": "meta_lead_ads",
"error": "The access token was revoked. Reconnect Facebook.",
"needs_reconnect": true,
"broken_at": "2026-10-06T08:00:00.000Z",
"url": "https://app.propzolo.com/settings/integrations/connections"
}A search step finds records before an action (Zapier “Find”, Make “Search”, Pabbly lookup). Parameters combine (all must match); up to 10 records come back in the trigger shapes, within the key’s scope. Phones match in any format — ten digits are read as Indian, NRI numbers keep their country code — and emails ignore case.
GET /v1/searches/lead?phone=%2B919812345678
Authorization: Bearer pz_live_…
{ "data": [ { "id": "cm…", "ref": "L-1042", "contact": { "phone": "+919812345678", … }, … } ] }POST /v1/actions/upsert_lead
Authorization: Bearer pz_live_…
Idempotency-Key: zap-step-8f2c…
Content-Type: application/json
{ "external_id": "row-1042", "name": "Rahul Verma", "phone": "9812345678", "budget": "75 L - 1 Cr" }
{ "data": { "action": "created", "outcome": "created", "lead_id": "cm…", "duplicate_kind": null, … } }Send an Idempotency-Key (the step’s run id) with every action: a retried step returns the first answer instead of acting twice. For website forms and portals, the per-source Lead Push URL (Settings → Lead sources) needs no key at all.