REST API v1
Read + write your CRM data from anywhere. Bearer-key auth viaSettings → Provider API keys. All endpoints are org-scoped to the key's tenant; no cross-tenant access possible.
Every request needs an Authorization header. Tokens start with vox_live_. Mint a key from Settings → Provider API keys; scope read or write decides which endpoints accept it.
/api/v1/contacts?page=1&q=rahulreadList contacts in your org, newest first. Optional ?q substring matches name / phone / email.
Example
curl -H "Authorization: Bearer vox_live_xxx" \ "https://your-dashboard.example.com/api/v1/contacts?page=1&q=rahul"
{
"contacts": [
{
"id": "8c4a…",
"name": "Rahul Sharma",
"phone": "+919876543210",
"email": "rahul@example.com",
"role": "Founder",
"lifecycle_stage": "lead",
"preferred_channel": "call",
"dnc": false,
"account_name": "Acme Corp",
"created_at": "2026-05-28T09:00:00Z",
"updated_at": "2026-05-28T09:00:00Z"
}
],
"page": 1,
"page_size": 100,
"total": 1
}/api/v1/contactswriteCreate a contact, or update name/email/role on an existing match by phone.
Example
curl -X POST "https://your-dashboard.example.com/api/v1/contacts" \
-H "Authorization: Bearer vox_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"phone": "+91 98765 43210",
"name": "Rahul Sharma",
"email": "rahul@example.com",
"role": "Founder",
"source": "zapier"
}'{ "id": "8c4a…", "created": true }/api/v1/contacts/{id}readFull contact record by id.
Example
curl -H "Authorization: Bearer vox_live_xxx" \ "https://your-dashboard.example.com/api/v1/contacts/8c4a…"
{
"id": "8c4a…",
"name": "Rahul Sharma",
"phone": "+919876543210",
"lifecycle_stage": "engaged",
…
}/api/v1/contacts/{id}writeUpdate any subset of name / email / role / lifecycle_stage / preferred_channel / dnc / owner.
Example
curl -X PATCH "https://your-dashboard.example.com/api/v1/contacts/8c4a…" \
-H "Authorization: Bearer vox_live_xxx" \
-H "Content-Type: application/json" \
-d '{ "lifecycle_stage": "engaged", "dnc": false }'{ "ok": true }/api/v1/deals?status=openreadList deals filtered by status (open / won / lost / all).
Example
curl -H "Authorization: Bearer vox_live_xxx" \ "https://your-dashboard.example.com/api/v1/deals?status=open"
{
"deals": [
{
"id": "abc1…",
"title": "DSA Sathi — Pro",
"stage": "qualified",
"status": "open",
"value": 50000,
"currency": "INR",
"contact_id": "8c4a…",
"contact_name": "Rahul Sharma",
…
}
],
"page": 1,
"page_size": 100
}/api/v1/dealswriteCreate a deal under an existing contact.
Example
curl -X POST "https://your-dashboard.example.com/api/v1/deals" \
-H "Authorization: Bearer vox_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"contact_id": "8c4a…",
"title": "DSA Sathi — Pro",
"value": 50000,
"currency": "INR",
"stage": "qualified",
"source": "zapier"
}'{ "id": "abc1…" }401— missing or invalid bearer token.403— token is read-only but you hit a write endpoint.404— id not found in your org.422— payload validation failed; body has{ error: "…" }.
No hard rate limit yet — abuse cases will land as 429 when the ops team observes them. Treat this as a fair-use API.