Zoom Team Chat - Get Channel Members - No permission

API Endpoint(s) and/or Zoom API Event(s)
API Call: https://api.zoom.us/v2/chat/channels/9468352e6836413796b890bf408a6834/members?page_size=300

API Response w/ Owner Permissions: {“code”:200,“message”:“No permission to access the channel members.”}

Description
Ticket created with details: https://support.zoom.us/hc/en-us/requests/17172000

Could you please tell me what are you trying to achieve?

  • We are trying to get a list of participants from Zoom Team Chat channels for archiving & compliance purposes. We have a pubic Zoom app called DataParser for Zoom where we pull data from our clients environment via APIs, format the data and send the data off to the client’s recommended 3rd party storage. When developing our software we test various apis with our internal account (account # 1108189), before any software updates get pushed to our clients environments. This specific api is not working for us.

Error?
API Response w/ Owner Permissions: {“code”:200,“message”:“No permission to access the channel members.”}

How To Reproduce
Steps to reproduce the behavior:

  1. Create a channel with multiple members
  2. Generate an Oauth Token using Owner Credentials. This token needs to have the proper token scopes needed for the Get Channel Members api call.
  3. Call https://api.zoom.us/v2/chat/channels/[channel_id]/members?page_size=300 on that channel or any channel in organization.

Hi @emason1 ,

Thank you for these details–let’s figure this out! Along with Owner/admin permissions and Team Chat-enabled settings turned on via Zoom web portal, can you please confirm that the access token was created with chat_channel:read scope toggled on?

Is this your first time using this endpoint? Or have you previously successfully used this endpoint and are now experiencing unexpected behavior?

Yes, I can confirm that the token was created with chat_channel:read scope is toggled on. Yes, this is our first time using this endpoint, therefore we have not ever been successfully able to use this endpoint.

Is there anything else we can try? We are still getting the following error. As you will see below the example channel is a Private Channel so I’m not sure if that is causing the error or not. We hope this is not the case. For compliance archiving purposes we need to be able to capture all channel participants regardless if the channels are private or not.

{“id”:“4c044e9e50a5eb8b07b633b7b4a4e70db283ab05e3fe70d278f90534591602af”,“type”:“group”,“name”:“Private Channel”,“channel_id”:“5d90cfa01db545bc8a131f399d296dfb”,“last_message_sent_time”:“2023-05-11T15:55:55Z”}

Response content from https://api.zoom.us/v2/chat/channels/5d90cfa01db545bc8a131f399d296dfb/members?page_size=300: |!rn!|{“code”:200,“message”:“No permission to access the channel members.”}

Hi @emason1 , thank you for clarifying that this channel is private. I believe this may be the reason for the behavior you’re experiencing. I am confirming with the respective team.

Hi @emason1 , still waiting to hear back on this, but I followed up.

Hi @emason1 , this has been a little slow moving, and may have have to open a ticket directly with our API service engineering team. Will do so if I do not get clarity on this by EOD today. Thanks for your patience.

Hi @emason1 , one of our chat app’s SMEs asked is this an account-level OAuth app? If yes, one reason this could occur is: The app may be authorized by admin A, but the channel may belong to admin B. And because the channel is private, they are unable to access it with Admin A’s token.

Yes, this is an account-level Oauth app. The token was created by the owner of our account which should have access to any channel’s even if they are not a member. For compliance purposes, we need to have a list of participants for all channels/chats regardless if they are public, private or contain external users. Is there another api that will provide us this information?

Hi @emason1 , can you please try using the account-level API? This should work:

This api requires us to pass the owner’s user id of the channel. That isn’t going to work for us because we don’t know who the owner of the channel is. Especially when the owner of the channel is an external user. In addition to this, we need to be able to capture data sent by internal users regardless if the channel is hosted by an external account or not.

Hi @emason1 ,

Thanks for clarifying that the owner of the channel is an external user. Was this an installed chat app where the external account gave permission for the data you’re seeking?