Funnel
A video funnel groups a set of videos in a specific order so the player can chain them with end‑of‑video redirects, CTAs and quiz answers. Funnels live at the organization level and are managed via /funnels/* on the Panda API.
AuthorizationEvery endpoint in this folder requires an API Key in the
Authorizationheader. Send the key directly — noBearerprefix.
How it works
| Concept | Description |
|---|---|
| Funnel | Container of videos bound to an organization. Has a unique name and an auto‑created folder (in Panda Folders) with the same name. |
| First video | Exactly one video per funnel must be marked is_first: true — this is the entry point. |
| Position | Each video carries front_coordinates = {x, y} used by the dashboard editor to render the flow. |
| Folder side‑effect | Creating a funnel creates a folder; deleting a funnel deletes the folder; adding a video moves it into the funnel's folder; removing a video clears the folder reference. |
Endpoints
| Endpoint | Operation |
|---|---|
| Create new funnel | POST /funnels/create |
| List organization funnels | GET /funnels/get_all |
| Get funnel details | GET /funnels/get/{funnel_id} |
| Update funnel | PUT /funnels/update/{funnel_id} (canonical) |
| Delete funnel | DELETE /funnels/delete/{funnel_id} |
| Add videos to funnel | POST /funnels/add_videos |
| Remove videos from funnel | DELETE /funnels/remove_videos |
Limits & rules
name: 3–50 characters, unique within the organization (HTTP 400 on duplicate).add_videosrequires exactly one video withis_first: true— anything else is HTTP 400.remove_videosbody fieldvideos[]is an array of plain UUID strings, not objects.- All write operations send audit logs (
category: video_funnel).
Response shape
All endpoints return a wrapper { message: string, data: <payload> } (HTTP 200/201).
