This is a developer resource maintained by Blueticks. Not affiliated with green-api.com. Green API is a trademark of its respective owner.
For developers migrating from Green API

From Green API to Blueticks in 10 minutes.

Drop-in endpoint replacements, a clean SDK, and an MCP server your AI tools will actually use. Same protocol, better infrastructure.

See the migration guide →Get API key
curlPythonNodePHPRubyGoMCPREST / OpenAPI
before · green-api
# Green API (old)
import requests
requests.post(
  f"https://api.green-api.com/waInstance{id}/"
  f"SendMessage/{token}",
  json={"chatId": "1415...@c.us", "message": "Hi"}
)
after · blueticks
# Blueticks (new) · 2 lines changed
import blueticks
bt = blueticks.Client("bt_live_···")
bt.messages.send(
  to="+1415...",
  text="Hi"
)
Diff: host + auth only
200K+
teams on Blueticks
13M+
messages sent
2021
shipping since
99.9%
API uptime
🇪🇺 EU
based in Cyprus
02 · Endpoint mapping

Every Green API method, and its Blueticks equivalent.

Most migrations are a find-replace on the method name. The last four rows are new — Blueticks features that Green API doesn't ship at all.

Green API
Blueticks
Verb
Notes
SendMessage
/v1/messages
POST
Body: { to, text, send_at? }
SendFileByUrl
/v1/messages
POST
Pass media_url (single, scalar)
ReceiveNotification
/v1/webhooks
POST
Push, not poll — HMAC-signed
GetStateInstance
/v1/engines
GET
List connected sessions
GetSettings
/v1/account
GET
Account config (read-only)
GetChatHistory
/v1/chats/{chat_id}/messages
GET
Pagination + filters + search
CreateGroup
/v1/groups
POST
Group create — see docs for fields
— (not in Green API)
/v1/campaigns
POST
New · bulk send via audience lists
— (not in Green API)
/v1/audiences
POST
New · contact lists with merge tags
— (not in Green API)
/v1/campaigns/{id}/pause|resume|cancel
POST
New · in-flight campaign control
— (not in Green API)
/v1/chats/{id}/messages/{key}/media
GET
New · 24h-TTL signed URL for media bytes
— (not in Green API)
MCP server (local stdio)
New · `npx @blueticks/mcp` for Claude / Cursor
Green API SDKs

7 libraries, mixed freshness

PHPPythonJS1CJavaC#VBA

The 1C and VBA SDKs are unique, but the modern set is patchier. Last-commit cadence varies per library.

Blueticks SDKs

7 libraries, all current

PythonNodePHPRubyGoMCPREST / OpenAPI

Typed SDKs, async-first, auto-generated from OpenAPI. Same call signature in every language. Anything exotic (1C, VBA, Clojure) — hit the REST endpoint directly.

03 · Walkthrough

The whole migration, in one screen.

Six steps. Usually finishes before the coffee's cold.

01

Get your Blueticks API key

Sign up at api.blueticks.co (3-day free trial, no card). Copy the live key from the dashboard. One key replaces every Green API instance pair you're running.

bt_live_•••
02

Per-method remap (not a host swap)

Green API encodes the method name in the URL path; Blueticks uses HTTP verbs + REST resources. sendMessage and sendFileByUrl both become POST /v1/messages. getChatHistory becomes GET /v1/chats/{chat_id}/messages. See the table above for every mapping.

POST /v1/messages
03

Move the token into a Bearer header

Drop the URL-embedded {idInstance}/{apiTokenInstance} entirely. Add Authorization: Bearer bt_live_••• instead. One header replaces both path segments.

Authorization: Bearer
04

Keep your existing chatIds

Blueticks accepts <digits>@c.us and <groupId>@g.us verbatim — no rewrite needed. E.164 (+14155550123) also works. Pick whichever your code already uses.

14155550123@c.us
05

Register your webhook

POST /v1/webhooks with { url, events[] }. The response includes a one-time HMAC secret — store it; we sign every delivery with it. Events deliver in real time from registration onward.

POST /v1/webhooks
06

Update the webhook handler

Green API delivers { typeWebhook, instanceData, messageData, … }. Blueticks delivers { id, type, created_at, data } with Blueticks-Webhook-{Id,Timestamp,Signature} headers. Verify the HMAC using the secret from step 5.

X-Blueticks-Webhook-Signature
03b · For coding agents

