Introduction
kirim.dev is a WhatsApp API for developers. You call a REST API from your own code to send messages, templates, and interactive replies, and to receive events over webhooks. It is infrastructure — not an inbox, broadcast tool, or CRM.
The request and response shapes are the WhatsApp Cloud API's, unchanged. What you send is forwarded to Meta byte for byte, so Meta's official reference describes every field — this documentation covers what's specific to kirim.dev: the base URL, authentication, and which endpoints are available.
1. Connect a number
In the dashboard, connect a WhatsApp number — onboard one through Embedded Signup, or bring your own WhatsApp Business account. Coexistence numbers are supported. Once the number isconnected, it can send.
2. Create an API key
Create a key in the dashboard under API Keys. Keys look like kd_live_… (orkd_test_… for testing). The key is shown once — store it somewhere safe. It authenticates every request; your Meta token stays encrypted in our vault and never touches your code.
3. Base URL
Send requests to https://api.kirim.dev. The path is the Cloud API path, including the version segment:
https://api.kirim.dev/v23.0/{PHONE_NUMBER_ID}/messages4. Authentication
Pass your kirim.dev API key as a bearer token. Do not send your Meta token — kirim.dev supplies that for you.
Authorization: Bearer kd_live_a1B2c3D4xY7z...5. Your first request
Send a text message:
curl -X POST https://api.kirim.dev/v23.0/{PHONE_NUMBER_ID}/messages \
-H "Authorization: Bearer $KIRIM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"messaging_product": "whatsapp",
"to": "62812XXXXXXX",
"type": "text",
"text": { "body": "Hello from kirim.dev 👋" }
}'Replace {PHONE_NUMBER_ID} with your connected number's phone number id (from the dashboard) and62812XXXXXXX with the recipient in international format. A successful call returns the message id, exactly as Meta returns it.
What's next
- Sending messages — text, media, interactive.
- Templates — create and send message templates.
- Media — upload and send images, documents, and more.
- Webhooks — receive inbound messages and status events.
- Errors — how failures are reported.