Updates an existing playlist
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
PUT /playlists/{playlist_id}
{playlist_id}Updates one or more fields of a playlist owned by the authenticated user. Partial update — only fields present in the body are changed.
AuthorizationRequires a valid API Key in the
Authorizationheader. Send the key directly — noBearerprefix.
Ownership enforced. The handler callsverifyPlaylistOwnershipfirst — calling with aplaylist_idyou do not own throws (caught as 500"Unauthorized: You do not own this playlist").
HTTP Method & Path
PUT /playlists/{playlist_id}
Base URL: https://api-v2.pandavideo.com.br
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
playlist_id | string (uuid) | yes | Playlist identifier. |
Request Body
Content-Type: application/json
All fields optional — send only what you want to change.
| Field | Type | Description |
|---|---|---|
name | string | New playlist name. |
description | string | New description. |
access_type | string | anyone_with_link | anyone_with_password. Setting anyone_with_password without sending password will leave the previous password untouched (encrypted in DB). |
password | string | New password (will be AES‑256‑CBC encrypted before storage). |
creator_name | string | Author name on the public page. |
hide_views | boolean | Toggle view‑count display on the public page. |
external_button | object | {} | { text, url, size } to set, or empty {} to disable. |
image_id | string (uuid) | null | Link a new logo image (uploaded via Panda Images) or null to remove. |
{
"name": "Onboarding Series — Updated",
"external_button": { "text": "Buy now", "url": "https://example.com/buy", "size": "large" }
}Response
Success Response (200)
Returns the updated playlist (same shape as Get playlist details, again with password stripped).
Audit log
Each meaningful change creates an audit_log entry (category: playlist, with attribute_name covering: playlist_name, playlist_description, access_type, creator_name, external_link_button, button_text, button_link, custom_logo, access_password).
Error Responses
- 400 —
"Playlist not found"when the playlist does not exist (handler swallows the ownership error in some flows). - 401 — missing/invalid API Key.
- 500 — internal error or ownership rejected (
"Unauthorized: You do not own this playlist").
Example Usage
cURL
curl --request PUT \
--url 'https://api-v2.pandavideo.com.br/playlists/a1b2c3d4-e5f6-7890-abcd-ef1234567890' \
--header 'Authorization: <your-api-key>' \
--header 'Content-Type: application/json' \
--data '{ "name": "Onboarding Series — Updated" }'