Hand it to Claude Code, Cursor, or your agent of choice.

Drop this prompt into your editor's agent. It does the find-replace, the auth swap, and the webhook handler rewrite — and stops cold the moment it hits a Green API method without a Blueticks 1:1, instead of guessing.

migration-prompt.txt
You are migrating my codebase from Green API (green-api.com) to Blueticks.

Reference docs (consult for exact request/response shapes):
  https://dev.blueticks.co/docs/api

# Endpoint mapping (per-method, NOT a host find-replace)

| Green API                                              | Blueticks                                |
|--------------------------------------------------------|------------------------------------------|
| POST /waInstance{id}/sendMessage/{token}               | POST /v1/messages   { to, text }         |
|   { chatId, message }                                  |                                          |
| POST /waInstance{id}/sendFileByUrl/{token}             | POST /v1/messages   { to, media_url,     |
|   { chatId, urlFile, fileName, caption }               |                       media_caption }    |
| POST /waInstance{id}/getChatHistory/{token}            | GET  /v1/chats/{chat_id}/messages        |
|   { chatId, count }                                    |   ?limit=N&cursor=…                      |
| Webhook config (SetSettings.webhookUrl)                | POST /v1/webhooks                        |
|                                                        |   { url, events[] } → returns { secret } |

# Auth
- Strip {idInstance} and {apiTokenInstance} from every URL.
- Add header: Authorization: Bearer ${BLUETICKS_API_KEY}
- One Blueticks key replaces all Green API instance pairs. To send from a
  specific connected number, add { from: "+15551234567" } in the request body.

# Chat IDs
- Keep your existing <digits>@c.us and <groupId>@g.us as-is — Blueticks
  accepts both verbatim. E.164 (+14155551234) also works. Don't rewrite.

# Webhook handler
- Green API body:  { typeWebhook, instanceData, idMessage, senderData, messageData, … }
- Blueticks body:  { id, type, created_at, data }
- Headers on every delivery: Blueticks-Webhook-Id, Blueticks-Webhook-Timestamp,
  Blueticks-Webhook-Signature (HMAC-SHA256 of "${timestamp}.${rawBody}"
  using the secret returned at registration).
- Update your event-type switch: Green API discriminates on typeWebhook
  (incomingMessageReceived, outgoingAPIMessageReceived, stateInstanceChanged, …).
  Blueticks discriminates on type (message.queued, message.sending,
  message.delivered, message.failed, message.read, session.connected,
  session.disconnected, campaign.{started,paused,resumed,completed,
  aborted}) — see /docs/webhooks for the canonical list.

# Things WITHOUT a 1:1 — flag and stop, don't paper over
- Polling: ReceiveNotification / DeleteNotification (webhooks only on Blueticks)
- Group writes: CreateGroup, AddGroupParticipant, SetGroupAdmin, UpdateGroupName
- Message types: polls, location, contact (vCard), interactive buttons, forwards
- Instance lifecycle: Reboot, Logout, QR fetch, GetStateInstance

# Closing checklist
1. Set BLUETICKS_API_KEY=bt_live_… in env / secret manager.
2. Run the test suite. Update mocks/fixtures to the new response shapes.
3. Smoke one real send: `curl -H "Authorization: Bearer $BLUETICKS_API_KEY" \
     -d '{"to":"+15551234567","text":"migration smoke"}' \
     https://api.blueticks.co/v1/messages`
4. Register the webhook last, after the handler verifies HMAC correctly.

Don't touch anything except API call sites, the webhook handler, and config.
If you hit a Green API method without an obvious mapping, surface it in your
output and STOP — those need a human decision.
04 · What you gain

Six things Green API doesn't give you.

✓✓
Native MCP server
Plug Claude and ChatGPT into WhatsApp in 30 seconds.
📣
Campaign engine
Bulk send with merge tags, throttling, and live callbacks.
Scheduler
One-shot + recurring sends. No cron. No queue to babysit.
🤖
AI Agent
Pretrained support agent or bring your own LLM over MCP.
💸
Flat pricing
Run as many numbers as you want. $9, $25, or $50, done.
🇪🇺
EU data processing
Cyprus-based · EU-headquartered.

Swap the host. Keep shipping.

Grab a key, do the migration, watch ✓✓ land. If something breaks, email support@blueticks.co — a human answers.

Get API key →Copy the OpenAPI spec