---
title: "Numbers · REST reference"
description: "The Numbers routes. Every body is JSON, and an error always comes back as an object with a code and a message."
lang: "en-US"
canonical: "https://zaiped.com/en/developers/docs/reference/numbers"
alternate: "https://zaiped.com/developers/docs/reference/numbers"
---

# Numbers · REST reference

## GET /v1/numbers

List connected numbers

All WhatsApp numbers connected to the account, oldest first, with the status Meta reports for each one (quality rating, messaging limit, throughput, health). Numbers are connected in the developer console through Meta's Embedded Signup; there is no API to connect one.

**Response (object[])**

- `id` · string (Required): Zaiped id (whatsappConnections)
- `status` · "active" | "incomplete" | "needs_reauth" (Required)
- `phoneNumberId` · string (Required)
- `wabaId` · string (Required)
- `displayPhoneNumber` · string
- `verifiedName` · string
- `qualityRating` · string
- `messagingLimit` · string
- `throughputLevel` · string
- `healthStatus` · string
- `nameStatus` · string
- `isOfficialAccount` · boolean
- `isOnBizApp` · boolean
- `lastNotice` · object
- `lastSyncedAt` · number

```
curl -X GET "https://zaiped.com/v1/numbers" \
  -H "Authorization: Bearer zp_..."
```

## GET /v1/numbers/{numberId}

Get a connected number

**Path parameters**

- `numberId` · string (Required): The number id, as returned by list_numbers.

**Response (object)**

- `id` · string (Required): Zaiped id (whatsappConnections)
- `status` · "active" | "incomplete" | "needs_reauth" (Required)
- `phoneNumberId` · string (Required)
- `wabaId` · string (Required)
- `displayPhoneNumber` · string
- `verifiedName` · string
- `qualityRating` · string
- `messagingLimit` · string
- `throughputLevel` · string
- `healthStatus` · string
- `nameStatus` · string
- `isOfficialAccount` · boolean
- `isOnBizApp` · boolean
- `lastNotice` · object
- `lastSyncedAt` · number

```
curl -X GET "https://zaiped.com/v1/numbers/YOUR_NUMBER_ID" \
  -H "Authorization: Bearer zp_..."
```

## GET /v1/numbers/{numberId}/profile

Get the business profile

The WhatsApp Business profile of the number, read live from Meta.

**Path parameters**

- `numberId` · string (Required): The number id, as returned by list_numbers.

**Response (object)**

- `about` · string (Required)
- `address` · string (Required)
- `description` · string (Required)
- `email` · string (Required)
- `websites` · string[] (Required)
- `vertical` · string (Required)
- `pictureUrl` · string

```
curl -X GET "https://zaiped.com/v1/numbers/YOUR_NUMBER_ID/profile" \
  -H "Authorization: Bearer zp_..."
```

## PUT /v1/numbers/{numberId}/profile

Update the business profile

Replaces the profile fields. Send every field: an empty string clears it (except `about`, which Meta keeps when empty). The picture is changed in the console.

**Path parameters**

- `numberId` · string (Required): The number id, as returned by list_numbers.

**Request body**

- `about` · string (Required)
- `address` · string (Required)
- `description` · string (Required)
- `email` · string (Required)
- `websites` · string[] (Required)
- `vertical` · string (Required)

**Response (object)**

- `ok` · true (Required)

```
curl -X PUT "https://zaiped.com/v1/numbers/YOUR_NUMBER_ID/profile" \
  -H "Authorization: Bearer zp_..." \
  -H "Content-Type: application/json" \
  -d '{
  "about": "…",
  "address": "…",
  "description": "…",
  "email": "…",
  "websites": [],
  "vertical": "…"
}'
```

## GET /v1/numbers/{numberId}/automation

Get conversational components

Welcome message, ice-breaker prompts and slash commands (Meta's conversational automation).

**Path parameters**

- `numberId` · string (Required): The number id, as returned by list_numbers.

**Response (object)**

- `welcomeEnabled` · boolean (Required)
- `prompts` · string[] (Required)
- `commands` · object[] (Required)

```
curl -X GET "https://zaiped.com/v1/numbers/YOUR_NUMBER_ID/automation" \
  -H "Authorization: Bearer zp_..."
```

## PUT /v1/numbers/{numberId}/automation

Update conversational components

Replaces the whole configuration: Meta substitutes, it does not merge.

**Path parameters**

- `numberId` · string (Required): The number id, as returned by list_numbers.

**Request body**

- `welcomeEnabled` · boolean (Required)
- `prompts` · string[] (Required)
- `commands` · object[] (Required)

**Response (object)**

- `ok` · true (Required)

```
curl -X PUT "https://zaiped.com/v1/numbers/YOUR_NUMBER_ID/automation" \
  -H "Authorization: Bearer zp_..." \
  -H "Content-Type: application/json" \
  -d '{
  "welcomeEnabled": true,
  "prompts": [],
  "commands": []
}'
```

## GET /v1/numbers/{numberId}/qr-codes

List QR codes

**Path parameters**

- `numberId` · string (Required): The number id, as returned by list_numbers.

**Response (object[])**

- `code` · string (Required)
- `message` · string (Required)
- `deepLink` · string (Required)
- `imageUrl` · string

```
curl -X GET "https://zaiped.com/v1/numbers/YOUR_NUMBER_ID/qr-codes" \
  -H "Authorization: Bearer zp_..."
```

## POST /v1/numbers/{numberId}/qr-codes

Create a QR code with a prefilled message

**Path parameters**

- `numberId` · string (Required): The number id, as returned by list_numbers.

**Request body**

- `message` · string (Required)

**Response (object)**

- `code` · string (Required)
- `message` · string (Required)
- `deepLink` · string (Required)
- `imageUrl` · string

```
curl -X POST "https://zaiped.com/v1/numbers/YOUR_NUMBER_ID/qr-codes" \
  -H "Authorization: Bearer zp_..." \
  -H "Content-Type: application/json" \
  -d '{
  "message": "…"
}'
```

## DELETE /v1/numbers/{numberId}/qr-codes/{code}

Delete a QR code

**Path parameters**

- `numberId` · string (Required): The number id, as returned by list_numbers.
- `code` · string (Required): The QR code, as returned by list_qr_codes.

**Response (object)**

- `ok` · true (Required)

```
curl -X DELETE "https://zaiped.com/v1/numbers/YOUR_NUMBER_ID/qr-codes/YOUR_CODE" \
  -H "Authorization: Bearer zp_..."
```

## GET /v1/numbers/{numberId}/calling

Get voice calling settings

**Path parameters**

- `numberId` · string (Required): The number id, as returned by list_numbers.

**Response (object)**

- `enabled` · boolean (Required)
- `iconVisible` · boolean (Required)

```
curl -X GET "https://zaiped.com/v1/numbers/YOUR_NUMBER_ID/calling" \
  -H "Authorization: Bearer zp_..."
```

## PUT /v1/numbers/{numberId}/calling

Enable or disable voice calling

Turns the WhatsApp Calling API on or off for the number. Calls themselves are placed from a browser (WebRTC) and have no REST route.

**Path parameters**

- `numberId` · string (Required): The number id, as returned by list_numbers.

**Request body**

- `enabled` · boolean (Required)

**Response (object)**

- `ok` · true (Required)

```
curl -X PUT "https://zaiped.com/v1/numbers/YOUR_NUMBER_ID/calling" \
  -H "Authorization: Bearer zp_..." \
  -H "Content-Type: application/json" \
  -d '{
  "enabled": true
}'
```