Channels are the core object in Tunarr. Each channel has a number, a name, a schedule of programs, and a streaming configuration. The Channels API lets you create channels from scratch or by copying an existing one, update every property, retrieve live lineup data, and kick off video streams that any IPTV client can consume.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/chrisbenincasa/tunarr/llms.txt
Use this file to discover all available pages before exploring further.
List Channels
Retrieves every channel along with any active streaming sessions.200 — array of channel objects.
Unique identifier for the channel.
Channel number shown in IPTV clients.
Display name of the channel.
M3U group-title used for grouping channels in player UIs.
Epoch timestamp (ms) of the channel’s schedule epoch origin.
Total duration in milliseconds of the channel’s current lineup.
Active stream mode:
hls, hls_slower, mpegts, hls_direct, or hls_direct_v2.ID of the transcode configuration attached to this channel.
Total number of programs in the channel’s lineup.
Active streaming sessions for this channel (may be empty).
Get Channel
Returns a single channel by its UUID or channel number, including filler collections and active sessions.Channel UUID or channel number.
200 — channel object (same fields as List Channels, plus fillerCollections).
Filler lists attached to this channel, each with
id, weight, and cooldownSeconds.404 — channel not found.
Create Channel
Creates a new channel. You may create a brand-new channel (type: "new") or copy an existing one (type: "copy").
Must be
"new".The channel definition. Key fields:
name(string, required) — display namenumber(integer, required) — channel numbergroupTitle(string) — M3U group titlestreamMode(string) —hls|hls_slower|mpegts|hls_direct|hls_direct_v2transcodeConfigId(string uuid, required) — transcode configuration to useguideMinimumDuration(number) — minimum EPG slot duration in msstealth(boolean) — hide channel from EPGoffline.mode(string) — offline screen type:"pic"|"clip"watermark(object) — optional watermark/overlay configurationicon(object) —{ path, width, duration, position }
Must be
"copy".UUID of the channel to copy.
201 — the newly created channel object.
Response 400 — invalid transcode config ID.
Update Channel
Replaces all mutable properties of a channel. The channel’s UUID is preserved.Channel UUID or channel number.
SaveableChannel object with the same fields as the channel object in Create Channel.
Response 200 — the updated channel object.
Response 400 — invalid transcode config ID.
Response 404 — channel not found.
Delete Channel
Permanently removes a channel and clears it from the EPG and M3U caches.Channel UUID or channel number.
200 — channel deleted.
Response 404 — channel not found.
Get Channel Lineup
Returns the guide lineup (list of scheduled programs with start/end timestamps) for a channel over an optional time window. If no window is specified the full next schedule block is returned.Channel UUID or channel number.
Start of the time window (inclusive).
End of the time window (exclusive).
When
true, include full program metadata in each lineup entry. Default false.200 — a ChannelLineup object:
Channel UUID.
Channel name.
Channel number.
Ordered list of
TvGuideProgram entries, each with start, stop, title, duration, and program metadata.400 — invalid date range.
Response 404 — channel not found in guide cache.
Get All Channel Lineups
Returns the guide lineup for all channels simultaneously, useful for building a full EPG grid client-side.Start of the time window.
End of the time window.
Include full program objects in each lineup entry. Default
false.200 — array of ChannelLineup objects (one per channel).
Response 400 — invalid date range string.
Get Now Playing
Returns the single program currently airing on a channel.Channel UUID or channel number.
200 — a TvGuideProgram object for the currently-airing program.
Response 404 — channel not found or no guide data available.
Get Channel Programs
Returns a paginated list of all programs stored in the channel’s lineup (independent of schedule window).Channel UUID or channel number.
Records to skip. Default
0.Maximum records to return.
Filter by content type:
movie, episode, track, music_video, other_video.200 — paginated result { total, size, result: Program[] }.
Get Channel Programming (Condensed)
Returns the condensed lineup configuration used internally by the scheduler. This is the representation stored in the database rather than the computed guide.Channel UUID.
Pagination offset.
Pagination limit (-1 for all).
200 — CondensedChannelProgramming object.
Response 404 — channel or lineup not found.
Update Channel Programming
Replaces the channel’s lineup with a new set of programs. This is the primary endpoint used by the Tunarr web UI when dragging programs onto a channel.Channel UUID.
UpdateChannelProgrammingRequest object specifying the new ordered lineup.
Response 200 — the updated CondensedChannelProgramming.
Response 404 — channel not found.
M3U Playlist
Returns an M3U playlist containing an entry for every channel. This URL is what you add to IPTV clients like Jellyfin Live TV, Plex DVR, Emby Live TV, or VLC.Force
https:// scheme in stream URLs even when the request came in over HTTP.Override the hostname used in stream URLs (useful behind a reverse proxy).
200 — text/plain M3U content.
Stream a Channel
Starts or redirects to the appropriate video stream for a channel. The redirect target depends on the channel’sstreamMode:
- HLS modes →
/stream/channels/{uuid}.m3u8 - MPEG-TS mode →
/stream/channels/{uuid}.ts
Channel UUID or channel number.
Override the channel’s default stream mode:
hls | hls_slower | mpegts | hls_direct | hls_direct_v2.Request an audio-only stream. Default
false.Optional session token (advanced use).
MPEG-TS Direct Stream
Returns a continuous MPEG-TS video stream for a channel without an intermediate redirect.Channel UUID or channel number.
Stream mode override.
Audio-only mode. Default
false.200 — binary video/MP2T stream.
HLS Playlist
Returns an HLS.m3u8 manifest for a channel.
Channel UUID or channel number.
HLS mode:
hls | hls_slower | hls_direct | hls_direct_v2.200 — HLS manifest (application/vnd.apple.mpegurl).