Streams
List Streams
curl -X GET https://your-instance.com/api/channels/streams/ \
-H "Authorization: Bearer YOUR_TOKEN"
Page number for pagination
Number of items per page (max: 10000)
Filter by stream name (case-insensitive contains)
Filter by channel group name (comma-separated for multiple)
Filter by M3U account name
Filter by M3U account active status
Filter by TVG ID (case-insensitive contains)
Filter streams assigned to specific channel ID
Show only unassigned streams (true/false)
Hide stale streams (true/false)
Comma-separated list of stream IDs to retrieve
Get Stream IDs
curl -X GET https://your-instance.com/api/channels/streams/ids/ \
-H "Authorization: Bearer YOUR_TOKEN"
Returns only the IDs of streams matching the applied filters. Accepts same filter parameters as List Streams.
Get Stream Groups
curl -X GET https://your-instance.com/api/channels/streams/groups/ \
-H "Authorization: Bearer YOUR_TOKEN"
Returns unique channel group names that are linked to streams.
Array of channel group names
Create Stream
curl -X POST https://your-instance.com/api/channels/streams/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "HBO",
"url": "http://example.com/stream.m3u8",
"tvg_id": "hbo.us"
}'
Update Stream
curl -X PUT https://your-instance.com/api/channels/streams/123/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "HBO HD",
"url": "http://example.com/stream-hd.m3u8"
}'
Delete Stream
curl -X DELETE https://your-instance.com/api/channels/streams/123/ \
-H "Authorization: Bearer YOUR_TOKEN"
Bulk Delete Streams
curl -X POST https://your-instance.com/api/channels/streams/bulk-delete/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"ids": [1, 2, 3, 4, 5]
}'
Array of stream IDs to delete
Channels
List Channels
curl -X GET https://your-instance.com/api/channels/channels/ \
-H "Authorization: Bearer YOUR_TOKEN"
Supports filtering, searching, and ordering via query parameters.
Create Channel
curl -X POST https://your-instance.com/api/channels/channels/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "HBO",
"number": 101,
"enabled": true
}'
Update Channel
curl -X PUT https://your-instance.com/api/channels/channels/123/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "HBO HD",
"number": 101
}'
Delete Channel
curl -X DELETE https://your-instance.com/api/channels/channels/123/ \
-H "Authorization: Bearer YOUR_TOKEN"
Bulk Delete Channels
curl -X POST https://your-instance.com/api/channels/channels/bulk-delete/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"ids": [1, 2, 3]
}'
Get Channel Streams
curl -X GET https://your-instance.com/api/channels/channels/123/streams/ \
-H "Authorization: Bearer YOUR_TOKEN"
Returns all streams associated with a specific channel.
Channel Groups
List Channel Groups
curl -X GET https://your-instance.com/api/channels/groups/ \
-H "Authorization: Bearer YOUR_TOKEN"
Create Channel Group
curl -X POST https://your-instance.com/api/channels/groups/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Premium Channels"
}'
Update Channel Group
curl -X PUT https://your-instance.com/api/channels/groups/123/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Premium HD Channels"
}'
Delete Channel Group
curl -X DELETE https://your-instance.com/api/channels/groups/123/ \
-H "Authorization: Bearer YOUR_TOKEN"
Logos
List Logos
curl -X GET https://your-instance.com/api/channels/logos/ \
-H "Authorization: Bearer YOUR_TOKEN"
Cached logo URL served by Dispatcharr
Number of channels using this logo
Whether the logo is used by any channels
Names of channels using this logo (up to 5)
Create Logo
curl -X POST https://your-instance.com/api/channels/logos/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "HBO Logo",
"url": "https://example.com/hbo-logo.png"
}'
Update Logo
curl -X PUT https://your-instance.com/api/channels/logos/123/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "HBO HD Logo",
"url": "https://example.com/hbo-hd-logo.png"
}'
Delete Logo
curl -X DELETE https://your-instance.com/api/channels/logos/123/ \
-H "Authorization: Bearer YOUR_TOKEN"
Bulk Delete Logos
curl -X POST https://your-instance.com/api/channels/logos/bulk-delete/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"ids": [1, 2, 3]
}'
Cleanup Unused Logos
curl -X POST https://your-instance.com/api/channels/logos/cleanup/ \
-H "Authorization: Bearer YOUR_TOKEN"
Deletes all logos that are not currently used by any channels.
Channel Profiles
List Profiles
curl -X GET https://your-instance.com/api/channels/profiles/ \
-H "Authorization: Bearer YOUR_TOKEN"
Create Profile
curl -X POST https://your-instance.com/api/channels/profiles/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Kids Profile",
"description": "Family-friendly channels only"
}'
Update Profile
curl -X PUT https://your-instance.com/api/channels/profiles/123/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Kids & Family"
}'
Delete Profile
curl -X DELETE https://your-instance.com/api/channels/profiles/123/ \
-H "Authorization: Bearer YOUR_TOKEN"
Update Channel Membership
curl -X PUT https://your-instance.com/api/channels/profiles/123/channels/456/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"enabled": true
}'
Update whether a specific channel is enabled in a profile.
Bulk Update Channel Membership
curl -X POST https://your-instance.com/api/channels/profiles/123/channels/bulk-update/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"memberships": [
{"channel_id": 1, "enabled": true},
{"channel_id": 2, "enabled": false}
]
}'
DVR Recordings
List Recordings
curl -X GET https://your-instance.com/api/channels/recordings/ \
-H "Authorization: Bearer YOUR_TOKEN"
Create Recording
curl -X POST https://your-instance.com/api/channels/recordings/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"channel_id": 123,
"program_id": 456,
"start_time": "2026-03-03T20:00:00Z",
"end_time": "2026-03-03T22:00:00Z"
}'
Update Recording
curl -X PUT https://your-instance.com/api/channels/recordings/123/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"status": "completed"
}'
Delete Recording
curl -X DELETE https://your-instance.com/api/channels/recordings/123/ \
-H "Authorization: Bearer YOUR_TOKEN"
Bulk Delete Upcoming Recordings
curl -X POST https://your-instance.com/api/channels/recordings/bulk-delete-upcoming/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"ids": [1, 2, 3]
}'
Recurring Recording Rules
List Recurring Rules
curl -X GET https://your-instance.com/api/channels/recurring-rules/ \
-H "Authorization: Bearer YOUR_TOKEN"
Create Recurring Rule
curl -X POST https://your-instance.com/api/channels/recurring-rules/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"tvg_id": "series.us",
"title": "My Series",
"record_new_only": true
}'
Update Recurring Rule
curl -X PUT https://your-instance.com/api/channels/recurring-rules/123/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"record_new_only": false
}'
Delete Recurring Rule
curl -X DELETE https://your-instance.com/api/channels/recurring-rules/123/ \
-H "Authorization: Bearer YOUR_TOKEN"
Series Rules
List Series Rules
curl -X GET https://your-instance.com/api/channels/series-rules/ \
-H "Authorization: Bearer YOUR_TOKEN"
Delete Series Rule
curl -X DELETE https://your-instance.com/api/channels/series-rules/series.tvg.id/ \
-H "Authorization: Bearer YOUR_TOKEN"
Evaluate Series Rules
curl -X POST https://your-instance.com/api/channels/series-rules/evaluate/ \
-H "Authorization: Bearer YOUR_TOKEN"
Triggers evaluation of all series rules to create upcoming recordings.
Bulk Remove Series Recordings
curl -X POST https://your-instance.com/api/channels/series-rules/bulk-remove/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"tvg_ids": ["series1.us", "series2.us"]
}'
Comskip Configuration
Get Comskip Config
curl -X GET https://your-instance.com/api/channels/dvr/comskip-config/ \
-H "Authorization: Bearer YOUR_TOKEN"
Update Comskip Config
curl -X PUT https://your-instance.com/api/channels/dvr/comskip-config/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"enabled": true,
"config": "detect_method=43\n"
}'