Existing numbers
Pair a normal WhatsApp account through Linked Devices and keep it available on the phone.
Send WhatsApp messages from your code, get replies and delivery updates on a signed webhook, and keep the data behind each alert. With a guide for every step.
Free Sandbox, no card needed. Pair a number and send your first message in about 10 minutes.Pair a normal WhatsApp account through Linked Devices and keep it available on the phone.
Send from your application with one HTTP request and receive replies at your webhook.
Attach application data to an alert so optional AI replies stay relevant.
ChatRail gives you a workspace-scoped HTTP API for sending messages, tracking delivery state and receiving replies. Your application stays the system of record. ChatRail handles the WhatsApp connection and keeps the link between an alert, its context and the replies that follow. It is plain HTTP and JSON: no SDK is needed, and any language that can make a request works.
curl -X POST https://www.chatrail.dev/v1/messages/text \
-H "Authorization: Bearer $CHATRAIL_API_KEY" \
-H "Idempotency-Key: order-2048-dispatched" \
-H "Content-Type: application/json" \
-d '{"connection":"operations","to":"+14155550142",
"body":"Order CR-2048 has shipped.",
"context":{"order_id":"CR-2048","status":"dispatched"}}'Use a server-side API key and a stable idempotency key. Never put credentials in browser code. The reply is 202 Accepted, which means the message is stored and queued, not that it was delivered. Delivery state arrives later on your webhook. To pair a number and send this for real, follow the quickstart.
send_at, run recurring schedules, or check whether a number is on WhatsApp (up to 10 per request). Both are in the API reference.ChatRail posts signed events to the HTTPS endpoint you register. The signature is in the chatrail-signature header, with a chatrail-timestamp header beside it. Events cover inbound replies, delivery changes, connection changes, reactions, edits and poll votes.
| State | What it means |
|---|---|
| scheduled | Held until the send time you set. |
| queued | Stored and waiting to be sent. |
| submitted | Handed to the WhatsApp session. No confirmation yet. |
| sent | WhatsApp's servers accepted it. |
| delivered | It reached the recipient's phone. |
| read | The recipient opened it. |
| failed | It did not go through. The message carries the reason. |
| canceled | You canceled it before it was handed to WhatsApp. |
A 202 response never means delivered. Only the message status says that. The guide on sent, delivered and read shows how to handle late and out-of-order updates.
Send an Idempotency-Key on every send. If a request times out, retry with the same key: you get the original response back and the customer gets one message. A repeat while the first is still running returns 409, and the same key with a different body returns 422.
A connection is one paired WhatsApp number. You pair it by QR code or by typing a code on the phone, and it keeps working on the phone as normal. Sessions can drop, so plan for it.
To protect the number, ChatRail refuses more than 10 messages to the same person in 5 minutes, caps group member adds at 20 an hour, and keeps an opt-out list of people who must not be messaged. When it refuses, the response says why.
Use ChatRail for alerts, status updates, approvals, monitoring and other workflows where the recipient may reply. It does not replace your database, your authorization system or your support process. See the tutorials for complete workflows, or browse every guide.
ChatRail connects through WhatsApp Linked Devices, not the official Meta Cloud API. Sessions can disconnect, WhatsApp controls account enforcement, and unwanted or high-risk messaging can get a number restricted. Message people who expect to hear from you, send at a steady pace, and have a plan for reconnecting. Compare it with the official API, read what working without Meta approval means and how to tell a ban from an expired session before you build on it.
Plans are priced per connected number, not per message. The Sandbox is free with 500 messages a month. Paid plans start at $15 a month with unlimited messaging, and AI replies are included on the higher plans. See pricing for the details.
ChatRail is not the only WhatsApp API built on Linked Devices. Each comparison goes line by line through price per number, free tier, limits, media, groups, webhooks, AI replies and MCP, using the vendor's own pricing page.
Or see all six side by side.
No. ChatRail uses a linked-device session on a normal WhatsApp account.
No. Pairing a number does not involve Meta business approval. Read the limits above before you build on it.
Yes. Replies, delivery changes and connection events are sent to your webhook.
Yes. You can list groups, create them, manage members and send to a group by naming it explicitly.
No. It is a plain HTTP API with JSON, so any HTTP client works.
No. Sending, webhooks and delivery state work without AI.
Validate the connection, delivery state and reply path before increasing traffic.
Start free