Developer API

CRMLead Pro API

Build custom integrations, sync your tools, and automate your CRM workflows with our RESTful API. Full CRUD access to leads, deals, contacts, campaigns, pipelines, and analytics.

Base URL:https://crmleadpro.in/api/v1/

Authentication

CRMLead Pro uses API Key authentication via the Authorization header. Generate your API key from Settings → API → Generate Key in your dashboard.

Example Header

Authorization: Bearer crmlp_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Keys scoped to your workspace
Rate limits per workspace: 1,200 req/min burst, 6,000 req/hour sustained
All requests must use HTTPS
Webhook signature verification supported

Core Endpoints

GET
/leads

List and filter all leads with pagination, sorting, and search

POST
/leads

Create a new lead with full contact and metadata

GET
/leads/{id}

Retrieve a single lead by ID with full history

PATCH
/leads/{id}

Partially update lead fields (status, stage, assigned user, etc.)

DELETE
/leads/{id}

Archive a lead (soft delete)

GET
/leads/export

Export filtered leads as a downloadable CSV

GET
/import-logs/{id}/errors

Download row-level import validation errors as CSV

GET
/pipelines

List all pipelines and their stages

POST
/deals

Create a new deal in a pipeline

GET
/contacts

List all contacts with filter, search, and tag support

POST
/campaigns/email

Create and send a new email campaign

POST
/campaigns/whatsapp

Create and send a WhatsApp broadcast campaign

GET
/analytics/pipeline

Pipeline funnel metrics: volume, conversion rates, deal velocity

POST
/webhooks

Register a webhook for real-time event notifications

Request conventions

Pagination

Collection endpoints accept page and page_size. Responses include count, next, previous, and results.

Filtering

Use documented field filters plus search and ordering where supported. Unknown query parameters are ignored, so check spelling against the documented filters.

Rate limits

Limits apply per workspace: 1,200 requests/minute burst and 6,000/hour sustained; search 300/minute, exports 10/hour, imports 5/hour. Exceeding a limit returns HTTP 429 with a Retry-After header (seconds).

Errors

Errors use JSON with detail or field-level errors and an HTTP status that identifies the failure class.

Paginated request

GET /api/v1/leads?page=2&page_size=50&search=acme&ordering=-created_at

Sample Response — Lead Object

GET /api/v1/leads/lead_01J2XK3M4N5P6Q7R
{
  "id": "lead_01J2XK3M4N5P6Q7R",
  "name": "Priya Sharma",
  "email": "priya@acmecorp.in",
  "phone": "+91 98765 43210",
  "company": "Acme Corp",
  "status": "qualified",
  "pipeline_stage": "demo_scheduled",
  "score": 87,
  "source": "website",
  "assigned_to": "user_sales_rep_01",
  "tags": ["hot-lead", "enterprise"],
  "created_at": "2026-05-15T10:30:00Z",
  "updated_at": "2026-05-20T14:22:00Z"
}

Sample Request — Create Lead

cURL
curl -X POST https://crmleadpro.in/api/v1/leads \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Rajesh Kumar",
    "email": "rajesh@startup.in",
    "phone": "+91 98765 00001",
    "source": "website_form",
    "pipeline": "sales"
  }'

Webhooks

Register webhook URLs to receive real-time event notifications when data changes in your CRM. All webhook payloads are signed with HMAC-SHA256 for verification.

lead.created

Fired when a new lead is created from any source

lead.status_changed

Fired when a lead's status or pipeline stage changes

deal.won

Fired when a deal is marked as closed won

deal.lost

Fired when a deal is marked as closed lost

campaign.sent

Fired when an email or WhatsApp campaign is dispatched

contact.updated

Fired when contact information is modified

SDKs & Client Libraries

Official SDKs are in development. In the meantime, use the REST API directly with your preferred HTTP client. We recommend:

Python (requests)
JavaScript / Node.js (axios)
PHP (Guzzle)

Full API Reference

Browse the generated OpenAPI reference for request/response schemas, authentication requirements, and interactive try-it-out support.