Contacts API
Full CRUD over the people who contact you.
GET
/contacts
contacts:read
GET
/contacts/{id}
contacts:read
POST
/contacts
contacts:write
PATCH
/contacts/{id}
contacts:write
DELETE
/contacts/{id}
contacts:write
The only resource in the API with full CRUD.
List contacts
curl "https://app.limecall.com/api/v1/contacts?page=1&limit=50" \
-H "Authorization: Bearer sk_live_..."page defaults to 1 and limit to 50. Returns the standard { data, pagination } envelope.
Fields
Accepted on both POST and PATCH:
firstName · lastName · email · phone · address · city · state · zipCode · tags · status · notes
Create
curl -X POST https://app.limecall.com/api/v1/contacts \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"firstName": "Priya",
"lastName": "Patel",
"phone": "+447700900123",
"email": "[email protected]",
"tags": ["import", "leeds"]
}'Send phone in international format. Contacts are matched on phone number throughout LimeCall, so a national-format number creates a duplicate rather than matching the existing person.
Update
Send only the fields you are changing.
Delete
Deleting a contact removes the person and the history attached to them, including recordings. This is how an erasure request is honoured — and it is not reversible. See Security.
Bulk imports
There is no bulk endpoint. Importing a list means one POST per row, so respect the rate limit and back off on 429 rather than firing the whole file at once. See Errors, pagination & rate limits.
For a one-off import, the CSV importer in the dashboard is easier — see Contacts.
Was this helpful?