~/whatsapp-cloud-api

WhatsApp API
for developers.

Connect a number, grab an API key, and start sending messages, templates, and interactive replies — over a clean REST API built for developers.

send-a-message.sh
# send a WhatsApp message
curl -X POST https://api.kirim.dev/.../messages \
  -H 'Authorization: Bearer $KIRIM_KEY' \
  -d '{
    "messaging_product": "whatsapp",
    "to": "+62...",
    "type": "text",
    "text": { "body": "Hello 👋" }
  }'

~/how

From zero to your first message in three steps.

Connect a WhatsApp number, create an API key, and send. A clean REST API for messages, templates, and interactive replies.

01

Connect a number

Onboard a WhatsApp number through Embedded Signup, or bring your own business account. Your token is sealed at rest with AES-256-GCM.

02

Grab an API key

Create a key from the dashboard. It authenticates every request; your Meta token never leaves our vault.

03

Send

Text, templates, interactive buttons, media — one POST to api.kirim.dev sends a WhatsApp message.

The payload you send is the exact WhatsApp Cloud API payload.

Same messaging_product, to, type, template, and interactive fields — forwarded byte for byte, never rewritten in transit. Meta's official API reference is your reference; there is no proprietary format to learn, and the errors you get back are Meta's own.

~/why

Why not just call Meta directly?

You can — once you have the access. Getting it is the hard part: Meta gates the Cloud API behind Tech Provider approval and App Review. kirim.dev has cleared that path, so you skip to the send.

On your own

  • Apply to become a Meta Tech Provider
  • Submit your app for App Review (messaging + management)
  • Wait for Advanced access before real traffic flows
  • Build token storage, webhook verification, retries yourself
  • Do it all again for coexistence numbers

With kirim.dev

  • Connect a number — that is the whole onboarding
  • App Review and Tech Provider status: already done, on our side
  • Coexistence works out of the box
  • Token encryption, webhook signing, retries: built in
  • Send in minutes, not weeks
COEXISTENCE-READY

Keep the WhatsApp Business app. Send at scale too.

Coexistence numbers are supported first-class. Your team keeps chatting from the app on the same number the API sends from — kirim.dev paces sends under the coexistence throughput so Meta is far less likely to reject a campaign mid-flight.

LOWEST COST

The cheapest way to run the WhatsApp API at scale.

Meta bills you directly for conversations — we don't mark that up. You pay only a flat subscription for the API: no per-message fee, no per-seat tax. Start on Starter at $2, move up when you need more numbers.

~/features

Small surface. Everything you need.

Byte-for-byte forwarding

Bodies pass through untouched. A round trip through a struct reorders keys and breaks signatures; we never do it.

Templates & interactive

Create and send message templates, interactive buttons, media, and every other Cloud API message type — unchanged.

Many numbers, one account

Connect multiple WhatsApp numbers per tenant, each isolated. Per-plan quotas keep it tidy.

Webhooks, delivered

Inbound events are verified, fanned out to your endpoints, retried on failure, and signed with a Standard Webhooks signature.

Tokens sealed at rest

Access tokens are encrypted with AES-256-GCM, bound to their row. API keys are HMAC-verified, never stored in the clear.

Access logs

Every call recorded — method, route, status, and how long Meta took — so you can tell your latency from theirs.

~/coexistence

Keep the WhatsApp Business app. Add the API on the same number.

Coexistence numbers are first-class. Staff carry on chatting from the app; your code sends at scale through the Cloud API — one number, both at once. kirim.dev handles the onboarding sync and paces sends under the coexistence throughput so Meta is far less likely to reject a campaign mid-flight.

No cutover, no downtime

Your team keeps replying from the WhatsApp Business app on the phone while your code sends through the API on the same number. Nothing to migrate, no number to abandon, no day where messages stop.

Contacts and history, synced once

On connect, WhatsApp forwards the contacts and up to 180 days of chat already on the phone straight to your webhook. We pass it through and keep none of it, so your server starts with the history, not a blank slate.

The window is handled for you

WhatsApp allows that sync once, within 24 hours of connecting. We ask where your chats should go before the clock starts, so the one chance is never missed while somebody sets up an endpoint.

The sync forwards your data straight to your server and is stored nowhere here.

Group chats are excluded, and WhatsApp asks the phone's owner separately whether to share history at all — an answer we cannot override. With no endpoint set, the messages arrive and are thrown away, which is why kirim.dev asks where they should go before the 24-hour window opens.

~/pricing

Flat pricing. No message markup.

A flat monthly fee for the API — that's all you pay kirim.dev. Meta bills you directly for WhatsApp conversations, and we never mark that up. Every plan starts with a 7-day trial.

Starter

$2/ month

1 WhatsApp number

  • Send & receive messages
  • Templates & interactive
  • Full Meta throughput, no upgrade fee
  • Webhooks & 7-day logs
  • Coexistence support
Start with Starter

Basic

$3/ month

2 WhatsApp numbers

  • Send & receive messages
  • Templates & interactive
  • Full Meta throughput, no upgrade fee
  • Webhooks & 7-day logs
  • Coexistence support
Start with Basic

Pro

POPULAR

$5/ month

5 WhatsApp numbers

  • Send & receive messages
  • Templates & interactive
  • Full Meta throughput, no upgrade fee
  • Webhooks & 7-day logs
  • Coexistence support
Start with Pro

~/faq

Questions, answered.

What is kirim.dev?+

kirim.dev is a developer platform for the WhatsApp API — the plumbing you send messages through, not an app you log into to chat. You call our REST API from your own code to send messages, templates, and interactive replies, and to receive events over webhooks.

Is this an inbox, broadcast, or CRM tool?+

No. There is no shared inbox, no campaign builder, no contact manager. kirim.dev is infrastructure — you build those on top if you need them. If you want a ready-made chat app, this is the layer underneath one, not the app itself.

What can I send?+

Everything the WhatsApp Cloud API supports: text, media, message templates, and interactive messages like buttons and lists. You can also create and manage templates through the API.

Do I need my own WhatsApp Business account?+

You connect a WhatsApp number — either onboard one through Embedded Signup, or bring your own business account. Coexistence numbers are supported, so your team can keep using the WhatsApp Business app on the same number.

How am I billed?+

Meta bills you directly for conversations — we don't mark that up. You pay kirim.dev a flat monthly subscription for the API: no per-message fee, no per-seat cost.

How do I authenticate?+

With an API key you create in the dashboard. It authenticates every request; your Meta token stays encrypted in our vault and never touches your code.

Start sending on the WhatsApp API today.

Connect a number, grab a key, and send your first message in minutes — coexistence-ready, and the cheapest way to run WhatsApp messaging at scale.