List verified numbers
/v1/voice/verified-numbersfor await (const verifiedNumber of bird.voice.verifiedNumbers.list()) {
console.log(verifiedNumber.id, verifiedNumber.phone_number, verifiedNumber.status);
}for verified_number in client.voice.verified_numbers.list():
print(verified_number.id, verified_number.phone_number, verified_number.status)for verifiedNumber, err := range client.Voice.VerifiedNumbers.List(context.Background(), bird.VoiceVerifiedNumbersListParams{}) {
if err != nil {
log.Fatal(err)
}
fmt.Println(verifiedNumber.Id, verifiedNumber.PhoneNumber, verifiedNumber.Status)
}foreach ($bird->voice->verifiedNumbers->list() as $verifiedNumber) {
echo $verifiedNumber->getId(), ' ', $verifiedNumber->getPhoneNumber(), "\n";
}bird voice verified-numbers listcurl -X GET "https://us1.platform.bird.com/v1/voice/verified-numbers" \
-H "Authorization: Bearer $TOKEN" \
--url-query "sort=created_at" \
--url-query "order=desc" \
--url-query "limit=25"{
"data": [
{
"id": "vvn_01krdgeqcxet5s7t44vh8rt9mg",
"workspace_id": "ws_01krdgeqcxet5s7t44vh8rt9mg",
"phone_number": "+14155551234",
"name": "Support line",
"status": "pending",
"created_at": "2026-05-20T09:14:52Z",
"updated_at": "2026-05-25T16:42:01Z"
}
],
"next_cursor": "eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9",
"prev_cursor": null,
"refresh_cursor": "eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9"
}
Returns a paginated list of the workspace's verified numbers and their verification status.
Query Parameters
sortstringField to sort by.
Possible values: created_at
orderstringSort direction. Defaults to desc, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.
Possible values: asc, desc
limitintegerMaximum number of items to return per page.
starting_afterstringCursor from the next_cursor field of a previous list response. Returns items immediately after the cursor position in the current sort order.
ending_beforestringCursor from the prev_cursor or refresh_cursor field of a previous list response. Returns items immediately before the cursor position in the current sort order. prev_cursor returns the preceding page. refresh_cursor anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
Response Payload
dataShow child attributes
data.idUnique identifier for this verified number.
data.workspace_iddata.phone_numberThe phone number in E.164 format registered as an outbound caller ID.
data.nameYour label for this verified number, to tell several registered numbers apart. null when the verified number has no label. It is yours to choose and appears nowhere on a call, so changing it never affects what the person you are calling sees. Set it with the verified number update operation.
data.statusVerification state of the verified number.
pending: the number is registered but ownership has not yet been proven.verified: the workspace proved ownership of the number. Check the resource's activation or direction fields for outbound availability.failed: terminal because the verification challenge expired or the attempt limit was exhausted. Delete the verified number and register it again to retry.
Open enum: additional states may be added over time, so treat an unrecognized value as a future state rather than an error.
Possible values (may grow over time): pending, verified, failed
data.outbound_enabledWhether outbound caller ID activation has completed. A verified number can remain inactive until activation requirements are met. Outbound calls remain subject to routing and number ownership requirements.
data.verified_atWhen the verified number was verified. null when its status is pending or failed.
data.created_atdata.updated_atnext_cursorCursor for the next page. Pass back as starting_after to advance forward. null when no next page exists.
prev_cursorCursor for the previous page. Pass back as ending_before to step backward. null when no previous page exists.
refresh_cursorRefresh anchor, the first row of this response. Pass back as ending_before to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-null whenever data is non-empty; null only on an empty page. Distinct from prev_cursor.
Related resources
Continue with the documentation, guides and examples for this topic.