List a WhatsApp group's join requests
/v1/whatsapp/groups/{group_id}/join-requestsfor 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"{
"data": [
{
"id": "wgj_01krdgeqcxet5s7t44vh8rt9mg",
"bsuid": "US.1566655121691972",
"phone_number": "+16505551234",
"username": "john.doe",
"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_idstringID of the group whose join requests are being listed.
Paramètres de requête
sortstringField to sort by.
Possible values: created_at
orderstringSort direction. Defaults to asc, which sorts alphabetically or from oldest to newest, 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.
Contenu de la réponse
dataThe join requests still waiting for a decision, oldest first.
Afficher les attributs enfants
data.idUnique identifier for the join request. Pass it to the batch-approve and batch-reject operations.
data.bsuidBusiness-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_numberPhone 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.usernameThe 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_atWhen the request was made.
next_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.
Ressources associées
Poursuivez avec la documentation, les guides et les exemples sur ce sujet.