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

# GET /v1/whatsapp/numbers

> Direct view of the company's active phone_number_ids. Handy for integrations that just need to know which number to send from.

Returns the WhatsApp Business numbers connected to the company in a lightweight shape. It's a projection of [GET /channels?type=whatsapp](/dev/endpoints/channels-list) optimized for flows where you only need Meta identifiers.

```http theme={null}
GET /v1/whatsapp/numbers
```

**Required scope:** `channels:read`

## Request

```bash theme={null}
curl https://api.keebai.com/v1/whatsapp/numbers \
  -H "Authorization: Bearer kbai_pk_xxx"
```

## Response 200

```json theme={null}
{
  "data": [
    {
      "id": "1234567890",
      "phone_number": "+56987654321",
      "waba_id": "9876543210",
      "channel_id": "ch_01HXYZ...",
      "status": "active"
    }
  ]
}
```

| Field          | Type   | Description                                                                                                          |
| -------------- | ------ | -------------------------------------------------------------------------------------------------------------------- |
| `id`           | string | Meta's `phone_number_id`. Use it in `POST /v1/messages` (`from_phone_number_id`) when you have more than one number. |
| `phone_number` | string | Number in E.164 format.                                                                                              |
| `waba_id`      | string | Meta's WhatsApp Business Account id.                                                                                 |
| `channel_id`   | string | Keebai channel id. Same one that appears in `/v1/channels`.                                                          |
| `status`       | enum   | `active` \| `paused` \| `disconnected`.                                                                              |

## Typical use cases

<CardGroup cols={2}>
  <Card title="Sender number picker">
    Your integration has several numbers (e.g. Chile, Mexico, Peru). List `whatsapp/numbers` and show a dropdown to the user.
  </Card>

  <Card title="Validate before sending">
    Before a bulk send, check that the configured `phone_number_id` is still `active`.
  </Card>

  <Card title="Map outgoing webhooks">
    When you receive a `whatsapp.message.received` with `phone_number_id: X`, you can map it back to a `channel_id` using this list cached locally.
  </Card>

  <Card title="Discoverability">
    Your provisioning CLI doesn't know which numbers exist — list them at startup.
  </Card>
</CardGroup>


## OpenAPI

````yaml GET /v1/whatsapp/numbers
openapi: 3.0.0
info:
  title: Keebai Public API
  description: Superficie pública REST autenticada con Personal Access Tokens (PAT).
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.keebai.com
    description: Production
security: []
tags: []
paths:
  /v1/whatsapp/numbers:
    get:
      tags:
        - whatsapp
      summary: Lista los números de WhatsApp Business conectados a la company.
      operationId: PublicWhatsappNumbersController_list
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
      security:
        - PAT: []
components:
  securitySchemes:
    PAT:
      scheme: bearer
      bearerFormat: kbai_pk_<hex>
      type: http
      description: >-
        Personal Access Token con prefijo `kbai_pk_`. Generar desde el portal
        con permiso `developer.manage_tokens`.

````