Customer API contract

Simple API for CRMs, lead forms, sheets, campaigns, and reports.

Customers should see WeSavve endpoints, API keys, usage, and reports. They should not see provider names or internal telecom/model details.

POST

/v1/leads

Create or update one lead from a CRM, website form, landing page, or Google Sheet.

{
  "name": "Amit Sharma",
  "phone": "+919879540798",
  "source": "website",
  "fields": { "city": "Mumbai", "budget": "80L" }
}
POST

/v1/campaigns/{id}/calls

Trigger an outbound call for one lead or a small approved batch.

{
  "lead_id": "lead_123",
  "calling_window": "10:00-18:30",
  "language": "Hindi/Hinglish"
}
GET

/v1/calls/{id}

Fetch status, duration, disposition, extracted fields, transcript, and recording link.

{
  "status": "completed",
  "disposition": "interested",
  "recording_url": "signed-url",
  "transcript_url": "signed-url"
}
POST

/v1/webhooks

Register webhooks for call completed, interested lead, failed call, callback requested, and low credits.

{
  "url": "https://client-crm.com/wesavve",
  "events": ["call.completed", "lead.interested"]
}

Production API requirements

What still has to be implemented server-side.

Auth

Tenant API keys

Per-client keys, scopes, rotation, rate limits, and audit logs.

Storage

Database

Tenants, users, leads, campaigns, calls, recordings, transcripts, credits, invoices.

Webhooks

Delivery

Signed webhooks, retries, failure logs, and test event sender.

Billing

Usage ledger

Every connected minute and add-on cost must be written to a tenant usage ledger.