Skip to content
2026

Initial release

Released: May 26, 2026

The Kirimdev platform is now generally available to developers. This first cut covers everything you need to send WhatsApp messages from your backend, subscribe to inbound events, and automate your inbox through an LLM.

All paths are under https://api.kirimdev.com/v1. Phone-number-scoped routes take Meta’s phone_number_id as the first path segment.

  • Messages. POST /v1/{phone_number_id}/messages to send text, interactive, media, and approved template messages, plus read_receipt to mark inbound as read. GET listing, retrieve, and GET …/messages/{id}/media for media download (302 to a signed CDN URL).
  • Conversations. GET /v1/{phone_number_id}/conversations, retrieve, PATCH, plus label attach/detach.
  • Contacts. GET /v1/{phone_number_id}/contacts, POST, retrieve, PATCH, label attach/detach, and bulk label operations.
  • Templates. GET /v1/{phone_number_id}/templates and retrieve by name.
  • Labels. Org-scoped GET /v1/labels (full CRUD).
  • Webhook subscriptions. Org-scoped POST /v1/webhook_subscriptions (full CRUD) plus per-subscription secret rotation, single POST /v1/webhook_deliveries/{id}/replay, and POST /v1/webhook_deliveries/bulk_replay (capped at 1000 per call).
  • Account discovery. GET /v1/me, GET /v1/accounts.
  • Bearer-token authentication with org-scoped live keys (kdv_live_… — only key format issued today).
  • Idempotency on all POST endpoints via the Idempotency-Key header (24-hour replay window). Replays carry Idempotent-Replayed: true.
  • Stable error envelope (type, code, message, param, request_id) with seven type categories.

See the API Reference for the full operation list.

  • @kirimdev/sdk published to npm — fully typed wrapper around /v1, generated from the same OpenAPI spec that powers this documentation.
  • Built-in retry with jittered exponential backoff on 429 and retryable 5xx responses.
  • Stripe-style webhook verifier (verifyWebhookSignature) supporting multi-secret rotation and a configurable timestamp tolerance.
  • Cursor-based pagination helpers (for await iteration).
  • Typed error hierarchy: InvalidRequestError, AuthenticationError, PermissionError, NotFoundError, ConflictError, RateLimitError, ApiServerError, ConnectionError.

See the SDK Quickstart to get started.

  • Streamable-HTTP Model Context Protocol server at POST https://api.kirimdev.com/mcp lets Claude, ChatGPT, and other MCP-aware clients drive your WhatsApp number with natural language.
  • Tools: list_phone_numbers, send_message, list_conversations, get_conversation, search_contacts, list_templates — scoped by the same API keys you use for HTTP.

See the MCP Setup guide for the one-click install flow.

  • Meta passthrough events (X-Kirim-Source: meta): message.received, message.status — body is the exact JSON Meta sent.
  • Kirimdev-native events (X-Kirim-Source: kirim): conversation.assigned, conversation.closed, contact.created, contact.updated — wrapped in the standard envelope { id, type, created_at, data }.
  • HMAC-SHA256 signatures in the Stripe-style header X-Kirim-Signature: t=<unix_seconds>,v1=<hex>[,v1=<hex>…] with per-subscription rotating secrets and a 5-minute default tolerance window.
  • 8-attempt exponential-backoff retry pipeline spread over ~24 hours with ±20% jitter. Subscriptions auto-disable after 20 consecutive failed deliveries.

See the Webhooks overview for the full event catalog and payload schemas.

  • Quickstart, authentication, and core concepts pages.
  • Per-message-type send guides under Sending & receiving.
  • End-to-end recipes: order notifications, support bot with n8n, broadcast campaign.