---
title: "Rename or move a media-library folder"
method: PATCH
path: "/v1/asset-folders/{folder_id}"
tags: ["asset-folders"]
---

# Rename or move a media-library folder

`PATCH /v1/asset-folders/{folder_id}`

## Request

- Base URL: `https://us1.platform.bird.com`
- URL: `https://us1.platform.bird.com/v1/asset-folders/{folder_id}`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `bird_session`

Renames a folder, moves it, or both. Send `parent_id` to move the folder into
another folder, or `null` to move it to the top level.

Moving a folder carries its subfolders and assets with it and changes no URLs, so
messages that embed those assets are unaffected. A folder cannot be moved into
itself or into one of its own subfolders, and the resulting tree cannot exceed 10
levels.

## Path parameters

- `folder_id` string, required

## Headers

- `Idempotency-Key` string
- `X-Workspace-Id` string
- `X-Organization-Id` string

## Request body

- AssetFolderUpdate: Fields to change on a folder. Omit a field to leave it as it is. Renaming a folder or moving it changes nothing about the assets inside it, including their URLs.
  - `name` string: The folder's display name. Must be unique among folders sharing the same parent, compared without regard to case. Cannot contain `/`.
  - `parent_id` string

## Response `200`

The updated folder.

- AssetFolder: A folder in the workspace's media library. Folders organize assets for the people browsing them and never appear in an asset's URL, so moving an asset between folders leaves every message that already embeds it untouched.
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `id` string, required
  - `name` string, required: The folder's display name. Unique among folders sharing the same parent, compared without regard to case.
  - `parent_id` string, required
  - `path` string, required: The folder's location written out from the top level, such as `/Marketing/Logos`. Provided so a caller can display a folder without walking its parents.

## Other responses

- `400`: Bad request
- `401`: Authentication required
- `403`: Insufficient permissions
- `404`: Resource not found
- `409`: Resource conflict
- `422`: The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.
- `429`: Rate limit exceeded
- `500`: Internal server error
- `501`: The operation is not supported
- `503`: The service is temporarily unavailable. If `Retry-After` is present, wait for that delay before retrying; otherwise, retry with exponential backoff. Reuse the same idempotency key and request when retrying a mutation.

---

[API](https://skmtc.dev/messagebird/apis/bird-api.md) · [All operations](https://skmtc.dev/messagebird/apis/bird-api/llms.txt) · [OpenAPI document](https://skmtc.dev/messagebird/apis/bird-api/revisions/6dfce1179799?raw)
