Takeed documentation
Takeed sends WhatsApp login codes (OTP) and push notifications to Android, iOS and the web, from one account. Notifications are free and unlimited. Each WhatsApp code uses one credit, and your first company comes with 5 free codes.
On this page
Pick your path#
| I want to… | Read | The first call |
|---|---|---|
| Send login codes on WhatsApp | WhatsApp OTP | POST /api/v1/otp/send |
| Read the application's available OTP messages | WhatsApp OTP | GET /api/v1/otp/balance |
| Push to a Flutter app | Flutter quick start | Takeed.initialize(appId) |
| Push to a website | Web quick start | Takeed.init({ appId }) |
| Leave OneSignal | Moving from OneSignal | change the URL and the key |
Your first code#
-
Create an account with your WhatsApp number, enter your company name, then add an app.
-
Open the app, then Settings → OTP settings → API authorization, and create a key. It is shown once: keep it on your server.
-
Open the company's Message credit, transfer at least one OTP code to the app, then send a code to your own number:
curl https://takeed-iq.com/api/v1/otp/send \ -H "Authorization: Key $TAKEED_KEY" \ -H "Content-Type: application/json" \ -d '{"phone": "+9647701234567", "code": "482913", "user_ip": "203.0.113.7"}'
The code appears in the dashboard under WhatsApp OTP and moves through its ticks: sent, delivered, read. The WhatsApp OTP guide covers the rest.
The basics#
| Concept | Meaning |
|---|---|
| Company | Your account workspace. Holds apps, members and the message wallet. |
| App | One product. Has an App ID, its own OTP balance, notification keys and notification users. |
| Branch | A part of an app (a company, a location). Can have its own API key and optional monthly monitoring limit, and uses the app's notification keys unless it has its own. |
| API key | The secret used as Authorization: Key <key>. Create it inside the app under Settings → OTP settings → API authorization. It is shown in full once. |
| target | Optional with an application key. Use "app:branch" when the request must act on one branch. |
Credit and limits#
Notifications use no credit and have no limit. OTP credit first enters the company's wallet.
A company administrator then transfers credit to each app; sending stops with
application_credit_exhausted when that app reaches zero, even if the company wallet still has
credit. A code that the provider does not accept is refunded to the same app.
The company wallet shows what is still available to distribute, while every app shows its current OTP balance. Branch limits, when used, are monthly monitoring limits; they do not create credit.
Also here#
- One web app, every subdomain: one key for a SaaS with a subdomain per company.
- Sending notifications: targeting, buttons, images and scheduling.
- Error codes: every refusal, with its HTTP status.
- API reference: every endpoint, generated from the code.