Check connection status
GET /v1/numbers/{id}/status returns the live connection state of one WhatsApp number.
This endpoint reflects the same connection state shown on the Numbers page in the dashboard (as does
GET /v1/numbers/{id}/connect).When to use it
GET /v1/numbersdoes not force a mass refresh of connection state — call this endpoint per number when you need an up-to-date check.- Poll it after showing a QR code / pairing code to detect when the customer completes the connection (or rely on the
number.connectedwebhook instead).
States
Treat
state === "OPEN" as the definitive “ready to send” flag.
Meta remote pairing: PENDING, EXPIRED and expiresAt
POST /v1/numbers/remote-pairing with provider: "META" creates the number right
away, so it shows up as “awaiting connection” while your end user is still inside the
Facebook dialog. Polling its status during that window answers:
expiresAt is the end of the pairing window. After it passes, the same call answers
state: "EXPIRED" — the number will never connect on its own, so stop polling and
generate a new link.
A number in this state is not billed (it is excluded from your plan’s number count
and from your capacity) and is removed automatically 24h after it was created, so
abandoned signups do not pile up in GET /v1/numbers.
Previously both cases answered
404, indistinguishable from an id that does not
exist, which left polling loops with no way to tell “still waiting” from “gone”.How fresh is the answer: stale, checkedAt, lastKnownAt
Every 200 carries stale, plus exactly one of the two timestamps:
stale: true always comes with state: "OPEN". The remembered value is only served when the stored state was already OPEN; for a number that was not OPEN, a provider that does not answer produces a 503 instead (see below).
Meta (official Cloud API) numbers answer { "id": "…", "state": "OPEN", "stale": false } and carry neither timestamp — they are remote-managed, nothing is probed for them, so there is no reading to date.
Errors
The
code on a 503 tells you whether retrying is worth it:
Fixed: this endpoint used to answer
503 “WhatsApp provider not configured” for every number that was not already OPEN whenever the platform’s own number was disconnected. That coupling is gone — a 503 now describes this number’s own provider.