# API

{% hint style="danger" %}
Since PlayoutBee is still in Beta, this API is still subject to change, but the main functions should be stable
{% endhint %}

### The PlayoutBee API is split into these categories:&#x20;

[#transport-functions](#transport-functions "mention")

[#asset-functions](#asset-functions "mention")

[#info-functions](#info-functions "mention")

[#raspberrypi-specific-api](#raspberrypi-specific-api "mention")

[#windows-and-macos-api](#windows-and-macos-api "mention")

### Transport Functions

## Play

<mark style="color:green;">`POST`</mark> `http://playoutbee:3000/api/play`

This endpoint will send the Play Command.

{% tabs %}
{% tab title="200 " %}

```
 e
```

{% endtab %}
{% endtabs %}

## Pause

<mark style="color:green;">`POST`</mark> `http://playoutbee:3000/api/pause`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Stop

<mark style="color:green;">`POST`</mark> `http://playoutbee:3000/api/stop`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## goes to the next Clip

<mark style="color:green;">`POST`</mark> `http://playoutbee:3000/api/next`

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## goes to the previous Asset

<mark style="color:green;">`POST`</mark> `http://playoutbee:3000/api/prev`

## Select Clip

<mark style="color:green;">`POST`</mark> `http://playoutbee:3000/api/select/{Index}`

Select's the Current Clip by Index

#### Path Parameters

| Name  | Type    | Description                          |
| ----- | ------- | ------------------------------------ |
| Index | integer | 0 Based index of the Asset to select |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Goto specifc timestamp

<mark style="color:green;">`POST`</mark> `http://playoutbee:3000/api/goto/{ms}`

#### Path Parameters

| Name                                 | Type   | Description                                                               |
| ------------------------------------ | ------ | ------------------------------------------------------------------------- |
| ms<mark style="color:red;">\*</mark> | String | Timestamp to go to in ms or leading with a \[+/-] for incremental changes |

{% tabs %}
{% tab title="200: OK " %}

{% endtab %}
{% endtabs %}

## Goto last X Seconds

<mark style="color:green;">`POST`</mark> `http://playoutbee:3000/api/last/{ms}`

#### Path Parameters

| Name                                 | Type  | Description                              |
| ------------------------------------ | ----- | ---------------------------------------- |
| ms<mark style="color:red;">\*</mark> | float | seconds to go before the end of an asset |

{% tabs %}
{% tab title="200: OK " %}

{% endtab %}
{% endtabs %}

### Asset Functions

All Asset commands also accept "next", "prev" or "current" as Index&#x20;

## Upload Asset

<mark style="color:green;">`POST`</mark> `http://playoutbee:3000/upload`

uploads an Asset and adds it to the playlist

#### Request Body

| Name  | Type   | Description                               |
| ----- | ------ | ----------------------------------------- |
| files | object | an Array of files that should be uploaded |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Selects the Asset

<mark style="color:green;">`POST`</mark> `http://playoutbee:3000/api/asset/{Index}/select`

#### Path Parameters

| Name                                    | Type   | Description                                     |
| --------------------------------------- | ------ | ----------------------------------------------- |
| Index<mark style="color:red;">\*</mark> | String | Index of the Asset or "next", "prev", "current" |

{% tabs %}
{% tab title="200: OK " %}

{% endtab %}
{% endtabs %}

## Enables the Asset and puts it into the rotation

<mark style="color:green;">`POST`</mark> `http://playoutbee:3000/api/asset/{Index}/enable`

#### Path Parameters

| Name                                    | Type   | Description                                     |
| --------------------------------------- | ------ | ----------------------------------------------- |
| Index<mark style="color:red;">\*</mark> | String | Index of the Asset or "next", "prev", "current" |

{% tabs %}
{% tab title="200: OK " %}

{% endtab %}
{% endtabs %}

## Disable the Asset and removes it from the rotation

<mark style="color:green;">`POST`</mark> `http://playoutbee:3000/api/asset/{Index}/disable`

#### Path Parameters

| Name                                    | Type   | Description                                     |
| --------------------------------------- | ------ | ----------------------------------------------- |
| Index<mark style="color:red;">\*</mark> | String | Index of the Asset or "next", "prev", "current" |

{% tabs %}
{% tab title="200: OK " %}

{% endtab %}
{% endtabs %}

## Set the Volume of the Asset

<mark style="color:green;">`POST`</mark> `http://playoutbee:3000/api/asset/{Index}/volume/{volume}`

#### Path Parameters

| Name                                    | Type   | Description                                                                                                                      |
| --------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------- |
| Index<mark style="color:red;">\*</mark> | String | Index of the Asset or "next", "prev", "current"                                                                                  |
| volume                                  | String | Volume of the Asset either a float between 0 and 1 or a float between 0 and 1 with a \[+/-] sign infront for incremental changes |

{% tabs %}
{% tab title="200: OK " %}

{% endtab %}
{% endtabs %}

## Set the Action of the Asset

<mark style="color:green;">`POST`</mark> `http://playoutbee:3000/api/asset/{Index}/action/{action}`

set's the Action for the Asset&#x20;

#### Path Parameters

| Name                                    | Type   | Description                                                                   |
| --------------------------------------- | ------ | ----------------------------------------------------------------------------- |
| Index<mark style="color:red;">\*</mark> | String | Index of the Asset or "next", "prev", "current"                               |
| action                                  | String | <p>0 = Pause<br>1 = PlayNext </p><p>2 = Next</p><p>3 = Loop <br>4 = Reset</p> |

{% tabs %}
{% tab title="200: OK " %}

{% endtab %}
{% endtabs %}

## Set the Rotation of the Asset

<mark style="color:green;">`POST`</mark> `http://playoutbee:3000/api/asset/{Index}/rotate/{rotation}`

#### Path Parameters

| Name                                    | Type   | Description                                        |
| --------------------------------------- | ------ | -------------------------------------------------- |
| Index<mark style="color:red;">\*</mark> | String | Index of the Asset or "next", "prev", "current"    |
| rotation                                | String | <p>One of these : <br>0 <br>90 <br>180 <br>270</p> |

{% tabs %}
{% tab title="200: OK " %}

{% endtab %}
{% endtabs %}

## Sets the InPoint to the current timestamp

<mark style="color:green;">`POST`</mark> `http://playoutbee:3000/api/asset/current/inPoint`

#### Path Parameters

| Name                                    | Type   | Description                                     |
| --------------------------------------- | ------ | ----------------------------------------------- |
| Index<mark style="color:red;">\*</mark> | String | Index of the Asset or "next", "prev", "current" |

{% tabs %}
{% tab title="200: OK " %}

{% endtab %}
{% endtabs %}

## Sets the OutPoint to the current timestamp

<mark style="color:green;">`POST`</mark> `http://playoutbee:3000/api/asset/current/outPoint`

#### Path Parameters

| Name                                    | Type   | Description                                     |
| --------------------------------------- | ------ | ----------------------------------------------- |
| Index<mark style="color:red;">\*</mark> | String | Index of the Asset or "next", "prev", "current" |

{% tabs %}
{% tab title="200: OK " %}

{% endtab %}
{% endtabs %}

## Resets the Inpoint of the current Asset&#x20;

<mark style="color:green;">`POST`</mark> `http://playoutbee:3000/api/asset/current/resetinPoint`

#### Path Parameters

| Name                                    | Type   | Description                                     |
| --------------------------------------- | ------ | ----------------------------------------------- |
| Index<mark style="color:red;">\*</mark> | String | Index of the Asset or "next", "prev", "current" |

{% tabs %}
{% tab title="200: OK " %}

{% endtab %}
{% endtabs %}

## Resets the Outpoint of the current Asset&#x20;

<mark style="color:green;">`POST`</mark> `http://playoutbee:3000/api/asset/current/resetOutPoint`

#### Path Parameters

| Name                                    | Type   | Description                                     |
| --------------------------------------- | ------ | ----------------------------------------------- |
| Index<mark style="color:red;">\*</mark> | String | Index of the Asset or "next", "prev", "current" |

{% tabs %}
{% tab title="200: OK " %}

{% endtab %}
{% endtabs %}

### Info Functions

## get all of the Assets&#x20;

<mark style="color:blue;">`GET`</mark> `http://playoutbee:3000/api/assets`

{% tabs %}
{% tab title="200: OK as example : "1.10.0"" %}

{% endtab %}
{% endtabs %}

## get the current Player State

<mark style="color:blue;">`GET`</mark> `http://playoutbee:3000/api/player`

{% tabs %}
{% tab title="200: OK as example : "1.10.0"" %}

{% endtab %}
{% endtabs %}

## get the current Player State

<mark style="color:blue;">`GET`</mark> `http://playoutbee:3000/api/settings`

{% tabs %}
{% tab title="200: OK as example : "1.10.0"" %}

{% endtab %}
{% endtabs %}

## the current Version of Playoutbee

<mark style="color:blue;">`GET`</mark> `http://playoutbee:3000/api/version`

{% tabs %}
{% tab title="200: OK as example : "1.10.0"" %}

{% endtab %}
{% endtabs %}

## responds with Pong to the response

<mark style="color:blue;">`GET`</mark> `http://playoutbee:3000/api/ping`

{% tabs %}
{% tab title="200: OK "pong"" %}

{% endtab %}
{% endtabs %}

## the currentTime of the Asset

<mark style="color:blue;">`GET`</mark> `http://playoutbee:3000/api/currentTime`

{% tabs %}
{% tab title="200: OK float  as example "4.24"" %}

{% endtab %}
{% endtabs %}

## RaspberryPI Specific API

## opens the Chrome Browser for PlayoutBee to Output on the Pi

<mark style="color:blue;">`GET`</mark> `http://playoutbee:3000/api/openOutput`

{% tabs %}
{% tab title="200: OK float  as example "4.24"" %}

{% endtab %}
{% endtabs %}

## Shutsdown the RaspberryPi

<mark style="color:blue;">`GET`</mark> `http://playoutbee:3000/api/shutdown`

{% tabs %}
{% tab title="200: OK float  as example "4.24"" %}

{% endtab %}
{% endtabs %}

## Windows & MacOS API

## Move Output to Screen

<mark style="color:blue;">`GET`</mark> `http://playoutbee:3000/api/moveOutput/{id}`

#### Query Parameters

| Name                               | Type   | Description                                      |
| ---------------------------------- | ------ | ------------------------------------------------ |
| <mark style="color:red;">\*</mark> | String | Index of the Screen the Output should be sent to |

{% tabs %}
{% tab title="200: OK float  as example "4.24"" %}

{% endtab %}
{% endtabs %}

## Fullscreen Output

<mark style="color:blue;">`GET`</mark> `http://playoutbee:3000/api/fullscreenOutput`

{% tabs %}
{% tab title="200: OK float  as example "4.24"" %}

{% endtab %}
{% endtabs %}

## Toggle the Frame around the Output

<mark style="color:blue;">`GET`</mark> `http://playoutbee:3000/api/toggleFrame`

{% tabs %}
{% tab title="200: OK float  as example "4.24"" %}

{% endtab %}
{% endtabs %}

## Enable Frame around the Output

<mark style="color:blue;">`GET`</mark> `http://playoutbee:3000/api/enableFrame`

{% tabs %}
{% tab title="200: OK float  as example "4.24"" %}

{% endtab %}
{% endtabs %}

## Disable the Frame around the Output

<mark style="color:blue;">`GET`</mark> `http://playoutbee:3000/api/disableFrame`

{% tabs %}
{% tab title="200: OK float  as example "4.24"" %}

{% endtab %}
{% endtabs %}

## Toggle the Output always beeing on Top

<mark style="color:blue;">`GET`</mark> `http://playoutbee:3000/api/alwaysOnTop`

{% tabs %}
{% tab title="200: OK float  as example "4.24"" %}

{% endtab %}
{% endtabs %}

## Toggle the Prevent Sleep Setting

<mark style="color:blue;">`GET`</mark> `http://playoutbee:3000/api/preventSleep`

{% tabs %}
{% tab title="200: OK float  as example "4.24"" %}

{% endtab %}
{% endtabs %}

## Opens the OutputWindow if it isn't Open already

<mark style="color:blue;">`GET`</mark> `http://playoutbee:3000/api/openOutput`

{% tabs %}
{% tab title="200: OK float  as example "4.24"" %}

{% endtab %}
{% endtabs %}

## Moves the Output window to x / y and resizes it to W and H

<mark style="color:blue;">`GET`</mark> `http://playoutbee:3000/api/moveOutput/{x}/{y}/{w}/{y}`

#### Path Parameters

| Name | Type   | Description                       |
| ---- | ------ | --------------------------------- |
| x    | String | X in Pixels for the Output Window |
| y    | String | Y in Pixels for the Output Window |
| w    | String | Width of the Output Window        |
| h    | String | Height of the Output Window       |

{% tabs %}
{% tab title="200: OK float  as example "4.24"" %}

{% endtab %}
{% endtabs %}


---

# 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://docs.playoutbee.com/api.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.
