List a WhatsApp group's join requests
GET
/v1/whatsapp/groups/{group_id}/join-requests
for await (const request of bird.whatsapp.groups.joinRequests.list(
"wag_01krdgeqcxet5s7t44vh8rt9mg",
)) {
console.log(request.id, request.bsuid);
}for request in client.whatsapp.groups.join_requests.list("wag_01krdgeqcxet5s7t44vh8rt9mg"):
print(request.id, request.bsuid)for request, err := range client.Whatsapp.Groups.JoinRequests.List(context.Background(), "wag_01krdgeqcxet5s7t44vh8rt9mg", bird.WhatsappGroupsJoinRequestsListParams{}) {
if err != nil {
log.Fatal(err)
}
fmt.Println(request.Id, request.Bsuid)
}foreach ($bird->whatsapp->groups->joinRequests->list('wag_01krdgeqcxet5s7t44vh8rt9mg') as $request) {
echo $request->getId(), ' ', $request->getBsuid(), PHP_EOL;
}bird whatsapp groups join-requests list <group-id>curl -X GET "https://us1.platform.bird.com/v1/whatsapp/groups/{group_id}/join-requests" \
-H "Authorization: Bearer $TOKEN" \
--url-query "sort=created_at" \
--url-query "order=asc" \
--url-query "limit=25"Réponse200
{
"data": [
{
"id": "wgj_01krdgeqcxet5s7t44vh8rt9mg",
"bsuid": "BR.1566655121691972",
"phone_number": "+16505551234",
"username": "jim.almeida",
"created_at": "2026-08-24T10:07:57Z"
}
],
"next_cursor": "eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9",
"prev_cursor": null,
"refresh_cursor": "eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9"
}
Returns the join requests still waiting for a decision, oldest first. Each
carries the person who asked and when they asked.
Only a group created with join_approval_mode approval_required collects
join requests; on any other group the list is empty. A request leaves the
list once you decide it, and also when the person cancels it themselves.
Decide requests with
POST /v1/whatsapp/groups/{group_id}/join-requests/batch-approve
or
POST /v1/whatsapp/groups/{group_id}/join-requests/batch-reject.
Paramètres
group_id
string
ID of the group whose join requests are being listed.
Paramètres de requête
sort
string
Field to sort by.
Possible values: created_at
order
string
Sort direction. Defaults to asc, which sorts alphabetically or from oldest to newest, depending on the selected sort field.
Possible values: asc, desc
limit
integer
Maximum number of items to return per page.
starting_after
string
Cursor from the next_cursor field of a previous list response. Returns items immediately after the cursor position in the current sort order.
ending_before
string
Cursor 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.
Contenu de la réponse
data
array of object
obligatoire
The join requests still waiting for a decision, oldest first.
Afficher les attributs enfants
data.id
string
obligatoire
Unique identifier for the join request. Pass it to the batch-approve and batch-reject operations.
data.bsuid
string
obligatoire
Business-scoped user ID, Meta's identifier for this person against your business. The one identifier every request has, and the one that carries over to participants if you approve it.
data.phone_number
string
Phone number in E.164 format. Absent when WhatsApp withholds it, which it does for anyone who has not shared their number with your business.
data.username
string
The WhatsApp username this person chose. Absent when they have none, and theirs to change, so it names them in a list rather than keying anything.
data.created_at
string
obligatoire
When the request was made.
next_cursor
nullable string
obligatoire
Cursor for the next page. Pass back as starting_after to advance forward. null when no next page exists.
prev_cursor
nullable string
obligatoire
Cursor for the previous page. Pass back as ending_before to step backward. null when no previous page exists.
refresh_cursor
nullable string
obligatoire
Refresh 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.
Ressources associées
Poursuivez avec la documentation, les guides et les exemples sur ce sujet. Les ressources sont en anglais.
Comprendre le conceptShould I use a Bird SDK or call the API directly?Suivre le parcours d'apprentissageBuild your first integrationGuide d'implémentationSend your first email
Obtenir un guide d'implémentation