Tunarr maintains an in-memory Electronic Program Guide (EPG) that tracks what is airing—and what is scheduled to air—on every channel. The Guide API lets you query this data as structured JSON for a specific time window, retrieve the canonical XMLTV file for use with third-party DVR software, and check guide status. IPTV clients like Jellyfin, Plex, Emby, and Channels DVR consume theDocumentation 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.
/api/xmltv.xml endpoint directly.
Get Guide for All Channels
Returns the lineup (scheduled programs with start/stop times) for every channel over a specified time range. Results are keyed by channel UUID.Start of the guide window.
End of the guide window.
200 — Record<string, ChannelLineup> — a map of channel UUID → lineup.
Each ChannelLineup contains:
Channel UUID.
Channel display name.
Channel number.
Channel icon configuration (
path, width, duration, position).Ordered list of
TvGuideProgram entries for the requested window.TvGuideProgram entry contains:
Program start time as an epoch timestamp (milliseconds).
Program end time as an epoch timestamp (milliseconds).
Program duration in milliseconds.
Program title.
movie | episode | track | flex | redirect.URL or path of the program’s poster/thumbnail art.
400 — invalid or logically impossible date range (e.g. dateFrom after dateTo).
Get Guide for a Single Channel
Returns the lineup for one channel identified by UUID or channel number over a specified time range.Channel UUID or channel number.
Start of the guide window (ISO 8601 datetime string or any parseable date).
End of the guide window.
200 — ChannelLineup object (same shape as above).
Response 404 — "Channel not found in TV guide".
Response 500 — internal server error.
Guide Status
Returns internal diagnostic information about the guide service, including when the guide was last generated and whether it is stale.200 — guide status object (structure may vary by version).
Response 500 — server error.
XMLTV Feed
Returns the full XMLTV EPG file for all channels. Configure your DVR software (Jellyfin, Plex, Emby, Channels DVR, etc.) to poll this URL to keep its program guide in sync.HEAD requests for cache validation. Tunarr regenerates this file whenever a channel is created, updated, or has its lineup changed, and on a configurable background schedule.
Response 200 — application/xml — the XMLTV document.
The XMLTV document contains <channel> entries for each channel and <programme> entries covering the schedule window configured in Tunarr’s XMLTV settings (default: 24 hours ahead).
Force XMLTV Refresh
Triggers an immediate regeneration of the XMLTV file outside of the background schedule.200 — refresh started (synchronous).
XMLTV Last Refresh Timestamp
Returns the timestamp of the most recent XMLTV regeneration.200 — { "value": <epoch ms> | undefined }.
Configuring EPG Clients
To connect your DVR software to Tunarr’s guide:| DVR Software | M3U URL | XMLTV URL |
|---|---|---|
| Jellyfin | http://tunarr-host:8000/api/channels.m3u | http://tunarr-host:8000/api/xmltv.xml |
| Plex DVR | http://tunarr-host:8000/api/channels.m3u | http://tunarr-host:8000/api/xmltv.xml |
| Emby | http://tunarr-host:8000/api/channels.m3u | http://tunarr-host:8000/api/xmltv.xml |
| Channels DVR | http://tunarr-host:8000/api/channels.m3u | http://tunarr-host:8000/api/xmltv.xml |
Replace
tunarr-host:8000 with the actual hostname and port where your Tunarr instance is running. If your DVR software is on a different machine from Tunarr, make sure port 8000 is accessible on your network.