The Flowella REST API lets you send WhatsApp messages, manage contacts and opt-outs, list and bulk-send templates, and pull analytics — programmatically. This page covers everything you need to know before calling an endpoint. The full endpoint reference lives in the API reference sidebar (auto-generated from the OpenAPI spec).Documentation Index
Fetch the complete documentation index at: https://knowledge.flowella.io/llms.txt
Use this file to discover all available pages before exploring further.
Base URL
/api/v1.
Authentication
Every request needs an API key in theAuthorization header:
Creating a key
You need the Owner or Admin role to manage API keys.- Go to Settings → API keys in the Flowella app.
- Click Create key and give it a memorable name.
- Copy the key once — it is shown only at creation time.
Verifying a key
Hit the ping endpoint to confirm a key is valid:200 OK with { "ok": true, "organizationId": "…" } means you are authenticated.
Errors
All errors come back in a consistent envelope:| HTTP status | When you’ll see it |
|---|---|
400 | Validation failed, malformed body, or upstream Meta rejection |
401 | Missing or invalid API key |
402 | Payment required — your subscription does not cover the action |
403 | Forbidden — for example, sending to an opted-out contact, or Meta is not connected |
404 | The requested channel or resource does not exist |
429 | Rate limited — slow down |
error.code field is stable and safe to switch on programmatically. The error.message is human-readable and may change.
Rate limits
API keys are rate-limited per organisation. If you exceed the limit you will get a429 with code RATE_LIMITED and the message Too many requests. Back off and retry with exponential delay.
If you are running large bulk sends, prefer POST /api/v1/templates/send with the throttlePerHour parameter — Flowella enforces the throttle server-side, so you do not need to pace requests yourself.
Pagination
List endpoints (/conversations, /contacts, /templates) use cursor pagination:
- Pass
limit(1–100, default 25) and an optionalcursor. - The response contains
itemsand, when there are more results, anextCursor. - Pass
nextCursorback as thecursorparameter to fetch the next page. - When
nextCursoris missing, you have reached the end.
Date and time
All timestamps are ISO 8601 strings in UTC (for example2025-01-15T14:30:00.000Z). Where the API accepts dates, both date-only (2025-01-15) and full ISO 8601 are coerced server-side.
Phone numbers
Pass phone numbers in E.164 form (+15551234567) where possible. Flowella will normalise common variations server-side, but E.164 is safest.
Channels
Many endpoints accept awhatsappChannelId. If your org has a single channel and you omit it, Flowella uses your default channel. If you have multiple channels, pass the ID explicitly to avoid sending from the wrong sender.
For the full URL pattern and channel switching, see Multi-channel.

