Skip to content
AuraStack

Lead capture API for real estate CRM: One POST, one lead in the CRM.

Any website, portal or connector can send AuraStack CRM a lead with one request: a key, a name and a phone number. It keeps the UTM tags, finds the campaign, routes the lead to its owner and never makes a second lead for a buyer who enquires twice.

Your mobile number

WhatsApp us+91 89763 5475930 days · your own tenant · no card

We use these details only to set up your trial and call you about it.

The endpoint

POSThttps://crm.aurastack.in/api/v1/leads/capture

Header x-api-key, a name and a phone. That is the whole contract.

01/05The request

A key and a body, nothing else.

Authentication

Your workspace’s lead-capture key, from Settings → Marketing APIs → API Key in the CRM, in an x-api-key header, or as ?key= on the URL for tools that cannot set a header.

Body

JSON (application/json), or a form (application/x-www-form-urlencoded or multipart/form-data), where a field left blank counts as not sent. CORS is open, so a browser form on any domain can post.

02/05Fields

Two required, the rest when you have them.

  • name

    required

    text, 2+ characters

    The buyer’s name (`buyerName` also works).

  • phone

    required

    text, 8+ characters

    Any format. An Indian number sent as +91 is stored as its ten digits; duplicates are matched on the last ten.

  • email

    optional

    email

    Left blank, it is ignored rather than refused.

  • projectName

    optional

    text, up to 160

    Matched by name to one of your projects.

  • source

    optional

    text, up to 60

    Where the lead came from, such as website or 99acres. Defaults to online_ads.

  • sourceDetail

    optional

    text, up to 120

    The form, page or listing.

  • notes

    optional

    text, up to 2,000

    Anything else the buyer wrote.

  • budgetMin, budgetMax

    optional

    number

    In rupees.

  • utm_source, utm_medium, utm_campaign, utm_term, utm_content

    optional

    text

    Kept on the lead; utm_campaign also finds the campaign by its UTM name.

  • utm_id

    optional

    text, up to 64

    The ad platform’s campaign id, matched to a synced campaign.

  • campaignId

    optional

    text

    The CRM campaign’s own id, when you have it.

  • pool

    optional

    text, up to 60

    A routing pool your workspace has set up, to round-robin the lead across only its people.

03/05Examples

From a terminal, or from your own form.

curl, as JSON

curl -X POST 'https://crm.aurastack.in/api/v1/leads/capture' \
  -H 'x-api-key: YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"name":"Rahul Sharma","phone":"+91 98765 43210","projectName":"Demo Heights","source":"website","utm_campaign":"diwali-launch"}'

A website form, posted by the browser

await fetch('https://crm.aurastack.in/api/v1/leads/capture?key=YOUR_KEY', {
  method: 'POST',
  body: new FormData(document.querySelector('#enquiry')),
})
  • Send forms from connectors

    In Zapier, Make or Pabbly, post the fields as a form rather than raw JSON: one quote or line break in a buyer’s answer breaks hand-written JSON and the lead is refused.

  • Keep the key off busy public pages

    A key in a web page can be copied. It can only add leads to your workspace, but for a form that gets heavy traffic, post from your server or a connector instead.

  • Retries are safe

    Posting the same buyer again returns success with deduped set, so an ad platform or connector that retries never creates duplicates.

04/05Responses

Every answer is JSON, and retries are safe.

  • 200{ "success": true, "data": { "leadId": "…", "campaignId": null, "deduped": false } }

    A new lead, assigned and in the list.

  • 200{ "success": true, "data": { "leadId": "…", "deduped": true } }

    A repeat enquiry: no second lead; it is added to the buyer’s existing lead, whose owner is told.

  • 200{ "success": true, "data": { "leadId": null, "test": true } }

    A Meta test lead, acknowledged and dropped.

  • 401{ "success": false, "error": { "code": "NO_KEY" } }

    No key sent (BAD_KEY: a key that matches no active workspace).

  • 422{ "success": false, "error": { "code": "VALIDATION", "details": { … } } }

    A required field is missing or a value is out of range; details names the field.

05/05Straight answers

Questions about the API.

Where do I find the API key?

Settings → Marketing APIs → API Key.

In the CRM, under Settings → Marketing APIs → API Key. Each workspace has its own key, and it only adds leads to that workspace.

Which fields are required?

A name and a phone number.

Only a name (two characters or more) and a phone number (eight or more). Everything else (email, project, source, notes, budget, UTM tags, campaign and pool) is optional.

What happens if the same buyer is sent twice?

Success, and still one lead.

The request succeeds with deduped set to true, and the enquiry is added to the buyer’s existing lead (matched on the last ten digits of the phone), whose owner is told. No second lead is made, so retries are safe.

Can I send 99acres or MagicBricks leads with it?

Yes, with the portal as the source.

Yes. A connector such as Zapier, Make or Pabbly, or the portal’s own lead push where your account has one, posts each lead to the API with source set to the portal’s name, so you can see which portal brings the buyers who book.

Not on the list? Ask us the awkward version — we would rather lose a deal on the call than on the third invoice.

AuraStack
What would you like?

Start your 30-day trial

Tell us who to call. A real person calls you within one business day and sets up your own tenant, with your project in it.

  • 30 days free, no card
  • Partner logins free

Two quick steps

Sales team size (optional)
Your role (optional)

After the trial, ₹799 a user a month billed annually, plus GST. By starting it you agree to be contacted about it by phone, WhatsApp or email. We never sell or share your details.