API Reference
The SalesPulse REST API lets you sync contacts, retrieve call logs, update pipeline stages, and trigger automations from your own systems. All responses are JSON.
Base URL
https://salespulse.app/api/v1All API endpoints are prefixed with /api/v1. HTTPS only. HTTP requests are redirected.
Authentication
All requests require a Bearer token in the Authorization header. Generate API keys under Settings → API Keys.
curl https://salespulse.app/api/v1/contacts \
-H "Authorization: Bearer sp_live_YOUR_API_KEY"Rate Limits
Rate limit headers are returned on every response: X-RateLimit-Limit, X-RateLimit-Remaining.
Endpoints
Contacts
/contactsList all contacts. Supports ?page=, ?limit=, ?search= query params.
/contactsCreate a single contact.
/contacts/bulkCreate up to 1,000 contacts in a single request.
/contacts/:idGet a single contact by ID.
/contacts/:idUpdate contact fields.
/contacts/:idDelete a contact.
# Create a contact
curl -X POST https://salespulse.app/api/v1/contacts \
-H "Authorization: Bearer sp_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"first_name": "Jane",
"last_name": "Smith",
"phone": "+13055551234",
"email": "jane@example.com",
"state": "FL",
"product_interest": "final_expense"
}'Calls
/callsList call history. Filter with ?contact_id=, ?from=, ?to= date params.
/calls/:idGet call details including recording URL and transcript.
/calls/initiateInitiate an outbound call from your SalesPulse number.
Pipeline
/pipeline/stagesList all pipeline stages.
/contacts/:id/stageMove a contact to a pipeline stage.
/pipeline/dealsList pipeline deals with contact and stage info.
Webhooks
SalesPulse can POST real-time events to your endpoint. Configure webhooks under Settings → Webhooks.
contact.createdA new contact was createdcontact.updatedA contact field was updatedcall.completedAn outbound or inbound call endedcall.missedAn inbound call was not answeredsms.receivedAn inbound SMS was receivedpipeline.stage_changedA contact moved to a new pipeline stagecallpulse.call_receivedA live CallPulse call came in// Example webhook payload: call.completed
{
"event": "call.completed",
"timestamp": "2026-02-26T15:30:00Z",
"data": {
"call_id": "call_abc123",
"contact_id": "ctn_xyz789",
"direction": "outbound",
"duration_seconds": 182,
"recording_url": "https://...",
"disposition": "interested"
}
}Error Codes
200OKSuccess201CreatedResource created successfully400Bad RequestInvalid parameters — check the error.message field401UnauthorizedMissing or invalid API key404Not FoundResource does not exist422Unprocessable EntityValidation errors on the submitted data429Too Many RequestsRate limit exceeded — back off and retry500Server ErrorContact support if this persistsNeed help with the API?
Contact our developer support team or generate your API key in the dashboard.