API & Integrations
Use the Dialsheet REST API, MCP server, or AI Coworker agent to automate your sales workflow, connect external tools, and build on top of your CRM.
Pass your key in every request as a Bearer token:
Authorization: Bearer ds_your_api_keyBase URL
https://www.dialsheet.io/api/v1/leadsList leads. Supports ?search=, ?status=, ?page=, ?limit=
/api/v1/leadsCreate a new lead
/api/v1/leads/:idGet a single lead with full details
/api/v1/leads/:idUpdate lead info or status
/api/v1/leads/:idDelete a lead
# Search leads
curl "https://www.dialsheet.io/api/v1/leads?search=acme&status=new" \
-H "Authorization: Bearer ds_your_api_key"
# Create a lead
curl -X POST "https://www.dialsheet.io/api/v1/leads" \
-H "Authorization: Bearer ds_your_api_key" \
-H "Content-Type: application/json" \
-d '{"name":"Jane Smith","email":"jane@acme.com","company":"Acme","phone":"+1-555-000-1234"}'
# Update lead status
curl -X PUT "https://www.dialsheet.io/api/v1/leads/{id}" \
-H "Authorization: Bearer ds_your_api_key" \
-H "Content-Type: application/json" \
-d '{"status":"qualified"}'/api/v1/email-accountsList your configured mailboxes (needed to get email_account_id)
/api/v1/emailsSend an email via a configured mailbox
/api/v1/emailsList sent email history. Supports ?lead_id=
# Step 1 — get your mailbox IDs
curl "https://www.dialsheet.io/api/v1/email-accounts" \
-H "Authorization: Bearer ds_your_api_key"
# Step 2 — send an email
curl -X POST "https://www.dialsheet.io/api/v1/emails" \
-H "Authorization: Bearer ds_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"email_account_id": "your-mailbox-uuid",
"to_email": "prospect@company.com",
"subject": "Quick intro",
"body_text": "Hi, just reaching out...",
"lead_id": "optional-lead-uuid"
}'/api/v1/smsSend an SMS to a lead via Twilio
/api/v1/smsList SMS history. Supports ?lead_id=
curl -X POST "https://www.dialsheet.io/api/v1/sms" \
-H "Authorization: Bearer ds_your_api_key" \
-H "Content-Type: application/json" \
-d '{"lead_id":"lead-uuid","message":"Hey, following up on our call!"}'/api/v1/tasksList tasks. Supports ?lead_id=, ?completed=false
/api/v1/tasksCreate a task or follow-up reminder
/api/v1/tasks/:idUpdate or complete a task
/api/v1/tasks/:idDelete a task
/api/v1/notesList notes. Supports ?lead_id=
/api/v1/notesAdd a note with optional call outcome
# Create a follow-up task
curl -X POST "https://www.dialsheet.io/api/v1/tasks" \
-H "Authorization: Bearer ds_your_api_key" \
-H "Content-Type: application/json" \
-d '{"title":"Follow up with Jane","lead_id":"lead-uuid","due_date":"2026-03-20T10:00:00Z","priority":"high"}'
# Log a call note
curl -X POST "https://www.dialsheet.io/api/v1/notes" \
-H "Authorization: Bearer ds_your_api_key" \
-H "Content-Type: application/json" \
-d '{"lead_id":"lead-uuid","content":"Spoke for 10 min, very interested","outcome":"interested"}'/api/v1/callsCall history. Supports ?lead_id=, ?limit=
/api/v1/opportunitiesList deals. Supports ?stage=, ?lead_id=
/api/v1/opportunitiesCreate a deal/opportunity
/api/v1/opportunities/:idUpdate deal stage or value
/api/v1/tagsList all tags
/api/v1/tagsCreate a tag
/api/v1/sequencesList sequences/campaigns
/api/v1/sequences/:id/enrollEnroll a lead in a sequence
All responses are JSON. Errors always include an error field.
# Success
{ "lead": { "id": "...", "name": "Jane Smith", ... } }
# Error
{ "error": "Lead not found" } // HTTP 404
{ "error": "Unauthorized" } // HTTP 401 — check your API keyList endpoints return a wrapper object, e.g. { "leads": [...], "total": 142 }