# cobalt API Documentation
This document provides info about methods and acceptable variables for all cobalt API requests.<br>

```
⚠️ Main API instance has moved to https://co.wuk.sh/

Make sure your projects use the correct API domain.
```

## POST: ``/api/json``
Main processing endpoint.<br>

Request Body Type: ``application/json``<br>
Response Body Type: ``application/json``

### Request Body Variables
| key                 | type    | variables                         | default   | description                                                                    |
|:--------------------|:--------|:----------------------------------|:----------|:-------------------------------------------------------------------------------|
| ``url``             | string  | Sharable URL encoded as URI       | ``null``  | **Must** be included in every request.                                         |
| ``vCodec``          | string  | ``h264 / av1 / vp9``              | ``h264``  | Applies only to YouTube downloads. ``h264`` is recommended for phones.         |
| ``vQuality``        | string  | ``144 / ... / 2160 / max``        | ``720``   | ``720`` quality is recommended for phones.                                     |
| ``aFormat``         | string  | ``best / mp3 / ogg / wav / opus`` | ``mp3``   |                                                                                |
| ``isAudioOnly``     | boolean | ``true / false``                  | ``false`` |                                                                                |
| ``isNoTTWatermark`` | boolean | ``true / false``                  | ``false`` | Changes whether downloaded TikTok videos have watermarks.                      |
| ``isTTFullAudio``   | boolean | ``true / false``                  | ``false`` | Enables download of original sound used in a TikTok video.                     |
| ``isAudioMuted``    | boolean | ``true / false``                  | ``false`` | Disables audio track in video downloads.                                       |
| ``dubLang``         | boolean | ``true / false``                  | ``false`` | Backend uses Accept-Language for YouTube video audio tracks when ``true``.     |
| ``disableMetadata`` | boolean | ``true / false``                  | ``false`` | Disables file metadata when set to ``true``.                                   |

### Response Body Variables
| key        | type   | variables                                                     |
|:-----------|:-------|:--------------------------------------------------------------|
| status     | string | ``error / redirect / stream / success / rate-limit / picker`` |
| text       | string | Text                                                          |
| url        | string | Direct link to a file / link to cobalt's stream               |
| pickerType | string | ``various / images``                                          |
| picker     | array  | Array of picker items                                         |
| audio      | string | Direct link to a file / link to cobalt's stream               |

### Picker Item Variables
Item type: ``object``
| key        | type   | variables                                       | description                                 |
|:-----------|:-------|:------------------------------------------------|:--------------------------------------------|
| type       | string | ``video``                                       | Used only if ``pickerType`` is ``various``. |
| url        | string | Direct link to a file / link to cobalt's stream |                                             |
| thumb      | string | Item thumbnail that's displayed in the picker   | Used only for ``video`` type.               |

## GET: ``/api/stream``
Content live render streaming endpoint.<br>

### Request Query Variables
| key | variables        | description                                                                                                                    |
|:----|:-----------------|:-------------------------------------------------------------------------------------------------------------------------------|
| p   | ``1``            | Used for probing the rate limit.                                                                                               |
| t   | Stream token     | Unique stream ID. Used for retrieving cached stream info data.                                                                 |
| h   | HMAC             | Hashed combination of: (hashed) ip address, stream token, expiry timestamp, and service name. Used for verification of stream. |
| e   | Expiry timestamp |                                                                                                                                |

## GET: ``/api/onDemand``
On-demand website element loading. Currently used only for older changelogs.<br>

### Request Query Variables
| key     | variables | description                            |
|:--------|:----------|:---------------------------------------|
| blockId | ``0``     | Block ID to be rendered on the server. |

### Response Body Variables
| key    | type   | variables                    |
|:-------|:-------|:-----------------------------|
| status | string | ``error / success``          |
| text   | string | Error text or rendered block |

## GET: ``/api/serverInfo``
Returns current basic server info.<br>
Response Body Type: ``application/json``

### Response Body Variables
| key       | type   | variables         |
|:----------|:-------|:------------------|
| version   | string | cobalt version    |
| commit    | string | Git commit        |
| branch    | string | Git branch        |
| name      | string | Server name       |
| url       | string | Server url        |
| cors      | string | CORS status       |
| startTime | string | Server start time |