Sign inGet Started

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);
}
Resposta200
{
  "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.

Parâmetros

group_idstring

ID of the group whose join requests are being listed.

Parâmetros de consulta

sortstring

Field to sort by.

Possible values: created_at

orderstring

Sort direction. Defaults to asc, which sorts alphabetically or from oldest to newest, depending on the selected sort field.

Possible values: asc, desc

limitinteger

Maximum number of items to return per page.

starting_afterstring

Cursor from the next_cursor field of a previous list response. Returns items immediately after the cursor position in the current sort order.

ending_beforestring

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.

Payload de resposta

data
array of object
obrigatório

The join requests still waiting for a decision, oldest first.

Mostrar atributos secundários
next_cursor
nullable string
obrigatório

Cursor for the next page. Pass back as starting_after to advance forward. null when no next page exists.

prev_cursor
nullable string
obrigatório

Cursor for the previous page. Pass back as ending_before to step backward. null when no previous page exists.

refresh_cursor
nullable string
obrigatório

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.