CRM API
Create, list, update and convert leads, and manage deals.
All CRM endpoints are under /api/crm and need the Authorization and X-Organization-Id headers. Lists return arrays.
#Leads
| Method and path | What it does |
|---|---|
| GET /api/crm/leads | List leads, newest first |
| POST /api/crm/leads | Create a lead |
| GET /api/crm/leads/:id | Get one lead |
| PUT /api/crm/leads/:id | Update a lead |
| DELETE /api/crm/leads/:id | Delete a lead |
| GET /api/crm/leads/:id/activities | List a lead’s activity |
| POST /api/crm/leads/:id/activities | Add a note to a lead |
| POST /api/crm/leads/:id/convert | Convert a lead into a deal and company |
#Create a lead
| Field | Type | Notes |
|---|---|---|
| name | string | Required |
| email, phone, company | string | Optional |
| status | string | NEW (default), CONTACTED, QUALIFIED, PROPOSAL, WON or LOST |
| source | string | Where the lead came from. Default WEB |
| value | number | Expected value in rupees. Default 0 |
| notes | string | Optional |
| assignedToId | number | The user who owns the lead |
| companyId, partnerId | number | Link to an existing company or partner |
| customFields | object | Values for your custom fields |
| notify | boolean | Send a notification about the new lead |
Request
curl -X POST https://api.aozo.in/api/crm/leads \
-H "Authorization: Bearer $TOKEN" \
-H "X-Organization-Id: $ORG" \
-H "Content-Type: application/json" \
-d '{ "name": "Sharma Traders", "company": "Sharma Traders", "source": "WEB", "value": 48500 }'Response, 201 (some fields omitted)
{
"id": 148,
"name": "Sharma Traders",
"company": "Sharma Traders",
"status": "NEW",
"source": "WEB",
"value": 48500,
"probability": 10,
"score": 25,
"createdAt": "2026-11-13T09:30:00.000Z"
}AOZO calculates the lead’s score and probability for you from its status, value and source.
#Update a lead
Send any of the create fields to PUT /api/crm/leads/:id. If your CRM settings require a lost reason, include lostReason when you set status to LOST.
#Convert a lead
Body for POST /api/crm/leads/:id/convert
{ "createDeal": true, "createContact": true, "dealTitle": "Sharma Traders: annual plan", "dealAmount": 48500 }#Deals
| Method and path | What it does |
|---|---|
| GET /api/crm/deals | List deals |
| POST /api/crm/deals | Create a deal |
| GET /api/crm/deals/:id | Get one deal |
| PUT /api/crm/deals/:id | Update a deal, for example move its stage |
| DELETE /api/crm/deals/:id | Delete a deal |
| POST /api/crm/deals/:id/link-invoices | Link invoices to a deal with { invoiceIds } |
| Field | Type | Notes |
|---|---|---|
| title | string | Required |
| amount | number | Deal value in rupees. Default 0 |
| stage | string | DISCOVERY (default), DEMO, PROPOSAL, NEGOTIATION, WON or LOST |
| closeDate | date string | Expected close date |
| companyName, contactEmail, notes | string | Optional |
| assignedToId, leadId, companyId, contactId | number | Links to other records |
#Other CRM resources
These live under /api/crm as well: contacts, companies, tasks, partners, workflows, templates, targets, custom-fields, import and settings.