SendKuy API

Quickstart

Send your first WhatsApp message in about two minutes.

1. Create a key

In your SendKuy dashboard, open Developers → Keys and create one. The key is shown once — store it now, because we keep only a hash of it and cannot show it to you again.

Give it only the scopes you need. A key that can read contacts and send messages needs contacts:read and messages:write, nothing more.

2. Send

curl -X POST https://app.sendkuy.com/api/v1/messages \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "whatsapp",
    "to": ["+6281234567890"],
    "body": "Your order is on its way."
  }'

Numbers must be E.164, with the leading +. A local number is refused rather than guessed — guessing the wrong country sends a stranger a message and bills you for it.

3. Read the answer

{
  "data": [
    {
      "object": "message",
      "id": "msg_9cBe3A1H-SLhW5fONWZ32wb-IIio5Ts3",
      "channel": "whatsapp",
      "status": "queued",
      "to": "+6281234567890"
    }
  ]
}

data is an array, one object per recipient. One message is one line of delivery: one person, one status. Send to three numbers and you get three objects back, not one with three addresses.

4. Check on it later

curl https://app.sendkuy.com/api/v1/messages/msg_9cBe3A1H-SLhW5fONWZ32wb-IIio5Ts3 \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"

Polling works, but webhooks are better: we call you when the status changes instead of you asking.

What next

  • Authentication — scopes, and what each one grants.
  • Idempotency — retry safely without sending twice.
  • Errors — every failure this API can answer with.

On this page