API reference / ZiloCRM
ZiloCRM
Leads, activities and deals.
List leads#
Newest first; the person's territory decides which.
Query
qstringstagestringlimitintegercursorstringnext value from the previous page. Up to 500 characters.Answer · 200 OK
dataarray of objectidstringcodestringnamestringcontactNamestring | nullphonestring | nullemailstring | nullsourcestringstagestringlostReasonstring | nullexpectedValuestringexpectedCloseDatestring | nullnextFollowUpstring | nullownerobject | nullidstring | nullemailstring | nullnamestringcitystring | nullstatestring | nullcountrystring | nullnotesstring | nullcustomerIdstring | nullcreatedAtstringupdatedAtstringnextstring | nullcursor for the next page; null on the last.curl "https://api.zilomail.in/v1/crm/leads?limit=20" \
-H "Authorization: Bearer $ZILO_TOKEN"{
"data": [
{
"id": "string",
"code": "string",
"name": "string",
"contactName": "string",
"phone": "string",
"email": "string",
"source": "string",
"stage": "string",
"lostReason": "string",
"expectedValue": "string",
"expectedCloseDate": "2026-10-17",
"nextFollowUp": "2026-10-17",
"owner": {
"id": "string",
"email": "string",
"name": "string"
},
"city": "string",
"state": "string",
"country": "string",
"notes": "string",
"customerId": "string",
"createdAt": "2026-10-17T09:30:00.000Z",
"updatedAt": "2026-10-17T09:30:00.000Z"
}
],
"next": "string"
}Try it
Sign in to call it as yourself.
Get a lead#
Path
idstringrequiredAnswer · 200 OK
idstringcodestringnamestringcontactNamestring | nullphonestring | nullemailstring | nullsourcestringstagestringlostReasonstring | nullexpectedValuestringexpectedCloseDatestring | nullnextFollowUpstring | nullownerobject | nullidstring | nullemailstring | nullnamestringcitystring | nullstatestring | nullcountrystring | nullnotesstring | nullcustomerIdstring | nullcreatedAtstringupdatedAtstringcurl "https://api.zilomail.in/v1/crm/leads/ID" \
-H "Authorization: Bearer $ZILO_TOKEN"{
"id": "string",
"code": "string",
"name": "string",
"contactName": "string",
"phone": "string",
"email": "string",
"source": "string",
"stage": "string",
"lostReason": "string",
"expectedValue": "string",
"expectedCloseDate": "2026-10-17",
"nextFollowUp": "2026-10-17",
"owner": {
"id": "string",
"email": "string",
"name": "string"
},
"city": "string",
"state": "string",
"country": "string",
"notes": "string",
"customerId": "string",
"createdAt": "2026-10-17T09:30:00.000Z",
"updatedAt": "2026-10-17T09:30:00.000Z"
}Try it
Sign in to call it as yourself.
Add a lead#
Body
namestringrequiredcontactNamestringphonestringemailstringsourcestringstagestringlostReasonstringexpectedValuenumberexpectedCloseDatestringnextFollowUpstringownerstringcitystringstatestringcountrystringaddressstringnotesstringAnswer · 201 Created
idstringcodestringnamestringcontactNamestring | nullphonestring | nullemailstring | nullsourcestringstagestringlostReasonstring | nullexpectedValuestringexpectedCloseDatestring | nullnextFollowUpstring | nullownerobject | nullidstring | nullemailstring | nullnamestringcitystring | nullstatestring | nullcountrystring | nullnotesstring | nullcustomerIdstring | nullcreatedAtstringupdatedAtstringOr 202 with the approval it waits for: see Approvals.
curl -X POST "https://api.zilomail.in/v1/crm/leads" \
-H "Authorization: Bearer $ZILO_TOKEN" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"name": "Sharma Stores",
"contactName": "Anil Sharma",
"phone": "+91 98640 11223",
"source": "WEB",
"expectedValue": 45000,
"nextFollowUp": "2026-10-20"
}'{
"id": "string",
"code": "string",
"name": "string",
"contactName": "string",
"phone": "string",
"email": "string",
"source": "string",
"stage": "string",
"lostReason": "string",
"expectedValue": "string",
"expectedCloseDate": "2026-10-17",
"nextFollowUp": "2026-10-17",
"owner": {
"id": "string",
"email": "string",
"name": "string"
},
"city": "string",
"state": "string",
"country": "string",
"notes": "string",
"customerId": "string",
"createdAt": "2026-10-17T09:30:00.000Z",
"updatedAt": "2026-10-17T09:30:00.000Z"
}Try it
Sign in to call it as yourself.
Change a lead#
Only the fields sent change (moving stage to LOST needs lostReason).
Path
idstringrequiredBody
namestringcontactNamestringphonestringemailstringsourcestringstagestringlostReasonstringexpectedValuenumberexpectedCloseDatestringnextFollowUpstringownerstringcitystringstatestringcountrystringaddressstringnotesstringAnswer · 200 OK
idstringcodestringnamestringcontactNamestring | nullphonestring | nullemailstring | nullsourcestringstagestringlostReasonstring | nullexpectedValuestringexpectedCloseDatestring | nullnextFollowUpstring | nullownerobject | nullidstring | nullemailstring | nullnamestringcitystring | nullstatestring | nullcountrystring | nullnotesstring | nullcustomerIdstring | nullcreatedAtstringupdatedAtstringOr 202 with the approval it waits for: see Approvals.
curl -X PATCH "https://api.zilomail.in/v1/crm/leads/ID" \
-H "Authorization: Bearer $ZILO_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'{
"id": "string",
"code": "string",
"name": "string",
"contactName": "string",
"phone": "string",
"email": "string",
"source": "string",
"stage": "string",
"lostReason": "string",
"expectedValue": "string",
"expectedCloseDate": "2026-10-17",
"nextFollowUp": "2026-10-17",
"owner": {
"id": "string",
"email": "string",
"name": "string"
},
"city": "string",
"state": "string",
"country": "string",
"notes": "string",
"customerId": "string",
"createdAt": "2026-10-17T09:30:00.000Z",
"updatedAt": "2026-10-17T09:30:00.000Z"
}Try it
Sign in to call it as yourself.
Log an activity#
A call, meeting, email or task on a lead. A planned one (not done, with due) becomes the lead's next follow-up.
Path
idstringrequiredBody
typeenumrequiredCALL, MEETING, VISIT, EMAIL, NOTE, TASK.subjectstringrequireddetailsstringduestringdonebooleanAnswer · 201 Created
oktrueOr 202 with the approval it waits for: see Approvals.
curl -X POST "https://api.zilomail.in/v1/crm/leads/ID/activities" \
-H "Authorization: Bearer $ZILO_TOKEN" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"type": "CALL",
"subject": "string"
}'{
"ok": true
}Try it
Sign in to call it as yourself.
List deals#
Query
stagestringlimitintegercursorstringnext value from the previous page. Up to 500 characters.Answer · 200 OK
dataarray of objectidstringcodestringnamestringstagestringamountstringprobabilityintegersourcestringexpectedCloseDatestring | nullownerobject | nullidstring | nullemailstring | nullnamestringaccountIdstring | nullleadIdstring | nulllostReasonstring | nullcreatedAtstringupdatedAtstringnextstring | nullcursor for the next page; null on the last.curl "https://api.zilomail.in/v1/crm/deals?limit=20" \
-H "Authorization: Bearer $ZILO_TOKEN"{
"data": [
{
"id": "string",
"code": "string",
"name": "string",
"stage": "string",
"amount": "string",
"probability": 0,
"source": "string",
"expectedCloseDate": "2026-10-17",
"owner": {
"id": "string",
"email": "string",
"name": "string"
},
"accountId": "string",
"leadId": "string",
"lostReason": "string",
"createdAt": "2026-10-17T09:30:00.000Z",
"updatedAt": "2026-10-17T09:30:00.000Z"
}
],
"next": "string"
}Try it
Sign in to call it as yourself.
Get a deal#
Path
idstringrequiredAnswer · 200 OK
idstringcodestringnamestringstagestringamountstringprobabilityintegersourcestringexpectedCloseDatestring | nullownerobject | nullidstring | nullemailstring | nullnamestringaccountIdstring | nullleadIdstring | nulllostReasonstring | nullcreatedAtstringupdatedAtstringcurl "https://api.zilomail.in/v1/crm/deals/ID" \
-H "Authorization: Bearer $ZILO_TOKEN"{
"id": "string",
"code": "string",
"name": "string",
"stage": "string",
"amount": "string",
"probability": 0,
"source": "string",
"expectedCloseDate": "2026-10-17",
"owner": {
"id": "string",
"email": "string",
"name": "string"
},
"accountId": "string",
"leadId": "string",
"lostReason": "string",
"createdAt": "2026-10-17T09:30:00.000Z",
"updatedAt": "2026-10-17T09:30:00.000Z"
}Try it
Sign in to call it as yourself.
Add a deal#
Body
namestringrequiredstagestringamountnumberprobabilityintegersourcestringexpectedCloseDatestringownerstringaccountIdstringlostReasonstringAnswer · 201 Created
idstringcodestringnamestringstagestringamountstringprobabilityintegersourcestringexpectedCloseDatestring | nullownerobject | nullidstring | nullemailstring | nullnamestringaccountIdstring | nullleadIdstring | nulllostReasonstring | nullcreatedAtstringupdatedAtstringOr 202 with the approval it waits for: see Approvals.
curl -X POST "https://api.zilomail.in/v1/crm/deals" \
-H "Authorization: Bearer $ZILO_TOKEN" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"name": "string"
}'{
"id": "string",
"code": "string",
"name": "string",
"stage": "string",
"amount": "string",
"probability": 0,
"source": "string",
"expectedCloseDate": "2026-10-17",
"owner": {
"id": "string",
"email": "string",
"name": "string"
},
"accountId": "string",
"leadId": "string",
"lostReason": "string",
"createdAt": "2026-10-17T09:30:00.000Z",
"updatedAt": "2026-10-17T09:30:00.000Z"
}Try it
Sign in to call it as yourself.
Change a deal#
Only the fields sent change; its lines stay.
Path
idstringrequiredBody
namestringstagestringamountnumberprobabilityintegersourcestringexpectedCloseDatestringownerstringaccountIdstringlostReasonstringAnswer · 200 OK
idstringcodestringnamestringstagestringamountstringprobabilityintegersourcestringexpectedCloseDatestring | nullownerobject | nullidstring | nullemailstring | nullnamestringaccountIdstring | nullleadIdstring | nulllostReasonstring | nullcreatedAtstringupdatedAtstringOr 202 with the approval it waits for: see Approvals.
curl -X PATCH "https://api.zilomail.in/v1/crm/deals/ID" \
-H "Authorization: Bearer $ZILO_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'{
"id": "string",
"code": "string",
"name": "string",
"stage": "string",
"amount": "string",
"probability": 0,
"source": "string",
"expectedCloseDate": "2026-10-17",
"owner": {
"id": "string",
"email": "string",
"name": "string"
},
"accountId": "string",
"leadId": "string",
"lostReason": "string",
"createdAt": "2026-10-17T09:30:00.000Z",
"updatedAt": "2026-10-17T09:30:00.000Z"
}Try it
Sign in to call it as yourself.