# Create a video folder
`POST https://octopus.livepush.io/streams/{stream_id}/videos/resource_group`
Creates a video folder. Passing the `id` of an existing folder renames that folder instead of creating a new one.

Video folders appear as `resource_group` in the URL and as `resourceGroup` on the video object — the original internal name, kept for compatibility.

Requires a token with the `streams.videos.write` scope.
- **Tag:** Videos
- **Operation ID:** `createVideoFolder`
- **Authentication:** Bearer token required
- **Docs:** https://developers.livepush.io/videos/create-a-video-folder/

### Path parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `stream_id` | string | yes | Unique identifier of the stream. |


### Request body

`application/json` (required)

- `id` (string) — Omit to create a folder; supply an existing folder id to rename it.
- `name` (string) **required**


```json
{
  "id": "grp_xxxxxxxxxxxx",
  "name": "Sunday services"
}
```


### Example request

```bash
curl -X POST 'https://octopus.livepush.io/streams/st_xxxxxxxxxxxxx/videos/resource_group' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "id": "grp_xxxxxxxxxxxx",
    "name": "Sunday services"
  }'
```


### Responses


#### 200 — Create a video folder.

- `id` (string)
- `type` (string) — The kind of resource the folder holds. Video folders are always video; the stream variant exists in the same collection but is not exposed here.
- `name` (string) — Display name of the folder.
- `user` (string) — Owning account.
- `Key` (string)
- `createdAt` (string<date-time>)
- `isDisabled` (boolean)


```json
{
  "id": "grp_xxxxxxxxxxxx",
  "type": "video",
  "name": "Sunday services",
  "user": "string",
  "Key": "string",
  "createdAt": "2026-01-31T09:00:00.000Z",
  "isDisabled": false
}
```


#### 401 — Response


#### 404 — Not found for this account.

