Org-scoped REST API so a shop, booking portal, or ERP can create and update that organization’s accounts, contacts, leads, opportunities, and cases. Interactive explorer: Swagger UI + Redoc. LLM index: /llms.txt. MCP: /mcp.
1. Base URL
https://www.vertexcrm.in/api/v1
Self-hosted: {your-origin}/api/v1. Every row is isolated by organization. A key cannot see another tenant.
2. Authenticate
- Sign in as an organization administrator.
- Open Setup → API Keys.
- Create a key, copy the
vcr_… secret once, store it in your secrets manager.
- Send
Authorization: Bearer vcr_… on every request.
Session cookies and login JWTs also work (browser or custom clients). API keys are the integration path. The key is bound to the current organization when it was created. Grant the key’s user a profile with only the objects you need (list / read / create / update / delete).
3. List pages
Lists return { "data": [ … ], "page": 1, "per_page": 20 }. Page size is fixed at 20. Walk page=1, page=2, … until data is shorter than 20. Optional query: sort, dir (asc|desc). Leads also accept status and rating; opportunities accept stage; cases accept status.
PUT is read-modify-write (send the fields you intend to keep). DELETE returns { "ok": true } with HTTP 200.
4. Resources
Inbox, gallery, products, campaigns, and users are not on v1. Use the UI or a scoped partner endpoint.
5. Create a lead
curl -sS -X POST \
-H "Authorization: Bearer vcr_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"first_name": "Ananya",
"last_name": "Shah",
"company": "Northwind Agency",
"email": "ananya@example.com",
"phone": "+919876543210",
"status": "Open - Not Contacted",
"rating": "Warm",
"source": "Website",
"description": "Requested Growth plan demo"
}' \
"https://www.vertexcrm.in/api/v1/leads"
6. Partner webhooks (separate auth)
- Inbound leads:
POST /webhooks/inbound-leads with X-Inbound-Secret (or Bearer) and optional X-Org-Slug. Body: first_name, last_name, email, company, phone, source, campaign_name, description.
- Booking-forms WhatsApp:
POST /api/booking-forms/whatsapp with Bearer BOOKING_FORMS_WHATSAPP_TOKEN. Body: to, message, optional name, template.
Those secrets are instance configuration, not Setup → API Keys. Request them in the integration questionnaire.
7. Safety
- Never embed
vcr_ keys in a public website.
- Creates are not idempotent — deduplicate on your side.
- Treat 60 requests/minute/key as a polite ceiling; there is no published rate-limit header yet.
- Rotate a leaked key immediately (create new, switch, delete old).
8. Related
Last updated: August 2026. If this page and the running handlers disagree, the handlers win — then we update this page.