API, MCP & AI tools

Org-scoped REST at /api/v1. Copy markdown for Cursor, Claude Code, Codex, or ChatGPT. Hosted MCP serves docs only; a local MCP uses your vcr_ key for live CRM tools.

Any chat (Cursor / ChatGPT / Claude)

Paste this, then ask the model to write the client.

Read https://www.vertexcrm.in/llms.txt and https://www.vertexcrm.in/developers.md then https://www.vertexcrm.in/openapi.json.
Integrate VertexCRM using Authorization: Bearer vcr_YOUR_KEY against https://www.vertexcrm.in/api/v1.
Follow picklists and pagination (per_page=20) exactly. Do not invent Inbox or WhatsApp routes.

Cursor MCP

Put in .cursor/mcp.json. Docs URL needs no key. Live CRM needs vertexcrm-mcp + vcr_.

{
  "mcpServers": {
    "vertexcrm": {
      "command": "vertexcrm-mcp",
      "env": {
        "VERTEXCRM_API_KEY": "vcr_YOUR_KEY",
        "VERTEXCRM_BASE_URL": "https://www.vertexcrm.in"
      }
    },
    "vertexcrm-docs": {
      "url": "https://www.vertexcrm.in/mcp"
    }
  }
}

Claude Code

Docs MCP first. Live CRM second (binary on PATH).

claude mcp add --transport http vertexcrm-docs https://www.vertexcrm.in/mcp
claude mcp add vertexcrm --env VERTEXCRM_API_KEY=vcr_YOUR_KEY --env VERTEXCRM_BASE_URL=https://www.vertexcrm.in -- vertexcrm-mcp

Codex / AGENTS.md

Drop into AGENTS.md or custom instructions.

VertexCRM API: https://www.vertexcrm.in/developers.md
LLM index: https://www.vertexcrm.in/llms.txt
OpenAPI: https://www.vertexcrm.in/openapi.json
Auth: Authorization: Bearer vcr_…

More snippets: /developers/ai.md · Skill: /developers/skill.md · Prompt: /developers/prompt.md

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

  1. Sign in as an organization administrator.
  2. Open Setup → API Keys.
  3. Create a key, copy the vcr_… secret once, store it in your secrets manager.
  4. 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

ResourcePathNotes
Accounts/accounts, /accounts/{id}Company records
Contacts/contacts, /contacts/{id}Optional account_id; timezone is IANA (e.g. Asia/Kolkata)
Leads/leads, /leads/{id}Status: Open - Not Contacted, Working - Contacted, Closed - Converted, Closed - Not Converted. Rating: Hot, Warm, Cold
Opportunities/opportunities, /opportunities/{id}Stages: Prospecting through Closed Won / Closed Lost
Cases/cases, /cases/{id}Status New / Working / Escalated / Closed / On Hold; priority High / Medium / Low

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.