---
title: "List media folders"
method: GET
path: "/api/v1/workspaces/{workspace_id}/media/folders"
tags: ["📁 Content Library"]
---

# List media folders

`GET /api/v1/workspaces/{workspace_id}/media/folders`

## Request

- Base URL: `https://api.contentstudio.io`
- URL: `https://api.contentstudio.io/api/v1/workspaces/{workspace_id}/media/folders`
- Auth: API key in header `X-API-Key`

Returns every media-library folder in the workspace. Folders the caller cannot access (shared/global folders without the access_shared_folder permission) are omitted. An empty library returns an empty array, not an error.

## Path parameters

- `workspace_id` string, required

## Response `200`

Folders retrieved

- object
  - `status` boolean
  - `message` string
  - `folders` object[]
    - `id` string
    - `folder_name` string
    - `workspace_id` string
    - `root_folder_id` string, nullable: Parent folder id, null for a top-level folder
    - `is_root` boolean
    - `is_global` boolean: True for a folder shared across every workspace of the same owner
    - `created_at` string, date-time, nullable
    - `updated_at` string, date-time, nullable

## Other responses

- `401`: Unauthorized - API key missing or invalid
- `403`: Forbidden - No access to workspace. Workspace access refusals return `error_code` `WORKSPACE_ACCESS_DENIED`, `WORKSPACE_INVITATION_PENDING`, `WORKSPACE_LOCKED`, `PERMISSION_DENIED`.
- `429`: Too many requests

## Changes

- **2026-09-22** `ad0b687289a3`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/contentstudio/apis/contentstudio-api-v1/changes/api/v1/workspaces/:workspace_id/media/folders/get.md)

---

[API](https://skmtc.dev/contentstudio/apis/contentstudio-api-v1.md) - [All operations](https://skmtc.dev/contentstudio/apis/contentstudio-api-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/contentstudio/apis/contentstudio-api-v1/revisions/2ce09d50369c?raw)
