> ## Documentation Index
> Fetch the complete documentation index at: https://docs.briq.tz/llms.txt
> Use this file to discover all available pages before exploring further.

# WhatsApp senders & templates

> List the sender numbers in your workspace and the templates you can send.

Read-only lookups for the two things a send needs: a **sender** (the WhatsApp number you send from) and a **template** (the pre-approved message). Full reference and live try-it: [Karibu WhatsApp API](/Karibu-WhatsApp/index).

<Note>
  These endpoints return the data shape directly (not the `{ success, data, errors }` send envelope). A missing id returns `404 { "detail": "..." }`.
</Note>

## List senders

Every sender in your workspace. Pass `is_active=true` for usable ones, `is_default=true` for the fallback sender.

<CodeGroup>
  ```bash cURL theme={null}
  curl "https://karibu.briq.tz/v1/whatsapp/senders?is_active=true" \
    -H "X-API-Key: YOUR_API_KEY"
  ```

  ```python Python theme={null}
  import requests
  r = requests.get(
      "https://karibu.briq.tz/v1/whatsapp/senders",
      headers={"X-API-Key": "YOUR_API_KEY"},
      params={"is_active": True},
  )
  print(r.json())
  ```

  ```javascript Node.js theme={null}
  const r = await fetch(
    "https://karibu.briq.tz/v1/whatsapp/senders?is_active=true",
    { headers: { "X-API-Key": "YOUR_API_KEY" } },
  );
  console.log(await r.json());
  ```
</CodeGroup>

Fetch one by id with `GET /v1/whatsapp/senders/{sender_id}`. Use the `id` as `sender_id` when sending.

## List templates

Cursor-paginated. Filter by `status`, `category`, `language`, or `name_or_content`. `status`, `category`, and `language` are repeatable query params (OR semantics). Only `APPROVED` templates can be sent.

```bash theme={null}
curl "https://karibu.briq.tz/v1/whatsapp/templates?status=APPROVED&status=PAUSED&category=UTILITY&language=en&limit=50" \
  -H "X-API-Key: YOUR_API_KEY"
# -> { "items": [ ... ], "cursor_next": "...", "total_count": 120 }
```

Page forward by passing the previous response's `cursor_next` as `?cursor=`. Fetch one by id with `GET /v1/whatsapp/templates/{template_id}`.

<Warning>
  Send a template by its **name**, not its id (`{ "type": "template", "template_name": "order_update" }`). A template whose `status` is not `APPROVED` returns `422 TEMPLATE_NOT_APPROVED` at send time.
</Warning>
