Channels API

Control or query what you're watching.

The Channels app exposes a simple HTTP API that you can reach on port 57000 of the IP address of your device. Learn more about how you can use it below. Monitor what's currently playing, integrate Channels into your home automation, or just make your family think there are ghosts.


The Channels API will be as available as the platform it's running on allows. For tvOS, this means only when Channels is open and active. For Android and Fire TV, it will work if Channels is active or backgrounded, but only if it has been launched at least once.


The Channels API advertisies itself with Bonjour. You can search for all of the apps on your network with Bonjour using the _channels_app._tcp service name.



GET /api/status - Player's current status
GET /api/favorite_channels - List of favorite channels


POST /api/toggle_pip - Toggle Picture in Picture on and off
POST /api/toggle_mute - Toggle mute on and off
POST /api/toggle_cc - Toggle captions on and off
POST /api/channel_up - Change the channel
POST /api/channel_down - Change the channel
POST /api/previous_channel - Jump to the previous channel
POST /api/toggle_pause - Pause or resume playback based on current playing state
POST /api/toggle_record - Record the program playing on the current channel
POST /api/pause - Pause playback
POST /api/resume - Resume playback
POST /api/stop - Stop playback
POST /api/seek/{seconds} - Seek in timeline by seconds
POST /api/seek_forward - Seek ahead duration in settings
POST /api/seek_backward - Seek back duration in settings
POST /api/skip_forward - Skip to the next chapter mark
POST /api/skip_backward - Skip to the previous chapter mark
POST /api/play/channel/{channel_number} - Play a channel
POST /api/play/recording/{recording_id} - Play a recording
POST /api/navigate/{section_name} - Change to a section of the app by providing its name. EX, Guide, Library, Live TV
POST /api/notify - Present a notification while playing video - example payload: {"title":"Arrived home", "message":"Jon has arrived home"}


You can simply use CURL to query or control Channels with the Channels API. All methods return a JSON representation of the current status of Channels.

$ curl -X POST
  "status": "paused",
  "muted": false,
  "channel": {
    "number": "552",
    "name": "TBS HD",
    "image_url": ""
  "now_playing": {
    "title": "Seinfeld",
    "episode_title": "The Truth",
    "season_number": 3,
    "episode_number": 2,
    "summary": "A woman (Valerie Mahaffey) wants to know why George doesn't want to see her."
    "image_url": "",

API Clients

Use these API clients in your existing projects. They're ready to roll. Let us know if you make one yourself.

  • rbchannels - Ruby client for talking directly to your Channels app.
  • pychannels - Python client for talking directly to your Channels app.

Home Automation

Add Channels to your smart home with these integrations. Let us know if you make one yourself.

  • Home Assistant - Integrate Channels as a media player with Home Assistant.

Siri Shortcuts

iOS 12 introduces a way to add automations that can be run manually or triggered with Siri via your voice.