API Reference

The BlueTick REST API lets you programmatically send WhatsApp messages, manage contacts, create templates, and run campaigns from your own systems.

Base URL

https://api.bluetick.me

Authentication

Generate an API key from Settings → API Keys. Pass it in the Authorization header. API keys start with btk_live_.

Authorization: Bearer btk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Rate Limits

120 requests per minute per IP, plus 300 requests per minute per organization. Exceeding either returns 429.

Integration Examples

BlueTick is a standard REST API — works with any platform that can make HTTP requests. Here are common integration patterns for ERP, CRM, and automation tools.

ERPNext / Frappe

Send WhatsApp on Sales Invoice submit

# hooks.py
doc_events = {
  "Sales Invoice": {
    "on_submit": "myapp.notify"
  }
}

# api.py
import requests
def notify(doc, method):
  requests.post(
    "https://api.bluetick.me/api/messages/send",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={
      "phone": doc.contact_mobile,
      "type": "text",
      "content": {"text": f"Invoice {doc.name} ready"}
    }
  )

Odoo

Trigger from Sale Order confirmation

# models/sale_order.py
import requests
class SaleOrder(models.Model):
  _inherit = 'sale.order'

  def action_confirm(self):
    res = super().action_confirm()
    requests.post(
      "https://api.bluetick.me/api/messages/send",
      headers={"Authorization": f"Bearer {KEY}"},
      json={
        "phone": self.partner_id.mobile,
        "type": "text",
        "content": {"text": f"Order {self.name} confirmed"}
      }
    )
    return res

SAP (ABAP / CPI)

Use HTTP destination or CPI iFlow

" ABAP HTTP client
DATA: lo_http TYPE REF TO if_http_client.
cl_http_client=>create_by_url(
  EXPORTING url = 'https://api.bluetick.me/api/messages/send'
  IMPORTING client = lo_http ).

lo_http->request->set_header_field(
  name = 'Authorization'
  value = |Bearer { lv_api_key }| ).

lo_http->request->set_cdata( lv_json_body ).
lo_http->send( ).

Zoho CRM (Deluge)

Workflow function on lead creation

headers = Map();
headers.put("Authorization",
  "Bearer btk_live_xxx");
headers.put("Content-Type",
  "application/json");

body = Map();
body.put("phone", lead.Phone);
body.put("type", "text");
body.put("content",
  {"text": "Thanks for your interest!"});

response = invokeurl
[
  url: "https://api.bluetick.me/api/messages/send"
  type: POST
  parameters: body.toString()
  headers: headers
];

Node.js / Express

Plain JavaScript fetch

await fetch(
  "https://api.bluetick.me/api/messages/send",
  {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${API_KEY}`,
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      phone: "+91...",
      type: "text",
      content: { text: "Hello" }
    })
  }
);

Zapier / Make / n8n

No-code via Webhooks module

Action: Webhooks → POST

URL:
  https://api.bluetick.me/api/messages/send

Headers:
  Authorization: Bearer btk_live_xxx
  Content-Type:  application/json

Body:
  {
    "phone": "{{customer_phone}}",
    "type": "text",
    "content": { "text": "{{message}}" }
  }

Other supported platforms: Salesforce (Apex callouts), HubSpot (workflows), NetSuite (SuiteScript), Microsoft Dynamics (Power Automate), Shopify, WooCommerce, custom Python/Ruby/PHP/Go scripts.

Messages

Send WhatsApp messages and retrieve message history.

POST/api/messages/send

Send a text, image, document, or template message via the Meta WhatsApp API.

Request body

{
  "conversation_id": "uuid",
  "type": "text",
  "content": { "text": "Hello from BlueTick" }
}

Response

{
  "data": {
    "id": "msg_abc",
    "meta_message_id": "wamid.xxx",
    "status": "sent"
  }
}
GET/api/messages/:conversationId

List messages for a conversation. Supports pagination via ?page=1&per_page=50.

Contacts

Manage WhatsApp contacts and their tags.

GET/api/contacts

List all contacts.

POST/api/contacts

Create a new contact.

Request body

{
  "name": "Jane Doe",
  "phone": "+919539045533",
  "email": "jane@example.com",
  "tags": ["customer"]
}
GET/api/contacts/:id

Get a single contact.

PATCH/api/contacts/:id

Update a contact.

DELETE/api/contacts/:id

Delete a contact.

Conversations

Manage shared inbox conversations and assignments.

GET/api/conversations

List all conversations.

GET/api/conversations/:id

Get a conversation with contact + agent details.

PATCH/api/conversations/:id/assign

Assign a conversation to an agent.

Request body

{ "agent_id": "uuid" }
PATCH/api/conversations/:id/resolve

Mark a conversation as resolved.

Templates

Create and submit Meta-approved message templates.

GET/api/templates

List all templates with status.

POST/api/templates

Create a new template.

Request body

{
  "name": "order_update",
  "category": "marketing",
  "language": "en",
  "body_text": "Hi {{1}}, your order is shipped.",
  "header_type": "text",
  "header_content": "Order Update",
  "footer_text": "Reply STOP to unsubscribe"
}
POST/api/templates/:id/submit

Submit a template to Meta for approval (24h review).

Campaigns

Bulk message campaigns with rate-limited delivery.

GET/api/campaigns

List campaigns with stats.

POST/api/campaigns

Create a campaign.

Request body

{
  "name": "October Promo",
  "template_id": "uuid",
  "audience_filter": { "tags": ["customer"] }
}
POST/api/campaigns/:id/send

Start sending a campaign.

CRM

Lightweight Kanban-style sales pipeline.

GET/api/crm/pipeline

Get pipeline stages.

GET/api/crm/deals

List deals.

POST/api/crm/deals

Create a deal.

PATCH/api/crm/deals/:id

Move deal between stages.

Analytics

Reporting metrics for messages, conversations, and campaigns.

GET/api/analytics/overview

Get overview metrics for the last 30 days.

Organization

Manage your organization settings and team members.

GET/api/org

Get organization details.

PATCH/api/org

Update organization (name, branding, custom domain).

GET/api/org/team

List team members.

GDPR

Data privacy compliance endpoints.

GET/api/gdpr/export

Export all org data as JSON.

DELETE/api/gdpr/delete-account

Permanently delete the account and all data.