Send leads with the Lead Push API
Post leads from your website, agency or another CRM to a source's Lead Push URL as JSON, form data, XML or a GET query.
Updated 5 Oct 2026
What you need
- A lead source and its Lead Push URL (Settings → Leads → Lead sources)
- A developer, or a tool such as Zapier or Pabbly that can send a web request
Every lead source has its own Lead Push URL. Anything that can send a web request — your website’s backend, an agency’s system, a CRM you are leaving, Zapier or Pabbly — can send leads to it. They are attributed to that source, de-duplicated and assigned like every other enquiry.
Get the URL
Open the source in Settings → Leads → Lead sources and copy the Lead Push URL. The source page also has a ready curl example.
Send a lead
One lead per request. Use whichever format your system already speaks: a JSON object, a form post, XML, or a GET query string.
curl -X POST 'https://hooks.propzolo.in/ingest/<source token>' \
-H 'Content-Type: application/json' \
-d '{
"id": "ENQ-10234",
"name": "Rahul Sharma",
"phone": "+91 98123 45678",
"budget": "1.2-1.5 Cr",
"bhk": "3 BHK",
"locality": "HSR Layout",
"message": "Ready-to-move flat near the metro",
"utm_source": "google"
}'PropZolo answers 202 within a second; assignment and notifications follow in the background, usually within seconds.
Fields
Common names are recognised automatically: name, phone / mobile, email, city, message, budget, bhk, property_type, lead_type (buy, rent, sell, let_out, invest), locality, project, possession, campaign, utm_*, gclid, fbclid, and your own id (id, lead_id, query_id). Budgets in Indian phrasing (85 L, 1.25 Cr, under 90 lakh) and BHK (3bhk, 1 RK) are understood. Anything unrecognised is kept in the enquiry message, so nothing is lost. To pin a key to a field, set the source’s field mapping.
A lead needs at least a usable phone number or email; otherwise it is kept in the source’s log as rejected — fix the mapping and replay it.
Retries and test leads
- Send your own id and a retried request never creates a second lead — PropZolo answers 202 with
"duplicate": true. - Send
"is_test": trueto check your integration: the lead appears in the source’s log and in Listen for a test lead, not in the CRM.
| Answer | Meaning |
|---|---|
| 202 | Stored (or already received) |
| 404 | Unknown or replaced URL, or the source is switched off |
| 422 | The body could not be read — fix it, don’t retry unchanged |
| 429 | Too many requests — retry after the Retry-After delay |
| 5xx | Temporary problem on our side — retry with backoff |
Sign in to rate this article.
Related articles
- How leads reach PropZoloLead sources, what happens to every enquiry on the way in, source health alarms and replaying failed leads.
- Forms, landing pages and QR codesCapture enquiries on your website and at the site with OTP-verified forms, RERA-ready landing pages and QR codes.
- Connect 99acres, MagicBricks, Housing and other portalsGet portal leads by push URL, API pull or lead-email forwarding, with a ready email for your portal account manager.
- Connect Facebook and Instagram lead adsConnect your Facebook Pages, switch on lead forms, map their questions and test that leads arrive within seconds.
Still stuck?
PropZolo support answers in the app and by email. Something down for everyone? Check the status page.