Build automated WhatsApp-first workflows, send outbound campaign broadcasts, and integrate your CRM with programmatic HTTP endpoints.
Send your first WhatsApp message via cURL in under 60 seconds.
Bearer token authorization headers and API key security practices.
Detailed schemas for messages, contacts, campaigns, and tags.
Receive real-time HTTP POST notifications on incoming WhatsApp messages.
The Chatofy Developer REST API enables programmatic access to your WhatsApp Business ecosystem. Instead of manually navigating CRM dashboards, your external servers, webhooks, or third-party platforms (like Zapier, Make, and backend microservices) can dispatch messages and manage leads.
Common API Workflows
All API requests are sent over HTTPS to the canonical production gateway. All payload bodies and responses use UTF-8 JSON encoding.
https://app.chatofy.in/api/v1Every request must provide your secret API key in the standard HTTP Authorization header using the Bearer scheme.
Organizations can provision and revoke secret keys directly in their workspace settings. Each key inherits permissions scoped to your organization.
Generate fresh tokens with custom identifiers. When rolling credentials, revoke your existing key to provision a replacement.
Tokens are encrypted at rest with AES-256-GCM. SHA-256 hashes are used for instant constant-time lookup.
To guarantee high availability and protect WhatsApp Cloud API upstream thresholds, requests are throttled per organization token:
| Plan Tier | Requests / Minute | Burst Allowance | Status |
|---|---|---|---|
| Standard Plan | 100 req / min | 200 requests | Active |
| Professional Plan | 500 req / min | 1,000 requests | Recommended |
| Enterprise / Agency | 2,000 req / min | 5,000 requests | Dedicated |
When limits are exceeded, the API returns a 429 Too Many Requests response. Inspect the standard Retry-After response header for backoff recommendations.
Chatofy returns standard HTTP status codes with a predictable JSON envelope indicating error details:
| HTTP Code | Error Code | Description & Remediation |
|---|---|---|
| 200 / 201 | SUCCESS | Operation completed as requested. |
| 400 | BAD_REQUEST | Missing or invalid payload fields or parameters. |
| 401 | UNAUTHORIZED | Missing or invalid Bearer authentication token. |
| 403 | FORBIDDEN | Insufficient permissions or feature not allowed on your plan. |
| 429 | RATE_LIMIT_EXCEEDED | Too many requests dispatched within the minute window. |
| 500 | INTERNAL_SERVER_ERROR | Unexpected platform error. Retry with exponential backoff. |
Every timestamp returned by the API (created_at, updated_at, current_period_end, webhook timestamp and so on) uses ISO 8601 with a fixed Indian Standard Time offset and no fractional seconds:
Asia/Kolkata is the default timezone for the whole platform until an account chooses another one for its own settings. Send schedule times without an offset (for example 2026-10-14T21:30) and they are read as IST; an explicit Z or offset is honoured and converted.
Run this cURL snippet in your terminal to dispatch a live WhatsApp message:
Model Context Protocol (MCP) and REST APIs serve distinct purposes. To keep your developer experience clean and focused, we provide a dedicated MCP Developer Portal featuring full client setup guides, interactive tool schemas, and copyable prompt workflows.
Instant 1-Click Connection for Claude Code CLI:
Explore full request and response specifications for each resource endpoint:
/api/v1/contacts/api/v1/contact/create/api/v1/contact/update/{phone}/api/v1/contacts/upsert/api/v1/contacts/bulk/api/v1/contacts/duplicates/api/v1/contacts/merge/api/v1/contacts/import/preview/api/v1/contacts/import/commit/api/v1/contacts/{id}/timeline/api/v1/contacts/search/api/v1/contacts/{id}/products/api/v1/contacts/{id}/products/api/v1/contacts/{id}/products/{productId}/api/v1/contacts/{id}/activities/api/v1/contacts/{id}/followups/api/v1/contacts/{id}/followups/api/v1/contact/{phone}/send-message/api/v1/contact/{phone}/send-interactive-message/api/v1/contact/{phone}/send-media-message/api/v1/contact/{phone}/send-media-message/api/v1/contact/{phone}/send-template-message/api/v1/contact/{phone}/send-template-message/api/v1/contact/{phone}/send-template-message/api/v1/conversations/api/v1/inbox/search-messages/api/v1/inbox/conversations/{id}/snooze/api/v1/inbox/conversations/{id}/reopen/api/v1/inbox/bulk/api/v1/inbox/conversations/{id}/media/api/v1/inbox/conversations/{id}/metadata/api/v1/inbox/conversations/{id}/metadata/api/v1/products/api/v1/products/api/v1/products/{id}/api/v1/products/{id}/stages/api/v1/tags/api/v1/contact/tags/api/v1/contacts/{id}/api/v1/contacts/{id}/restore/api/v1/users/api/v1/pipelines/api/v1/pipelines/api/v1/pipelines/{id}/stages/api/v1/pipelines/{id}/stages/api/v1/pipelines/{id}/stages/{stageId}/api/v1/pipelines/{id}/stages/{stageId}/api/v1/deals/api/v1/deals/api/v1/deals/bulk/api/v1/deals/{id}/move/api/v1/deals/{id}/api/v1/deals/{id}/api/v1/deals/{id}/restore/api/v1/deals/search/api/v1/deals/export