# Stream Members

## GET /v1/admin/stream/{id}/membership/list

> List the current members of an existing stream.  The stream can be of type IM, MIM, or ROOM

```json
{"openapi":"3.1.1","info":{"title":"Pod API","version":"20.17.1"},"servers":[{"url":"http://yourpodURL.symphony.com/pod"}],"paths":{"/v1/admin/stream/{id}/membership/list":{"get":{"summary":"List the current members of an existing stream.  The stream can be of type IM, MIM, or ROOM","parameters":[{"schema":{"type":"string"},"name":"id","description":"stream Id","in":"path","required":true},{"schema":{"type":"string"},"name":"sessionToken","description":"Session authentication token.","in":"header","required":true},{"schema":{"type":"integer"},"name":"skip","description":"Number of items to skip. Default is 0.","in":"query","required":false},{"schema":{"type":"integer"},"name":"limit","description":"Maximum number of items to return. Default is 100 and not to exceed 1000.","in":"query","required":false}],"tags":["Streams"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V2MembershipList"}}}},"400":{"description":"Client error, see response body for further details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized: Invalid session token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden: Caller lacks necessary entitlement.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server error, see response body for further details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"V2MembershipList":{"description":"List of members in the stream.","type":"object","properties":{"count":{"type":"integer","description":"total members count"},"skip":{"type":"integer","description":"number of items to skip from the request"},"limit":{"type":"integer","description":"maximum number of items to return"},"members":{"$ref":"#/components/schemas/V2MemberInfoList"}}},"V2MemberInfoList":{"type":"array","items":{"$ref":"#/components/schemas/V2MemberInfo"}},"V2MemberInfo":{"description":"Detailed membership record.","type":"object","properties":{"user":{"$ref":"#/components/schemas/V2MemberUserDetail"},"isOwner":{"type":"boolean","description":"true if this is an owner of the room"},"isCreator":{"type":"boolean","description":"true if this is the creator of the room"},"joinDate":{"description":"unix timestamp for join date","type":"integer","format":"int64"},"addedThroughGroups":{"description":"When the user has been added to the stream through a group (aka SDL), this array contains the group ID which the user belongs to. Since SBE 20.14.","type":"array","items":{"type":"integer","format":"int64"}}}},"V2MemberUserDetail":{"description":"User detail information for stream membership","type":"object","properties":{"userId":{"type":"integer","format":"int64"},"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"displayName":{"type":"string","description":"Display name for the user"},"company":{"type":"string","description":"Company name"},"companyId":{"type":"integer","description":"Company ID"},"isExternal":{"type":"boolean","description":"true indicate that this user belong to another company"}}},"Error":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"}}}}}}
```

Note: visit [Overview](https://docs.developers.symphony.com/building-bots-on-symphony/datafeed/overview-of-streams) for an overview of streams.

> #### 🚧 Required Permissions
>
> To get the stream membership of any stream in your enterprise, you should call this endpoint with a Service User account with the User Provisioning role. The Service User does not need to be a member of the stream.
>
> See [Bot Permissions](https://docs.developers.symphony.com/building-bots-on-symphony/configuration/bot-permissions) for a list of roles and associated privileges.

> #### 📘 External users
>
> If you call this endpoint with a user that has the User Provisioning role, you will get the email address for both internal and external users.

> #### 📘 Creation and Ownership
>
> The `isCreator` field is relevant to IMs and chatrooms. For an IM, this is the person who initiated the first chat with the other user(s).
>
> The `isOwner` field is relevant only to chatrooms. It denotes whether the user is an owner of the chatroom. While a room can only have one creator, it can have multiple owners.

> #### 📘 Join Date
>
> The `joinDate` field is most relevant for chatrooms. It represents the time the user was added to the chatroom. If a user was added, removed, and then added back to the room, the `joinDate` reflects the most recent add date.
>
> In the case of IMs and MIMs, the `joinDate` reflects the initiation date of the conversation. Every member will have the same `joinDate`.

> #### 📘 Note - Groups
>
> Since 20.14, please note that the object `addedThroughGroups` has been added only for members added to the room via Groups.
>
> See [Groups](/main/groups-distribution-lists.md) for more information.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://rest-api.symphony.com/main/streams-conversations/all-streams-endpoints/stream-members.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
