API Documentation
All endpoints are public and read-only — no authentication or API key required.
Every endpoint is scoped to a curator's slug ({slug}).
Responses are JSON unless noted otherwise.
/{slug}
A curator's public page (HTML) listing their active playlists with M3U links.
/api/v1/{slug}/playlists
Lists the curator's active playlists with stream counts and public links.
{
"data": [
{
"uuid": "0197a2b4-...",
"name": "Demo Playlist",
"description": "Sample IPTV playlist",
"owner": { "name": "Demo Admin", "slug": "demo" },
"streams_count": 2,
"m3u_url": "https://play.paukpauk.com/{slug}/{uuid}.m3u",
"api_url": "https://play.paukpauk.com/api/v1/{slug}/playlists/{uuid}",
"created_at": "2026-07-04T00:44:58.000000Z",
"updated_at": "2026-07-04T00:44:58.000000Z"
}
]
}
/api/v1/{slug}/playlists/{uuid}
Returns a single playlist including its active streams, ordered by sort_order.
Inactive playlists — or a UUID that doesn't belong to that curator — return 404.
{
"data": {
"uuid": "0197a2b4-...",
"name": "Demo Playlist",
"description": "Sample IPTV playlist",
"owner": { "name": "Demo Admin", "slug": "demo" },
"m3u_url": "https://play.paukpauk.com/{slug}/{uuid}.m3u",
"api_url": "https://play.paukpauk.com/api/v1/{slug}/playlists/{uuid}",
"streams": [
{
"url": "https://cdn.example.com/live/index.m3u8",
"name": "BBC World Service",
"group_title": "News",
"tvg_logo": "https://example.com/logo.png",
"tvg_id": "BBC.WorldService",
"sort_order": 1
}
],
"created_at": "2026-07-04T00:44:58.000000Z",
"updated_at": "2026-07-04T00:44:58.000000Z"
}
}
/{slug}/{uuid}.m3u
The playlist in standard M3U format (audio/x-mpegurl).
Paste this URL directly into any IPTV player. Only active streams are included.
#EXTM3U
#EXTINF:-1 tvg-id="BBC.WorldService" tvg-name="BBC World Service" tvg-logo="https://example.com/logo.png" group-title="News",BBC World Service
https://cdn.example.com/live/index.m3u8
Errors & rate limiting
404 Not Found— unknown slug or UUID, the playlist is inactive, or the playlist doesn't belong to that curator.- API requests are rate limited to 60 requests per minute per IP.