---
title: "Get a WhatsApp number's business profile"
method: GET
path: "/v1/whatsapp/numbers/{number_id}/profile"
tags: ["whatsapp-numbers"]
---

# Get a WhatsApp number's business profile

`GET /v1/whatsapp/numbers/{number_id}/profile`

## Request

- Base URL: `https://us1.platform.bird.com`
- URL: `https://us1.platform.bird.com/v1/whatsapp/numbers/{number_id}/profile`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `bird_session`

Returns the business profile WhatsApp shows to people this number messages, read from WhatsApp on each request rather than from a stored copy. Readable for a number your workspace connected itself and for one Bird operates on your behalf alike, since the profile is what everyone the number messages already sees; only the first can be changed. The response includes the display name WhatsApp shows for this number and the state of its review.

## Path parameters

- `number_id` string, required

## Headers

- `X-Workspace-Id` string
- `X-Organization-Id` string

## Response `200`

The number's business profile.

- WhatsAppNumberProfile: The business profile WhatsApp shows to people this number messages. It is read from WhatsApp on each request rather than from a stored copy, so it is always current and a WhatsApp outage makes it briefly unavailable.
  - `display_name` string: The name WhatsApp verifies for this number. Once WhatsApp approves it, it appears at the top of a chat with this number; `display_name_status` is what says whether it has. Set when the number was connected, and changed from the dashboard or the CLI, as [WhatsApp phone numbers](/docs/guides/whatsapp/phone-number-setup) explains. This field still returns the current name until a requested change completes.
  - `display_name_status` string: Where WhatsApp's review of the display name stands. `available_without_review` means the name met WhatsApp's criteria for immediate use without a review step, and `none` means no display name has been submitted yet. WhatsApp adds states over time, so a value outside this list can be returned.
  - `new_display_name` string: The display name whose change has been requested, whether or not WhatsApp is reviewing it. Absent when no change is pending.
  - `new_display_name_status` string: Where WhatsApp's review of the display name stands. `available_without_review` means the name met WhatsApp's criteria for immediate use without a review step, and `none` means no display name has been submitted yet. WhatsApp adds states over time, so a value outside this list can be returned.
  - `username` string: The username WhatsApp users can find this number by, without an `@`. Absent when the number has no username. Once set it cannot be removed through this API.
  - `username_status` string: Where the username stands with WhatsApp. WhatsApp adds states over time, so a value outside this list can be returned.
  - `about` string: The short line shown under the business name in a chat.
  - `address` string: The business address shown on the profile.
  - `description` string: The longer description shown on the profile.
  - `email` string, email: The contact email shown on the profile.
  - `vertical` string: The industry WhatsApp shows on the business profile. WhatsApp adds categories over time, so a value outside this list can be returned.
  - `websites` string[]: Up to two websites shown on the profile.
  - `profile_picture_url` string: A link to the profile picture WhatsApp currently shows. WhatsApp signs this link and it expires within days, so load it when you display it and never store it. It is served with permissive cross-origin headers, so a browser can load it directly.

## Other responses

- `400`: Bad request
- `401`: Authentication required
- `403`: Insufficient permissions
- `404`: Resource not found
- `409`: Resource conflict
- `422`: The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.
- `429`: Rate limit exceeded
- `500`: Internal server error
- `503`: The service is temporarily unavailable. If `Retry-After` is present, wait for that delay before retrying; otherwise, retry with exponential backoff. Reuse the same idempotency key and request when retrying a mutation.

---

[API](https://skmtc.dev/messagebird/apis/bird-api.md) · [All operations](https://skmtc.dev/messagebird/apis/bird-api/llms.txt) · [OpenAPI document](https://skmtc.dev/messagebird/apis/bird-api/revisions/3e2a50466454?raw)
