Get folder details

Returns full details of a folder (metadata + aggregates like videos_count, storage_size, length, attached funnel and DRM groups).

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

GET /folders/{folder_id}

Returns a specific folder with its metadata and the list of videos it contains. The videos array is paginated and comes with a pagination object describing the current page.

🚧

Breaking change — the video list is now paginated

This endpoint used to return every video of the folder in a single videos array. It now returns 50 videos per page by default, plus a pagination object.

If your integration reads videos expecting the full list, it will silently receive fewer items — there is no error. Loop over the pages using page (and read pagination.has_next) to restore the previous behaviour.

In the same change, each description is shortened to 252 characters followed by ... (255 in total). The full text is still available from GET /videos/{video_id}.

📘

Authorization

Requires a valid Panda API token sent in the Authorization header (no Bearer prefix).

HTTP Method & Path

GET /folders/{folder_id}

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

Authentication Requirements

Security SchemeHeaderNote
API KeyAuthorizationPanda API token (without Bearer prefix)

Parameters

NameInTypeRequiredDescription
AuthorizationheaderstringYesPanda API token (without Bearer prefix)

Path Parameters

FieldTypeRequiredDescriptionConstraints
folder_idstring (uuid)YesUnique identifier of the folder.uuid

Query Parameters

FieldTypeRequiredDefaultDescription
pageintegerNo1Page of the videos list to return.
limitintegerNo50Videos per page. Values above 100 are capped at 100 (no error is returned).

Response

Success Response (200)

{
  "id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
  "name": "My folder",
  "user_id": "ffffffff-1111-2222-3333-444444444444",
  "parent_folder_id": null,
  "status": true,
  "created_at": "2026-06-01T11:12:38.000Z",
  "updated_at": "2026-06-01T11:12:38.000Z",
  "videos": [
    {
      "id": "11111111-2222-3333-4444-555555555555",
      "title": "Lesson 01.mp4",
      "description": null,
      "status": "CONVERTED",
      "user_id": "ffffffff-1111-2222-3333-444444444444",
      "folder_id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
      "library_id": "99999999-8888-7777-6666-555555555555",
      "live_id": null,
      "video_external_id": "7b2c2f77-8d02-4ac1-823f-9f59de2df7db",
      "converted_at": null,
      "created_at": "2026-06-01T11:38:12.000Z",
      "updated_at": "2026-06-28T12:24:43.000Z",
      "storage_size": 23236772,
      "length": 164.133333,
      "video_player": "https://player-vz-163a34ba-25b.tv.pandavideo.com.br/embed/?v=7b2c2f77-8d02-4ac1-823f-9f59de2df7db",
      "video_hls": "https://b-vz-163a34ba-25b.tv.pandavideo.com.br/7b2c2f77-8d02-4ac1-823f-9f59de2df7db/playlist.m3u8"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 50,
    "total_count": 95,
    "total_pages": 2,
    "has_next": true,
    "has_prev": false
  }
}

Response Schema

FieldTypeDescription
idstring (uuid)Folder ID.
namestringFolder name.
user_idstring (uuid)Owner user ID.
parent_folder_idstring | nullParent folder ID, or null for root-level folders.
statusbooleantrue = active, false = inactive (soft-deleted).
created_atstringISO 8601 timestamp of creation.
updated_atstringISO 8601 timestamp of last update.
videosobject[]Videos in this folder — one page only, see pagination. Empty when none.
paginationobjectPagination state of the videos array.
funnelobject | nullOnly present when a funnel is attached to this folder — { id }.
drm_group_idsarrayOnly present when the library uses DRM — each { drm_group_id, active }.

videos[] item

FieldTypeDescription
idstring (uuid)Internal video ID — use it on the /videos endpoints.
titlestringVideo title.
descriptionstring | nullVideo description — shortened here: 252 characters plus a literal ... (255 in total). Use GET /videos/{video_id} for the full text.
statusstringProcessing status (e.g. CONVERTED, CONVERTING, DRAFT). Videos being deleted are excluded.
user_idstring (uuid)Owner user ID.
folder_idstring (uuid)Folder the video belongs to.
library_idstring (uuid)Library the video belongs to.
live_idstring | nullSource live ID when the video came from a live stream.
video_external_idstring (uuid)External ID used by the player and the CDN — this is the value the embed expects, not id.
converted_atstring | nullISO 8601 timestamp of the end of processing.
created_atstringISO 8601 timestamp of creation.
updated_atstringISO 8601 timestamp of last update.
storage_sizeintegerStorage used by the video, in bytes (0 when not computed yet).
lengthnumberDuration in seconds (0 when not computed yet).
video_playerstring (url)Ready-to-use embed URL for this video.
video_hlsstring (url)HLS playlist URL (playlist.m3u8).
live_v2booleanOnly present (and true) when the source live is a Live V2 stream.

pagination object

FieldTypeDescription
pageintegerCurrent page — echoes the page you sent.
limitintegerPage size actually applied (capped at 100).
total_countintegerTotal number of videos in the folder, across all pages.
total_pagesintegerNumber of pages for the current limit.
has_nextbooleantrue when there is a page after the current one.
has_prevbooleantrue when there is a page before the current one.
⚠️

Important

  • Asking for a page beyond total_pages returns 200 with an empty videos array — not a 404. Check pagination.has_next instead of probing.
  • limit above 100 is silently reduced to 100; the response echoes the applied value in pagination.limit.
  • This endpoint does not return the folder aggregates videos_count, storage_size and length — those come from GET /folders (List user folders). Use pagination.total_count for the number of videos.
  • Videos in DELETING status are never listed.
  • description is shortened in this response only. A description of 300 characters comes back as 252 characters + ...; GET /videos/{video_id} still returns all 300. Do not use this field to detect changes or to re-save a description — you would persist the shortened text.

Error Responses

  • 401 Unauthorized — Missing or invalid API token.
  • 404 Not Found — Folder not found, or it does not belong to the authenticated user.
  • 500 Internal Server Error — Server-side error.

Example Usage

cURL — first page (default: 50 videos)

curl -X GET \
  'https://api-v2.pandavideo.com.br/folders/<folder_id>' \
  -H 'Authorization: your_api_token_here' \
  -H 'Accept: application/json'

cURL — walking through the pages

curl -X GET \
  'https://api-v2.pandavideo.com.br/folders/<folder_id>?page=2&limit=100' \
  -H 'Authorization: your_api_token_here' \
  -H 'Accept: application/json'

Recipes

Path Params
uuid
required

Unique identifier of the folder

Responses

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