Connect a WhatsApp number once (scan a QR), then send messages with a single HTTP request. Works with any language, or no-code tools (n8n, Make, Zapier) via an HTTP step.
Base URLhttps://wa.intilaq.host
Open the connect link we sent you, then scan the QR from WhatsApp → Linked devices. Status flips to connected automatically. (That's it — no code for this step.)
Authenticate with your API key as a Bearer token. Pick your language:
curl -X POST https://wa.intilaq.host/v1/messages \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"to":"2010XXXXXXXX","type":"text","text":{"body":"Hello 👋"}}'const res = await fetch("https://wa.intilaq.host/v1/messages", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
to: "2010XXXXXXXX",
type: "text",
text: { body: "Hello 👋" }
})
});
console.log(await res.json());import requests
r = requests.post("https://wa.intilaq.host/v1/messages",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"to": "2010XXXXXXXX", "type": "text",
"text": {"body": "Hello 👋"}})
print(r.json())$ch = curl_init("https://wa.intilaq.host/v1/messages");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer YOUR_API_KEY","Content-Type: application/json"],
CURLOPT_POSTFIELDS => json_encode([
"to" => "2010XXXXXXXX", "type" => "text",
"text" => ["body" => "Hello 👋"]
]),
]);
echo curl_exec($ch);Send an image: {"to":"..","type":"image","image":{"link":"https://.../x.jpg","caption":"hi"}}. Add "dry_run":true to test without sending.
{ "ok": true, "message_id": "3EB0...", "to": "2010XXXXXXXX" }
Errors return a matching HTTP status with error.message (e.g. 401 bad key, 409 number not connected, 429 rate limit).
GET https://wa.intilaq.host/v1/instances # list your numbers GET https://wa.intilaq.host/v1/instances/status?name=INSTANCE # connection state POST https://wa.intilaq.host/v1/instances # add another number (returns a QR)
© 2026