API DOCS

Post a lead into CRM Dost

Two public endpoints, one for each thing you can build under Integrations in the app: a web form (which you can also embed on your site with no code) and a Third-Party integration (an endpoint with no page, for Zapier, Make, Meta lead ads or your own backend). Both need no login, answer any origin, and take a JSON body keyed by the field ids you defined. Nothing else in CRM Dost is a public API.

Find the webhookId, the field ids and a ready-made example for your form or integration under Integrations → Web Forms or Third-Party → its guide in the app.

Web form
POSThttps://preprod.apis.crmdost.com/v1/web-form/submit/{webhookId}

Submits a form you built under Integrations → Web Forms. This is what the hosted embed calls; call it yourself to submit from your own page or server. A multiple-choice field takes an array of the ticked options, or a comma-separated string.

curl -X POST 'https://preprod.apis.crmdost.com/v1/web-form/submit/YOUR_WEBHOOK_ID' \
  -H 'Content-Type: application/json' \
  -d '{
    "f-name": "Riya Kapoor",
    "f-phone": "+91 98765 43210",
    "f-email": "riya@example.com",
    "f-interests": ["Site visit", "Call back"],
    "f-notes": "Weekend please"
  }'
201{ "data": { "leadId": 42 } } — a new lead, tagged with the form or integration as its source and assigned by its rules.
201 + existingLead{ "data": { "leadId": 42, "existingLead": true } } — the phone or email already belongs to a lead; the answers are added to that lead's timeline instead of creating a duplicate.
400{ "message": "…" } — a required field is missing, or an email or phone does not look like one; the message names the field and is safe to show.
404The form or integration does not exist or is switched off.
Third-party integration
POSThttps://preprod.apis.crmdost.com/v1/integrations/{webhookId}

Submits to an integration you built under Integrations → Third-Party. Add a field for each value the other system sends — the field ids are the JSON keys — then point a Zapier or Make Webhooks → POST (JSON) step, a Meta lead-form webhook, or your own code at this address. Press Verify Integration in the app, or send one request, and read the result under API logs.

curl -X POST 'https://preprod.apis.crmdost.com/v1/integrations/YOUR_INTEGRATION_WEBHOOK_ID' \
  -H 'Content-Type: application/json' \
  -d '{ "f-name": "Arjun Mehta", "f-phone": "+91 98100 12345", "f-campaign": "Diwali offer" }'
201{ "data": { "leadId": 42 } } — a new lead, tagged with the form or integration as its source and assigned by its rules.
201 + existingLead{ "data": { "leadId": 42, "existingLead": true } } — the phone or email already belongs to a lead; the answers are added to that lead's timeline instead of creating a duplicate.
400{ "message": "…" } — a required field is missing, or an email or phone does not look like one; the message names the field and is safe to show.
404The form or integration does not exist or is switched off.
Good to know
  • There is no key or token: the webhook id is the address. Keep it inside the systems you connect, and switch the form or integration off in the app to revoke it — the endpoint answers 404 at once.
  • Every request is recorded against the form or integration in the app (its API logs), including the ones refused with 400, so you can see exactly what your integration sent.
  • Requests the form's rules mark as junk are accepted with 200 and no lead, so a bot learns nothing from the response.
  • Need something beyond posting leads? Tell us what you are building.