# Who is in a live stream

`GET https://rest.wordplus.cloud/wordplus/realtime/streams/{name}/people`

The people signed in who watch a live stream or are on it, hosts first, up to 200, with when a timeout ends for
those who have one, and how many watch in all, visitors with them.

In the packages: `realtime.stream( name ).people()`.

## Parameters

| Name | In | |
|---|---|---|
| `name` (required) | path | The stream name, percent-encoded: `show:mugs` is `show%3Amugs`. |

## Answer

Who is in it.

```json
{
  "ok": true,
  "watching": 120,
  "people": [
    {
      "user": "1",
      "name": "Ann",
      "avatar": null,
      "role": "host"
    },
    {
      "user": "77",
      "name": "Ben",
      "avatar": null,
      "role": "viewer",
      "timeout_until": 1791639000000
    }
  ]
}
```

## Refusals

- **400**: `bad_request`, `bad_room`: the request is not one the API takes. `reserved`: an event name kept for the room itself.
- **401**: `missing_signature`, `stale_signature` (a clock off by more than 5 minutes), `unknown_site`, `bad_signature` (a wrong secret, or a body or path other than the one signed).
- **403**: `not_included`: your plan does not include it.

## Examples

`wordplus()` (in Go `app.Request()`) signs and sends the request: https://docs.wordplus.cloud/api/signing/ has it in each language.

**curl**

```bash
wordplus GET '/wordplus/realtime/streams/show%3Amugs/people'
```

**Node**

```js
const { people } = await wordplus('GET', `/wordplus/realtime/streams/${encodeURIComponent('show:mugs')}/people`);
```

**Python**

```python
people = wordplus("GET", f"/wordplus/realtime/streams/{quote('show:mugs', safe='')}/people")["people"]
```

**PHP**

```php
$people = wordplus('GET', '/wordplus/realtime/streams/'.rawurlencode('show:mugs').'/people')['people'];
```

**Go**

```go
answer, err := app.Request("GET", "/wordplus/realtime/streams/"+url.PathEscape("show:mugs")+"/people", nil)
```

