Get playlist details with password

Retrieves playlist details for password-protected playlists

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

POST /playlist_details/{playlist_id}

Returns the public view of a playlist — title, description, branding and the ordered list of videos with playable URLs. Used by the public viewer page.

📘

Public endpoint — no auth header

This endpoint does not require an API Key (the route is not behind the authorizer). Anyone holding the public link can call it. When the playlist is anyone_with_password, the visitor's password is sent in the body and validated server‑side.

⚠️

Why POST and not GET?

The endpoint is POST because the password must travel in the body (not in a URL or header). For open playlists you may send an empty body {}.

HTTP Method & Path

POST /playlist_details/{playlist_id}

Base URL: https://api-v2.pandavideo.com.br

Path Parameters

NameTypeRequiredDescription
playlist_idstring (uuid)yesPlaylist identifier.

Request Body

Content-Type: application/json

FieldTypeRequiredDescription
passwordstringconditionalRequired when the playlist's access_type === "anyone_with_password". Plain text — the server compares it against the AES‑256‑CBC‑encrypted stored value.
{ "password": "secret123" }

For anyone_with_link playlists send {} (or omit body).

Response

Success Response (200)

{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "name": "Onboarding Series",
  "description": "Internal onboarding for new hires.",
  "hide_views": false,
  "creator_name": "Panda Education",
  "external_button": { "text": "Open course", "url": "https://example.com/course", "size": "medium" },
  "image_url": "https://cdn.pandavideo.com.br/images/playlist-logo.png",
  "videos": [
    {
      "id": "f1f2f3f4-aaaa-bbbb-cccc-d1d2d3d4d5d6",
      "title": "Episode 1 — Welcome",
      "duration": 720,
      "thumbnail_url": "https://b-myzone.tv.pandavideo.com.br/abc123/thumbnail.jpg",
      "views": 120,
      "order": 0,
      "description": "Kickoff episode",
      "video_player": "https://player-myzone.tv.pandavideo.com.br/embed/?v=abc123"
    }
  ]
}

Response Schema

FieldTypeDescription
id / name / description / creator_namePlaylist metadata.
hide_viewsbooleanWhen true, each video's views is returned as null.
external_buttonobject | null{ text, url, size } shown on the public page.
image_urlstring | nullComposed from image.cdn_base + storage_path.
videos[]arraySorted by order ASC.
videos[].id / title / descriptionVideo metadata.
videos[].durationintegerSeconds (from metadata.length).
videos[].thumbnail_urlstringDerived (see get_playlists-playlist-id-videos).
videos[].viewsinteger | nullnull when hide_views=true.
videos[].orderintegerPosition in the playlist.
videos[].video_playerstringReady‑to‑embed player URL: https://player-{pullzone}.tv.pandavideo.com.br/embed/?v={external_id}.
📘

Caching. Response is cached in Memcache for 24 seconds (playlist_details_{playlist_id}) outside dev. Mutations on the playlist (PUT, delete, add/remove video) invalidate the key.

Error Responses

  • 400"Playlist not found", "Password required", or "Invalid password".
  • 500 — internal error.

Example Usage

cURL

Open playlist:

curl --request POST \
  --url 'https://api-v2.pandavideo.com.br/playlist_details/a1b2c3d4-e5f6-7890-abcd-ef1234567890' \
  --header 'Content-Type: application/json' \
  --data '{}'

Password‑protected playlist:

curl --request POST \
  --url 'https://api-v2.pandavideo.com.br/playlist_details/a1b2c3d4-e5f6-7890-abcd-ef1234567890' \
  --header 'Content-Type: application/json' \
  --data '{ "password": "secret123" }'

Recipes

Path Params
uuid
required

Unique identifier of the playlist

Body Params
string

Password for accessing protected playlist

Responses

Language
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json