# 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](https://rest-api.symphony.com/main/groups-distribution-lists) for more information.
