Introduction
Teekrr is a multi-tenant omnichannel messaging platform for Malaysian businesses. With a single API key you can:
- Send SMS broadcasts
- Send WhatsApp template messages over the WhatsApp Business Platform
- Send Email broadcasts
- Receive HMAC-signed webhooks at your own URL as messages are sent, delivered, read, or fail - and when a customer replies on WhatsApp
Every endpoint is REST over JSON, returns standard HTTP status codes, and uses Bearer API-key auth.
Send your first broadcast in under five minutes.
Issue API keys, scopes, IP whitelists, and rotation.
Full endpoint reference with request/response schemas.
Receive delivery events at your own URL with HMAC signatures.
Base URL
All endpoints are served from https://api.teekrr.com.
Response envelope
Successful responses are wrapped in a data object. Errors are not wrapped, and come in three shapes:
Both validation shapes return 400 - handle both. See Error codes for the full reference.
Billing model
- Prepaid clients: every broadcast atomically reserves credit on creation. Credit is settled when the provider accepts the message and released if delivery permanently fails.
- Postpaid clients: a per-cycle spending cap is enforced; broadcasts that would exceed the cap return
402 Payment Required. Accounts with overdue invoices are suspended and also return402.
All amounts are integer cents, and the platform currency is MYR. Per-channel rates (SMS / WhatsApp / Email) are visible on your in-app /api-management dashboard.
Status lifecycle
accepted is an internal acknowledgement from the WhatsApp provider and does not emit a webhook.
SMS and WhatsApp are delivered asynchronously, and their status reaches your registered webhook URL - see the Webhooks guide. Email is dispatched synchronously: the sent / failed / total counts in the POST /email response are the complete result, and the email channel emits no webhooks.
Rate limits
Per-endpoint limits key on the client account that owns the API key, not on the individual key - several keys belonging to one client share a single bucket.
The global per-IP limit applies on top and is usually the binding constraint for an integration calling from a single egress IP: you cannot reach the POST /sms allowance from one address.
Exceeding any limit returns 429 Too Many Requests with a Retry-After header.
Request size
Request bodies are capped at 10 MB. A larger body returns 413 - split the recipient list into smaller batches.
Need help?
- Email: support@teekrr.com
- Status: status.teekrr.com