# Get player by ID
`GET https://octopus.livepush.io/players/{player_id}`
Returns a single player with its configuration and sources.

Requires a token with `CanReadPlayers`.
- **Tag:** Players
- **Operation ID:** `getPlayer`
- **Authentication:** Bearer token required
- **Docs:** https://developers.livepush.io/players/get-player-by-id/

### Path parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `player_id` | string | yes | Unique identifier of the player. |


### Example request

```bash
curl -X GET 'https://octopus.livepush.io/players/pl_xxxxxxxxxxxx' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
```


### Responses


#### 200 — The requested player.

- `id` (string)
- `embedId` (string) — Identifier used in the embed URL.
- `user` (string) — Owning account.
- `name` (string)
- `config` (PlayerConfig) — Embed configuration for a standalone player — the player equivalent of the /streams/{streamid}/embed/ endpoints. Note that PUT /players/{playerid}/config replaces this object wholesale rather than merging, so always send the complete configuration. Unknown fields are stripped. The player surface is narrower than the stream embed surface: there is no equivalent of chatconfig, plugins, mode/cdn, mode/external or preferreddestination.
  - `embedTitle` (string)
  - `embedColor` (string)
  - `embedAutoplay` (boolean)
  - `embedAbr` (boolean) — Adaptive bitrate playback.
  - `embedLiveRewind` (boolean)
  - `embedPremier` (boolean)
  - `embedPremierText` (string)
  - `embedOfflineText` (string)
  - `embedOfflineTextAlt` (string)
  - `embedPassword` (string)
  - `embedDomains` (string[]) — Allowed hosting domains. Empty allows every domain.
  - `embedGEOList` (string[]) — Allowed country codes. Empty allows every country.
  - `embedDisableViewersCount` (boolean)
  - `embedDisablePauseControl` (boolean)
  - `embedCoverId` (string)
  - `embedCoverFileName` (string)
  - `embedChannelIconURL` (string)
  - `embedChannelIconSize` (string)
  - `embedChannelIconPosition` (string)
  - `embedChannelIconLayout` (string)
  - `embedChannelIconAnchorURL` (string)
  - `maxConcurrentViewers` (integer) — Hard cap on simultaneous viewers.
- `sources` (PlayerSource[])
  - `type` (string) — Which of the three source fields is in use.
  - `stream` (string) — Stream ID, when type is stream.
  - `video` (string) — Video ID, when type is video.
  - `url` (string) — Playable URL, when type is url.
  - `isDisabled` (boolean)
- `isLocked` (boolean)
- `sessionLockedTill` (string<date-time>)
- `isDisabled` (boolean)
- `unsafeContent` (boolean)
- `createdAt` (string<date-time>)
- `updatedAt` (string<date-time>)


```json
{
  "id": "pl_xxxxxxxxxxxx",
  "embedId": "em_xxxxxxxxxxxx",
  "user": "string",
  "name": "Lobby screen",
  "config": {
    "embedTitle": "Lobby screen",
    "embedColor": "#66d72f",
    "embedAutoplay": true,
    "embedAbr": false,
    "embedLiveRewind": false,
    "embedPremier": false,
    "embedPremierText": "string",
    "embedOfflineText": "string",
    "embedOfflineTextAlt": "string",
    "embedPassword": "string",
    "embedDomains": [
      "string"
    ],
    "embedGEOList": [
      "string"
    ],
    "embedDisableViewersCount": false,
    "embedDisablePauseControl": false,
    "embedCoverId": "string",
    "embedCoverFileName": "string",
    "embedChannelIconURL": "string",
    "embedChannelIconSize": "string",
    "embedChannelIconPosition": "string",
    "embedChannelIconLayout": "string",
    "embedChannelIconAnchorURL": "string",
    "maxConcurrentViewers": 0
  },
  "sources": [
    {
      "type": "stream",
      "stream": "st_xxxxxxxxxxxxx",
      "video": "vd_xxxxxxxxxxxx",
      "url": "string",
      "isDisabled": false
    }
  ],
  "isLocked": false,
  "sessionLockedTill": "2026-01-31T09:00:00.000Z",
  "isDisabled": false,
  "unsafeContent": false,
  "createdAt": "2026-01-31T09:00:00.000Z",
  "updatedAt": "2026-01-31T09:00:00.000Z"
}
```


#### 401 — Response


#### 404 — No such player for this account.

