---
title: "Get phone number"
method: GET
path: "/v1/whatsapp/phone-numbers/{phoneNumberId}"
tags: ["WhatsApp Phone Numbers"]
deprecated: true
---

# Get phone number

`GET /v1/whatsapp/phone-numbers/{phoneNumberId}`

## Request

- Base URL: `https://zernio.com/api`
- URL: `https://zernio.com/api/v1/whatsapp/phone-numbers/{phoneNumberId}`
- Auth: HTTP bearer

> **Deprecated.**

Deprecated alias of `/v1/phone-numbers/{id}`; same contract. New
integrations should use that path.

Retrieve the current status of a purchased phone number. Poll this to
track Meta pre-verification (US sync path) and, for regulated (Tier 3/4)
numbers, the async lifecycle: pending_regulatory → active (or
regulatory_declined). When a regulated number has an Onfido ID step,
`onfidoVerificationUrl` appears here once the order is placed. Forward
it to the end user. (Or subscribe to the whatsapp.number.* webhooks
instead of polling.)

## Path parameters

- `phoneNumberId` string, required

## Response `200`

Phone number retrieved successfully

- object
  - `phoneNumber` object
    - `id` string
    - `phoneNumber` string
    - `status` 'pending_payment' | 'pending_regulatory' | 'regulatory_declined' | 'provisioning' | 'verifying' | 'active' | 'suspended' | 'releasing' | 'released'
    - `country` string
    - `metaPreverifiedId` string
    - `metaVerificationStatus` string
    - `onfidoVerificationUrl` string, nullable: For a regulated number with an Onfido ID step: the link to forward to the end user. Appears once the order is placed; null otherwise.
    - `endUserFirstName` string, nullable
    - `endUserLastName` string, nullable
    - `regulatoryDeclineReason` string, nullable: Reviewer rejection reason when status is regulatory_declined.
    - `provisionedAt` string, date-time
    - `sipTrunkId` string, nullable: SIP trunk the number is attached to; null when not trunked. While attached, enabling Calls or WhatsApp calling, requesting WhatsApp verification, and releasing the number all return 409.

## Other responses

- `401`: Missing or invalid API key. `code` is `missing_credentials` when no Authorization header was sent and `invalid_credentials` when the key is unknown, revoked or expired.
- `403`: The API key is scoped to profiles that do not include this number.
- `404`: Resource not found

## Changes

- **2026-10-09** `03d976303e39`: 1 info
  - added the non-success response with the status `403`
- **2026-10-06** `f8c8f34fb41a`: 1 warning
  - added the new `account` enum value to the `details/budgetScope` response property for the response status `401`
- **2026-10-02** `d556591af3f6`: 7 info
  - added the optional property `code` to the response with the `401` status
  - added the optional property `details` to the response with the `401` status
  - added the optional property `docUrl` to the response with the `401` status
  - added the optional property `param` to the response with the `401` status
  - …3 more
- **2026-08-24** `1307bc21beec`: 1 info
  - added the optional property `phoneNumber/sipTrunkId` to the response with the `200` status

[Operation history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/whatsapp/phone-numbers/:phoneNumberId/get.md)

---

[API](https://skmtc.dev/zernio/apis/zernio-api.md) · [All operations](https://skmtc.dev/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zernio/apis/zernio-api/revisions/4e74db179e73?raw)
