Yxc API Spec Basic
Yxc API Spec Basic
Rev. 1.10
Contents
1.  Preface ................................................................................................................................................ 5
2.  Definitions .......................................................................................................................................... 5
3.  API Overview ..................................................................................................................................... 5
4.  System ................................................................................................................................................ 7
  4.1.    getDeviceInfo .......................................................................................................................... 7
  4.2.    getFeatures ............................................................................................................................. 8
  4.3.    getNetworkStatus ................................................................................................................. 14
  4.4.    setWiredLan .......................................................................................................................... 16
  4.5.    setWirelessLan...................................................................................................................... 17
  4.6.    setWirelessDirect .................................................................................................................. 17
  4.7.    setIpSettings ......................................................................................................................... 18
  4.8.    setNetworkName .................................................................................................................. 19
  4.9.    setAirPlayPin ........................................................................................................................ 19
  4.10.   getMacAddressFilter ............................................................................................................ 20
  4.11.   setMacAddressFilter ............................................................................................................ 21
  4.12.   getNetworkStandby .............................................................................................................. 21
  4.13.   setNetworkStandby .............................................................................................................. 22
  4.14.   getBluetoothInfo ................................................................................................................... 22
  4.15.   setBluetoothStandby ............................................................................................................ 23
  4.16.   setBluetoothTxSetting ......................................................................................................... 23
  4.17.   getBluetoothDeviceList ........................................................................................................ 24
  4.18.   updateBluetoothDeviceList ................................................................................................. 25
  4.19.   connectBluetoothDevice ....................................................................................................... 25
  4.20.   disconnectBluetoothDevice .................................................................................................. 26
  4.21.   getFuncStatus ....................................................................................................................... 26
  4.22.   setAutoPowerStandby .......................................................................................................... 27
  4.23.   setIrSensor ............................................................................................................................ 27
  4.24.   setSpeakerA .......................................................................................................................... 28
  4.25.   setSpeakerB .......................................................................................................................... 28
  4.26.   setDimmer ............................................................................................................................. 29
  4.27.   setZoneBVolumeSync ........................................................................................................... 29
  4.28.   setHdmiOut1......................................................................................................................... 30
  4.29.   setHdmiOut2......................................................................................................................... 30
  4.30.   getNameText ......................................................................................................................... 31
  4.31.   setNameText ......................................................................................................................... 32
  4.32.   getLocationInfo ..................................................................................................................... 33
  4.33.   sendIrCode ............................................................................................................................ 34
5. Zone .................................................................................................................................................. 34
  5.1.    getStatus ............................................................................................................................... 34
  5.2.    getSoundProgramList .......................................................................................................... 36
  5.3.    setPower ................................................................................................................................ 37
  5.4.    setSleep ................................................................................................................................. 38
  5.5.    setVolume .............................................................................................................................. 38
  5.6.    setMute .................................................................................................................................. 39
  5.7.    setInput ................................................................................................................................. 39
  5.8.    setSoundProgram ................................................................................................................. 40
  5.9.    set3dSurround ...................................................................................................................... 40
  7.20.    manageList............................................................................................................................ 75
  7.21.    getPlayDescription ............................................................................................................... 76
  7.22.    setListSortOption ................................................................................................................. 77
  7.23.    getAccountStatus .................................................................................................................. 77
  7.24.    switchAccount ....................................................................................................................... 79
  7.25.    getServiceInfo ....................................................................................................................... 79
8. CD ..................................................................................................................................................... 82
  8.1.     getPlayInfo ............................................................................................................................ 82
  8.2.     setPlayback ........................................................................................................................... 83
  8.3.     toggleTray.............................................................................................................................. 83
  8.4.     toggleRepeat.......................................................................................................................... 84
  8.5.     toggleShuffle ......................................................................................................................... 84
9. Clock ................................................................................................................................................. 85
  9.1.     getSettings ............................................................................................................................ 85
  9.2.     setAutoSync .......................................................................................................................... 87
  9.3.     setDateAndTime ................................................................................................................... 88
  9.4.     setClockFormat ..................................................................................................................... 88
  9.5.     setAlarmSettings .................................................................................................................. 89
10. Response Code List .......................................................................................................................... 90
11. Events ............................................................................................................................................... 91
  11.1.    Outline ................................................................................................................................... 91
  11.2.    Conditions ............................................................................................................................. 91
  11.3.    Details of event data............................................................................................................. 91
12. All ID List......................................................................................................................................... 95
13. Application Notes ............................................................................................................................ 96
  13.1.    Example of List Control ....................................................................................................... 96
    13.1.1.       Preparation before start browsing ............................................................................... 96
    13.1.2.       Retrieving list information (In case max line number is less than or equal to 8) .... 96
    13.1.3.       Layer change.................................................................................................................. 97
    13.1.4.       Retrieving list information (In case max line number is more than 8) ..................... 98
    13.1.5.       Playback a file.............................................................................................................. 100
    13.1.6.       Moving back one layer ................................................................................................ 100
  13.2.    Device Search ...................................................................................................................... 101
1. Preface
This document describes specifications of API of Yamaha Extended Control (YXC, hereafter) for
Yamaha A/V products. YXC is Yamaha’s new communication protocol sent over Ethernet and Wi-Fi
to control MusicCast enabled devices. This document describes basic specifications including the
way to control power, change input, browse list, retrieve album art. Advanced function including
MusicCast link function and others is described in Yamaha Extended Control API Specification
(Advanced).
2. Definitions
   MusicCast
    A function to share music easily among audio devices in multiple rooms at homes
   MusicCast Device(s)
    All products/devices that are equipped with MusicCast functions
   MusicCast Network
    A communication network on which MusicCast Devices join.
     By multiple MusicCast Devices communicating each other on the same network
         (=MusicCast Network), all MusicCast devices can be operated using MusicCast App/YXC
   Location
    A unit of MusicCast Network being comprised. Location is expressed as Location ID made up
    by 32 characters
     Max number of MusicCast Devices within 1 Location is up to 10
   Link
    A function to share an audio stream among rooms
   Device
    Equal to MusicCast Device
   Room
    A minimum component MusicCast devices can be shown/associated within a MusicCast
    network
3. API Overview
   Request Parameters
    Parameter information to inquire. Parameters stated as "required = yes" have always to be
    specified as one of inquiring parameters, while parameters marked as "required = no" can be
    omitted or need to be used in special cases
   Response Parameters
    Parameter information to be returned in the body of response (in JSON object format). Not all
    parameters listed here are always to be returned in a response, depending on each device
    specs/functions/setup situations. “response_code” is always returned
     Note: JSON format data expressions in this document get well formatted for readability,
        but actual data don’t include spaces, intends and carriage return/line feeds
   Base URL
    "<BaseURL>" shown in URI is http://{host}/YamahaExtendedControl
4. System
4.1. getDeviceInfo
  Request Parameters
    URI                   <BaseURL>/v1/system/getDeviceInfo
    Method                GET
    Example Request       http://{host}/YamahaExtendedControl/v1/system/getDeviceInfo
  Response Parameters
    name                   type             description
    response_code          integer          0: Successful request / Others: Error
                                            Refer to “Response Code List” for details
    model_name             string           Returns model name
                                            Ex. "RX-V479" / "WXC-50" / "UNKNOWN"
    destination            string           Returns Device’s destination region code. There are cases of multiple
                                            regions codes like "UC" "BG" depending on Devices
                                            Values: "J" / "U" / "C" / "R" / "BG" / "T" / "A" / "L" / "K"
    device_id              string           Return Device’s ID (12 digit ASCII).Device ID is unique ID to identify
                                            Device.
                                            Note: Available on and after API Version 1.17
    system_version         floating point   Returns System Version
    api_version            floating point   Returns API Version
    netmodule_version      string           Returns Network Module version
    netmodule_checksum     string           Return check-sum of Network Module in hex. “00000000” is returned
                                            until check-sum calculation is done
    operation_mode         string           Reserved
    update_error_code      string           Reserved
    update_progress        object           Reserved
    Example Response      {
                              "response_code":0,
                              "model_name":"RX-V679",
                              "destination":"UC",
                              "system_id":"ABADCAFE",
                              "system_version":1.10,
                              "api_version":1.00,
                              "netmodule_version":"0200       ",
                              "netmodule_checksum":"878059DD",
                              "operation_mode":"normal",
                              "update_error_code"."00000000"
                          }
4.2. getFeatures
  Request Parameters
    URI                    <BaseURL>/v1/system/getFeatures
    Method                 GET
    Example Request        http://{host}/YamahaExtendedControl/v1/system/getFeatures
  Response Parameters
    name                         type        description
    response_code                integer     0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    system                       object      Returns system’s overall info
    |- func_list                 string      Returns valid functions
                                 array       Values:    "wired_lan"     /       "wireless_lan"   /   "wireless_direct"   /
                                             "network_standby"              /          "network_standby_auto"            /
                                             "bluetooth_standby"                /        "bluetooth_tx_setting"          /
                                             "auto_power_standby" / "ir_sensor" / "speaker_a" / "speaker_b" /
                                             "headphone" / "dimmer" / "zone_b_volume_sync" / "airplay" /
                                             "stereo_pair" / "speaker_settings" / "disklavier_settings"
    |- zone_num                  integer     Returns Zone numbers. Zone B is treated as Zone2 in YXC so a
                                             Device with ZoneB returns 2. A Device without Zones returns 1
    |- input_list                array       Returns a list of inputs
      |- id                      string      Returns Input ID
                                             Refer to “All ID List” for details
      |- distribution_enable     boolean     Returns whether an input can be a source of Link distribution
      |- rename_enable           boolean     Returns whether an input can be renamed
      |- account_enable          boolean     Return whether an input comes with an account info
      |- play_info_type          string      Returns a type of playback info. Depending on this type, use
                                             specific API to retrieve appropriate playback info
                                             Values: "none" / "tuner" / "netusb" / "cd"
    |- range_step                array       Returns minimum/maximum/step values of a parameter
      |- id                      string      Returns an ID
                                             Value: "dimmer"
      |- min                     integer     Returns a minimum value of a parameter
      |- max                     integer     Returns a maximum value of a parameter
      |- step                    integer     Returns a step value of a parameter
    |- speaker_settings          object      Reserved
    |- ymap_list                 string      Reserved
                                 array
    |- web_control_ url          string      Reserved
    zone                         array       Returns Zone related information
    |- id                        string      Returns Zone ID.
                                             Refer to "All ID List" for details
    Example Response       {
                               "response_code":0,
                               "system":{
                                 "func_list":[
                                      "wired_lan",
                                      "wireless_lan",
                                      "wireless_direct",
                                      "network_standby",
                                      "bluetooth_standby",
                                      "speaker_settings"
                                 ],
                                 "zone_num":3,
                                 "input_list":[
                                      {
                                          "id":"hdmi1",
                                          "distribution_enable":false,
                                          "rename_enable":true,
                                         "account_enable":false
                                   },
                                   {
                                         "id":"hdmi2",
                                         "distribution_enable":false,
                                         "rename_enable":true,
                                         "account_enable":false
                                   },
                                   ...
                                   {
                                         "id":"spotify",
                                         "distribution_enable":true,
                                         "rename_enable":false,
                                         "account_enable":false
                                   }
                              ],
                              "speaker_settings":{
                                   "type":"beam",
                                   "common":{
                                         "attribute":1,
                                         "range_step":[
                                             {
                                                  "id":"target_angle",
                                                  "min":-90,
                                                  "max":90,
                                                  "step":1
                                             }
                                         ]
                                   },
                                   "front_l":{
                                         "attribute":7,
                                         "range_step":[
                                             {
                                                  "id":"level",
                                                  "min":-10,
                                                  "max":10,
                                                  "step":1
                                             },
                                             {
                                                  "id":"h_angle",
                                                  "min":-90,
                                                  "max":90,
                                                  "step":1
                                             }
                                         ]
                                   },
                                   ...
                                   "swfr":{
                                         "attribute":1,
                                          "range_step":[
                                                {
                                                    "id":"level",
                                                    "min":-10,
                                                    "max":10,
                                                    "step":1
                                                }
                                          ]
                                     }
                                 }
                            },
                            "zone":[
                                 {
                                     "id":"main",
                                     "func_list":[
                                          "power",
                                          "sleep",
                                          "volume",
                                          "mute",
                                          "sound_program",
                                          "pure_direct",
                                          "enhancer",
                                          "tone_control",
                                          "prepare_input_change",
                                          "link_control"
                                     ],
                                     "input_list":[
                                          "hdmi1",
                                          "hdmi2",
                                          ...
                                          "spotify"
                                     ],
                                     "sound_program_list":[
                                          "munich",
                                          "vienna",
                                          ...
                                          "straight"
                                     ],
                                     "link_control_list":[
                                          "standard",
                                          "stability"
                                     ],
                                     "range_step":[
                                          {
                                                "id":"volume",
                                                "min":0,
                                                "max":194,
                                                "step":1
                                          },
                                           {
                                                 "id":"tone_control",
                                                 "min":-12,
                                                 "max":12,
                                                 "step":1
                                           }
                                      ]
                                 },
                                 {
                                      "id":"zone2",
                                      "zone_b":false,
                                      "func_list":[
                                           "power",
                                           "sleep",
                                           "volume",
                                           "mute",
                                           "tone_control",
                                           "prepare_input_change"
                                      ],
                                      "input_list":[
                                           "hdmi1",
                                           "hdmi2",
                                           ...
                                           "spotify"
                                      ],
                                      "range_step":[
                                           {
                                                 "id":"volume",
                                                 "min":0,
                                                 "max":194,
                                                 "step":1
                                           },
                                           {
                                                 "id":"tone_control",
                                                 "min":-5,
                                                 "max":5,
                                                 "step":1
                                           }
                                      ]
                                 }
                            ],
                            "tuner":{
                                 "func_list":[
                                      "am",
                                      "fm",
                                      "rds",
                                      "dab"
                                 ],
                                 "range_step":[
                                        {
                                             "id":"am",
                                             "min":531,
                                             "max":1611,
                                             "step":9
                                        },
                                        {
                                             "id":"fm",
                                             "min":76000,
                                             "max":90000,
                                             "step":100
                                        }
                                   ],
                                   "preset":{
                                        "type":"common",
                                        "num":40
                                   }
                              },
                              "netusb":{
                                   "preset":{
                                        "num":40
                                   }
                                   "vtuner_fver":"A"
                              }
                          }
4.3. getNetworkStatus
  Request Parameters
    URI                   <BaseURL>/v1/system/getNetworkStatus
    Method                GET
    Example Request       http://{host}/YamahaExtendedControl/v1/system/getNetworkStatus
  Response Parameters
    name                      type                description
    response_code             integer             0: Successful request / Others: Error
                                                  Refer to “Response Code List” for details
    network_name              string              Returns Network Name (Friendly Name)
    connection                string              Returns setup status of Connection
                                                  Values: "wired_lan" / "wireless_lan" / "wireless_direct" / "extend_1" /
                                                  "extend_2" / "extend_3" / "unknown"
    dhcp                      boolen              Returns DHCP setup
    ip_address                string              Returns IP Address
    subnet_mask               string              Returns Subnet Mask
    default_gateway           string              Returns Default Gateway
    dns_server_1              string              Returns DNS Server 1
    dns_server_2              string              Returns DNS Server 2
Copyright  2016 Yamaha Corporation, ALL rights reserved.                                               Page 14 of 104
Yamaha Extended Control API Specification (Basic)
    Example Response          {
                                  "response_code":0,
                                  "network_name":"Yamaha AVR",
                                  "connection":"wireless_lan",
                                  "dhcp":true,
                                  "ip_address":"192.168.0.10",
                                  "subnet_mask":"255.255.255.0",
                                  "default_gateway":"192.168.0.1",
                                  "dns_server_1":"192.168.0.1",
                                  "dns_server_2":"192.168.0.2",
                                  "wireless":{
                                       "ssid":"AP1-2.4GHz",
                                       "type":"wpa2-psk(aes)",
                                       "key":"abadcafe",
                                       "strength":88
                                  },
                                  "musiccast_network":{
                                       "ready":true,
                                       "device_type":"root",
                                       "child_num":1,
                                       "initial_join_running":false
                                  },
                                  "mac_address":{
                                       "wired_lan":"00A0DE012345",
                                       "wireless_lan":"78A501012345",
                                       "wireless_direct":"78A501012346"
                                  },
                                  "vtuner_id":"00A0DE012345",
                                  "airplay_pin":"abc123",
                              }
4.4. setWiredLan
  For setting Wired Network. Network connection is switched to wired by using this API. If no
  parameter is specified, current parameter is used. If set parameter is incomplete, it is possible not
  to provide network avalability.
  Request Parameters
    name               type                   required       description
    dhcp               string                 no             Specifies DHCP setting
    ip_address         string                 no             Specifies IP Address
    subnet_mask        string                 no             Specifies Subnet Mask
    default_gateway    string                 no             Specifies Default Gateway
    dns_server_1       string                 no             Specifies DNS Server 1
    dns_server_2       string                 no             Specifies DNS Server 2
    URI                       <BaseURL>/v1/system/setWiredLan
    Method                    POST
    Example Request           http://{host}/YamahaExtendedControl/v1/system/setWiredLan
    (URI)
    Example Request           {
    (json)                        "dhcp":false,
                                  "ip_address":"192.168.0.11",
                                  "subnet_mask":"255.255.255.0",
                                  "default_gateway":"192.168.0.1",
                                  "dns_server_1":"192.168.0.1",
                                  "dns_server_2":"0.0.0.0"
                              }
  Response Parameters
    name               type                    description
    response_code      integer                 0: Successful request / Others: Error
                                               Refer to “Response Code List” for details
    Example Response          {
                                  "response_code":0
                              }
Copyright  2016 Yamaha Corporation, ALL rights reserved.                                  Page 16 of 104
Yamaha Extended Control API Specification (Basic)
4.5. setWirelessLan
  For setting Wireless Network (Wi-Fi). Network connection is switched to wireless (Wi-Fi) by using
  this API. If no parameter is specified, current parameter is used. If set parameter is incomplete, it
  is possible not to provide network avalability.
  Request Parameters
    name               type                required       description
    ssid               string              no             Specifies access point SSID (UTF-8 within 32 bytes)
    type               string              no             Specifies wireless encryption protocol
                                                          Values: "none" / "wep" / "wpa2-psk(aes)" / "mixed_mode"
    key                string              no             Specifies encryption key (printable ASCII (0x20-0x7E) within
                                                          64 characters). This value is invalid when type "none" is
                                                          specified.
    dhcp               string              no             Specifies DHCP setting
    ip_address         string              no             Specifies IP Address
    subnet_mask        string              no             Specifies Subnet Mask
    default_gateway    string              no             Specifies Default Gateway
    dns_server_1       string              no             Specifies DNS Server 1
    dns_server_2       string              no             Specifies DNS Server 2
    URI                       <BaseURL>/v1/system/setWirelessLan
    Method                    POST
    Example Request           http://{host}/YamahaExtendedControl/v1/system/setWirelessLan
    (URI)
    Example Request           {
    (json)                        "ssid":"AP1-2.4GHz",
                                  "type":"wpa2-psk(aes)",
                                  "key":"abadcafe",
                                  "dhcp":false,
                                  "ip_address":"192.168.0.11",
                                  "subnet_mask":"255.255.255.0",
                                  "default_gateway":"192.168.0.1",
                                  "dns_server_1":"192.168.0.1",
                                  "dns_server_2":"0.0.0.0"
                              }
  Response Parameters
    name               type                 description
    response_code      integer              0: Successful request / Others: Error
                                            Refer to “Response Code List” for details
    Example Response          {
                                  "response_code":0
                              }
4.6. setWirelessDirect
  For setting Wireless Network (Wireless Direct). Network connection is switched to wireless
  (Wireless Direct) by using this API. If no parameter is specified, current parameter is used. If set
  parameter is incomplete, it is possible not to provide network avalability.
  Request Parameters
    name           type                  required       description
    type           string                no             Specifies wireless encryption protocol
                                                        Values: "none" / "wpa2-psk(aes)"
    key            string                no             Specifies encryption key (printable ASCII (0x20-0x7E) within 64
                                                        characters). This value is invalid when type "none" is specified.
    URI                          <BaseURL>/v1/system/setWirelessDirect
    Method                       POST
    Example Request              http://{host}/YamahaExtendedControl/v1/system/setWirelessDirect
    (URI)
    Example Request              {
    (json)                           "type":"wpa2-psk(aes)",
                                     "key":"abadcafe"
                                 }
  Response Parameters
    name                  type                description
    response_code         integer             0: Successful request / Others: Error
                                              Refer to “Response Code List” for details
    Example Response             {
                                     "response_code":0
                                 }
4.7. setIpSettings
  For setting IP. This API only set IP as maintain same network connection status (Wired/Wireless
  Lan/Wireless Direct/Extend). If no parameter is specified, current parameter is used. If set
  parameter is incomplete, it is possible not to provide network avalability.
  Request Parameters
    name                  type                required      description
    dhcp                  string              no            Specifies DHCP setting
    ip_address            string              no            Specifies IP Address
    subnet_mask           string              no            Specifies Subnet Mask
    default_gateway       string              no            Specifies Default Gateway
    dns_server_1          string              no            Specifies DNS Server 1
    dns_server_2          string              no            Specifies DNS Server 2
    URI                          <BaseURL>/v1/system/setIpSettings
    Method                       POST
    Example Request              http://{host}/YamahaExtendedControl/v1/system/setIpSettings
    (URI)
    Example Request            {
    (json)                         "dhcp":false,
                                   "ip_address":"192.168.0.11",
                                   "subnet_mask":"255.255.255.0",
                                   "default_gateway":"192.168.0.1",
                                   "dns_server_1":"192.168.0.1",
                                   "dns_server_2":"0.0.0.0"
                               }
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
4.8. setNetworkName
  Request Parameters
    name         type                  required     description
    name         string                yes          Specifies Network Name. Specifiable up to 32 characters.
    URI                        <BaseURL>/v1/system/setNetworkName
    Method                     POST
    Example Request            http://{host}/YamahaExtendedControl/v1/system/setNetworkName
    (URI)
    Example Request            {
    (json)                         "name":"Yamaha AVR"
                               }
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
4.9. setAirPlayPin
  For setting AirPlay PIN. This is valid only when “airplay” exists in “func_list” found in
  /system/getFuncStatus.
  Request Parameters
Copyright  2016 Yamaha Corporation, ALL rights reserved.                                           Page 19 of 104
Yamaha Extended Control API Specification (Basic)
    URI                         <BaseURL>/v1/system/setAirPlayPin
    Method                      POST
    Example Request             http://{host}/YamahaExtendedControl/v1/system/setAirPlayPin
    (URI)
    Example Request             {
    (json)                          "pin":"abc123"
                                }
  Response Parameters
    name                type                   description
    response_code       integer                0: Successful request / Others: Error
                                               Refer to “Response Code List” for details
    Example Response            {
                                    "response_code":0
                                }
4.10. getMacAddressFilter
  Request Parameters
    URI                         <BaseURL>/v1/system/getMacAddressFilter
    Method                      GET
    Example Request             http://{host}/YamahaExtendedControl/v1/system/getMacAddressFilter
  Response Parameters
    name                  type                   description
    response_code         integer                0: Successful request / Others: Error
                                                 Refer to “Response Code List” for details
    filter                boolean                Returns whether or not Filter is valid
    address_1             string                 Returns MAC Address [1] (12 digit ASCII)
    ...                   ...                    ...
    address_10            string                 Returns MAC Address [10] (12 digit ASCII)
    Example Response            {
                                    "response_code":0,
                                    "filter":true,
                                    "address_1":"00A0DE1BFFFA",
                                    "address_2":"00A0DE1BFFFB",
                                    "address_3":"00A0DE1BFFFC",
                                    "address_4":"00A0DE1BFFFD",
                                    "address_5":"00A0DE1BFFFE",
                                    "address_6":"000000000000",
                                   "address_7":"000000000000",
                                   "address_8":"000000000000",
                                   "address_9":"000000000000",
                                   "address_10":"00A0DE1BFFFF"
                               }
4.11. setMacAddressFilter
  Request Parameters
    name         type                   required       description
    filter       boolean                no             Specifies valid/invalid setup of Filter
    address_1    string                 no             Specifies MAC Address [1] (12 digit ASCII)
    ...          ...                    ...            ...
    address_10   string                 no             Specifies MAC Address [10] (12 digit ASCII)
    URI                        <BaseURL>/v1/system/setMacAddressFilter
    Method                     POST
    Example Request            http://{host}/YamahaExtendedControl/v1/system/setMacAddressFilter
    (URI)
    Example Request            {
    (json)                         "filter":true,
                                   "address_1":"00A0DE1BFFFA",
                                   "address_2":"00A0DE1BFFFB",
                                   "address_3":"00A0DE1BFFFC",
                                   "address_10":"00A0DE1BFFFF"
                               }
  Response Parameters
    name                type                  description
    response_code       integer               0: Successful request / Others: Error
                                              Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
4.12. getNetworkStandby
  Request Parameters
    URI                        <BaseURL>/v1/system/getNetworkStandby
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/system/getNetworkStandby
Response Parameters
    Example Response           {
                                   "response_code":0,
                                   "network_standby":"auto"
                               }
4.13. setNetworkStandby
  Request Parameters
    name         type                  required      description
    standby      string                yes           Specifies setup of Network Standby. "auto" is available only when
                                                     "network_standby_auto" exists in system - func_list under
                                                     /system/getFeatures
                                                     Values: "off" / "on" / "auto"
    URI                        <BaseURL>/v1/system/setNetworkStandby?standby=<standby>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/system/setNetworkStandby?standby=on
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
4.14. getBluetoothInfo
  For retrieving setup/information of Bluetooth. Parameters are readable only when corresponding
  functions are available in “func_list” of /system/getFuncStatus. “bluetooth_device” parameter is
  contained in “bluetooth_tx_setting”.
  Request Parameters
    URI                        <BaseURL>/v1/system/getBluetoothInfo
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/system/getBluetoothInfo
  Response Parameters
Copyright  2016 Yamaha Corporation, ALL rights reserved.                                             Page 22 of 104
Yamaha Extended Control API Specification (Basic)
    Example Response             {
                                     "response_code":0,
                                     "bluetooth_standby":true,
                                     "bluetooth_tx_setting":true,
                                     "bluetooth_device":{
                                         "connected":true,
                                         "name":"Yamaha Headphone",
                                         "type":"headphone",
                                         "address":"C259197BD6F5"
                                     }
                                 }
4.15. setBluetoothStandby
  Request Parameters
    name           type                    required      description
    enable         boolean                 yes           Specifies Bluetooth Standby setting
    URI                          <BaseURL>/v1/system/setBluetoothStandby?enable=<enable>
    Method                       GET
    Example Request              http://{host}/YamahaExtendedControl/v1/system/setBluetoothStandby?enable=true
  Response Parameters
    name                  type                   description
    response_code         integer                0: Successful request / Others: Error
                                                 Refer to “Response Code List” for details
    Example Response             {
                                     "response_code":0
                                 }
4.16. setBluetoothTxSetting
  Request Parameters
    name          type                    required      description
    enable        boolean                 yes           Specifies Bluetooth transmission setting
    URI                         <BaseURL>/v1/system/setBluetoothTxSetting?enable=<enable>
    Method                      GET
    Example Request             http://{host}/YamahaExtendedControl/v1/system/setBluetoothTxSetting?enable=true
  Response Parameters
    name                 type                   description
    response_code        integer                0: Successful request / Others: Error
                                                Refer to “Response Code List” for details
    Example Response            {
                                    "response_code":0
                                }
4.17. getBluetoothDeviceList
  For retrieving Bluetooth (Sink) device list. This API is available only when “bluetooth_tx_setting”
  is true under /system/getFuncStatus.
  This device list information is in the cach. If update device list information, excute
  /system/updateBluetoothDeviceList.
  Request Parameters
    URI                         <BaseURL>/v1/system/getBluetoothDeviceList
    Method                      GET
    Example Request             http://{host}/YamahaExtendedControl/v1/system/getBluetoothDeviceList
  Response Parameters
    name                 type                   description
    response_code        integer                0: Successful request / Others: Error
                                                Refer to “Response Code List” for details
    updating             boolean                Returns whether or not device list is being updated. Returns true while
                                                device list is being updated via /system/updateBluetoothDeviceList
    device_list          array                  Returns Bluetooth device list
    |-- name             string                 Returns device name (max size is 128 bytes).
    |-- type             string                 Returns type of device.
                                                Values: "loudspeaker" / "headphone" / "handsfree_device" / "unknown"
    |- address           string                 Returns BT address (12-digit hex)
    Example Response            {
                                    "response_code":0,
                                    "updating":false,
                                    "device_list":[
                                      {
                                          "name":"Yamaha Speaker",
                                          "type":"loudspeaker",
                                             "address":"9AF2B8CE1580"
                                       },
                                       ...
                                       {
                                             "name":"Yamaha Headphone",
                                             "type":"headphone",
                                             "address":"C259197BD6F5"
                                       }
                                   ]
                               }
4.18. updateBluetoothDeviceList
  For updating Bluetooth (Sink) device list. This API is available only when “bluetooth_tx_setting”
  is true under /system/getFuncStatus.
  Retrieve update status and list information after finish updating via
  /system/getBluetoothDeviceList.
  Request Parameters
    URI                        <BaseURL>/v1/system/updateBluetoothDeviceList
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/system/updateBluetoothDeviceList
  Response Parameters
    name                type                       description
    response_code       integer                    0: Successful request / Others: Error
                                                   Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
4.19. connectBluetoothDevice
  For connecting Bluetooth (Sink) device. This API is available only when “bluetooth_tx_setting” is
  true under /system/getFuncStatus.
  It is possible to take time to return this API response issued after connection status is fixed.
  Request Parameters
    name         type                        required     description
    address      string                      yes          Specifies Bluetooth address
    URI        <BaseURL>/v1/system/connectBluetoothDevice?address=<address>
    Method     GET
    Example    http://{host}/YamahaExtendedControl/v1/system/connectBluetoothDevice?address=C259197BD6F5
    Request
  Response Parameters
    name                type                       description
Copyright  2016 Yamaha Corporation, ALL rights reserved.                                      Page 25 of 104
Yamaha Extended Control API Specification (Basic)
    Example Response          {
                                  "response_code":0
                              }
4.20. disconnectBluetoothDevice
  For disconnecting Bluetooth (Sink) device. This API is available only when “bluetooth_tx_setting”
  is true under /system/getFuncStatus.
  This API response is issued immediately after disconnect request is accepted.
  Request Parameters
    URI                       <BaseURL>/v1/system/disconnectBluetoothDevice
    Method                    GET
    Example Request           http://{host}/YamahaExtendedControl/v1/system/disconnectBluetoothDevice
  Response Parameters
    name               type                description
    response_code      integer             0: Successful request / Others: Error
                                           Refer to “Response Code List” for details
    Example Response          {
                                  "response_code":0
                              }
4.21. getFuncStatus
  For retrieving setup/information of overall system function. Parameters are readable only when
  corresponding functions are available in “func_list” of /system/getFeatures
  Request Parameters
    URI                       <BaseURL>/v1/system/getFuncStatus
    Method                    GET
    Example Request           http://{host}/YamahaExtendedControl/v1/system/getFuncStatus
  Response Parameters
    name                   type                description
    response_code          integer             0: Successful request / Others: Error
                                               Refer to “Response Code List” for details
    auto_power_standby     boolean             Returns whether or not Auto Power Standby is enabled
    ir_sensor              boolean             Returns whether or not IR sensor is available
    speaker_a              boolean             Returns whether or not Speaker A is available
    speaker_b              boolean             Returns whether or not Speaker B is available
    headphone              boolean             Returns whether or not headphone is connected
    dimmer                 integer             Returns Dimmer setting number. Returns -1 if it’s Auto Dimmer, and
                                               0 or higher if its’ manual setup
    zone_b_volume_sync      boolean               Returns whether Zone B volume sync Zone A volume or not.
    hdmi_out_1              boolean               Returns output setting of HDMI OUT 1 terminal
    hdmi_out_2              boolean               Returns output setting of HDMI OUT 2 terminal
    Example Response           {
                                   "response_code":0,
                                   "auto_power_standby":false,
                                   "ir_sensor":false,
                                   "speaker_a":true,
                                   "speaker_b":false,
                                   "headphone":false,
                                   "dimmer":3,
                                   "zone_b_volume_sync":false
                                   "hdmi_out_1":true,
                                   "hdmi_out_2":false
                               }
4.22. setAutoPowerStandby
  For setting Auto Power Standby status. Actual operations/reactions of enabling Auto Power
  Standby depend on each Device
  Request Parameters
    name         type                  required         description
    enable       boolean               yes              Specifies Auto Power Standby status
    URI                        <BaseURL>/v1/system/setAutoPowerStandby?enable=<enable>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/system/setAutoPowerStandby?enable=true
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
4.23. setIrSensor
  Request Parameters
    name         type                  required         description
    enable       boolean               yes              Specifies setting of IR sensor
URI <BaseURL>/v1/system/setIrSensor?enable=<enable>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/system/setIrSensor?enable=true
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
4.24. setSpeakerA
  Request Parameters
    name         type                  required     description
    enable       boolean               yes          Specifies Speaker A status
    URI                        <BaseURL>/v1/system/setSpeakerA?enable=<enable>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/system/setSpeakerA?enable=true
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
4.25. setSpeakerB
  Request Parameters
    name         type                  required     description
    enable       boolean               yes          Specifies Speaker B status
    URI                        <BaseURL>/v1/system/setSpeakerB?enable=<enable>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/system/setSpeakerB?enable=true
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
    Example Response           {
                                   "response_code":0
                               }
4.26. setDimmer
  Request Parameters
    name         type                  required     description
    value        integer               yes          Setting Dimmer. Specifies -1 in case of auto setting.
                                                    Specifies 0 or more than 0 in case of manual setting.
                                                    Auto setting is available only when -1 is exists in vale range under
                                                    /system/getFeatures.
                                                    Value Range: calculated by minimum/maximum/step values gotten
                                                    via /system/getFeatures
    URI                  <BaseURL>/v1/system/setDimmer?value=<value>
    Method               GET
    Example Request      http://{host}/YamahaExtendedControl/v1/system/setDimmer?value=3
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
4.27. setZoneBVolumeSync
  Request Parameters
    name         type                  required     description
    enable       boolean               yes          Specifies whether or not Zone B volume sync Zone A volume.
    URI                  <BaseURL>/v1/system/setZoneBVolumeSync?enable=<enable>
    Method               GET
    Example Request      http://{host}/YamahaExtendedControl/v1/system/setZoneBVolumeSync?enable=true
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
4.28. setHdmiOut1
  Request Parameters
    name         type                  required     description
    enable       boolean               yes          Specifies HDMI OUT 1 terminal output status
    URI                  <BaseURL>/v1/system/setHdmiOut1?enable=<enable>
    Method               GET
    Example Request      http://{host}/YamahaExtendedControl/v1/system/setHdmiOut1?enable=true
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
4.29. setHdmiOut2
  Request Parameters
    name         type                  required     description
    enable       boolean               yes          Specifies HDMI OUT 2 terminal output status
    URI                  <BaseURL>/v1/system/setHdmiOut2?enable=<enable>
    Method               GET
    Example Request      http://{host}/YamahaExtendedControl/v1/system/setHdmiOut2?enable=true
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
4.30. getNameText
  For retrieving text information of Zone, Input, Sound program. If they can be renamed, can
  retrieve text information renamed.
  Request Parameters
    name         type                    required        description
    id           string                  no              Specifies ID. If no ID is specified, retrieve all information of
                                                         Zone, Input, Sound program. Refer to “All ID List” for details
    URI                    <BaseURL>/v1/system/getNameText?id=<id>
    Method                 GET
    Example Request        http://{host}/YamahaExtendedControl/v1/system/getNameText?id=main
    Example Response       {
                               "response_code":0,
                               "zone_list":[
                                    {
                                         "id":"main",
                                         "text":"Living Room"
                                    },
                                    {
                                         "id":"zone2",
                                         "text":"Kitchen"
                                    }
                               ],
                               "input_list":[
                                    {
                                         "id":"hdmi1",
                                         "text":"BD Player"
                                    },
                                    {
                                         "id":"hdmi2",
                                         "text":"HDMI2"
                                    },
Copyright  2016 Yamaha Corporation, ALL rights reserved.                                                     Page 31 of 104
Yamaha Extended Control API Specification (Basic)
                                    ...
                                    {
                                          "id":"spotify",
                                          "text":"Spotify"
                                    }
                               ],
                               "sound_program_list":[
                                    {
                                          "id":"munich",
                                          "text":"Hall_in_Munich"
                                    },
                                    {
                                          "id":"vienna,
                                          "text":"Hall_in_Vienna"
                                    },
                                    ...
                                    {
                                          "id":"straight",
                                          "text":"Straight"
                                    }
                               ]
                           }
    Example Response       {
                               "response_code":0,
                               "id":"hdmi1",
                               "text":"BD Player"
                           }
4.31. setNameText
  Request Parameters
    name         type                     required          description
    id           string                   yes               Specifies ID. Input ID can be specified only when
                                                            " rename_enable " is true under /system/getFeatures.
                                                            Sound Program ID can not be specified.
                                                            Note:
                                                            If "main" is specified, Network Name is overwritten with same
                                                            text information to be acceptable both MusicCast CONTROLLER
    URI                         <BaseURL>/v1/system/setNameText
    Method                      POST
    Example Request             http://{host}/YamahaExtendedControl/v1/system/setNameText
    (URI)
    Example Request             {
    (json)                          "id":"main",
                                    "text":"Living Room"
                                }
  Response Parameters
    name                 type                 description
    response_code        integer              0: Successful request / Others: Error
                                              Refer to “Response Code List” for details
    Example Response            {
                                    "response_code":0
                                }
4.32. getLocationInfo
  Request Parameters
    URI                         <BaseURL>/v1/system/getLocationInfo
    Method                      GET
    Example Request             http://{host}/YamahaExtendedControl/v1/system/getLocationInfo
  Response Parameters
    name                   type                    description
    response_code          integer                 0: Successful request / Others: Error
                                                   Refer to “Response Code List” for details
    id                     string                  Returns Location ID in 32-digit hex
    name                   string                  Returns Location Name
    zone_list              object                  Returns Location setup status of each Zone. Retrievable only when each
                                                   Zone is valid
    |- main                boolean                 Returns whether or not Main Zone Location setup is valid
    |- zone2               boolean                 Returns whether or not Zone2 Location setup is valid
    |- zone3               boolean                 Returns whether or not Zone3 Location setup is valid
    |- zone4               boolean                 Returns whether or not Zone4 Location setup is valid
    stereo_pair_status     string                  Reserved
Example Response {
                                   "response_code":0,
                                   "id":"9A237BF5AB80ED3C7251DFF49825CA42",
                                   "name":"Home",
                                   "zone_list":{
                                        "main":true,
                                        "zone2":true,
                                        "zone3":false
                                   },
                                   "stereo_pair_status":"none"
                               }
4.33. sendIrCode
  For sending specific remote IR code. A Device is operated same as remote IR code reception. But
  continuous IR code cannot be used in this command. Refer to each Device’s IR code list for details
  Request Parameters
    name         type                     required      description
    code         string                   yes           Specifies IR code in 8-digit hex
    URI                        <BaseURL>/v1/system/sendIrCode?code=<code>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/system/sendIrCode?code=7F016C13
  Response Parameters
    name                type                    description
    response_code       integer                 0: Successful request / Others: Error
                                                Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
5. Zone
5.1. getStatus
For retrieving basic information of each Zone like power, volume, input and so on
  Request Parameters
    name         type                     required      description
    zone         string                   yes           Specifies target Zone
                                                        Values: "main" / "zone2" / "zone3" / "zone4"
    URI                        <BaseURL>/v1/<zone>/getStatus
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/main/getStatus
  Response Parameters
    name                  type           description
    response_code         integer        0: Successful request / Others: Error
                                         Refer to “Response Code List” for details
    power                 string         Returns power status
                                         Values: "on" / "standby"
    sleep                 integer        Returns Sleep Timer setup value (unit in minutes)
                                         Values: 0 / 30 / 60 / 90 / 120
    volume                integer        Returns volume value
                                         Value Range: calculated by minimum/maximum/step values gotten via
                                         /system/getFeatures
    mute                  boolean        Returns mute status
    max_volume            integer        Returns Max Volume setup
                                         Value Range: calculated by minimum/maximum/step values gotten via
                                         /system/getFeatures
    input                 string         Returns selected Input ID
                                         Values: Input IDs gotten via /system/getFeatures
    distribution_enable   boolean        Returns whether or not current Input is distributable status
    sound_program         string         Returns selected Sound Program ID
                                         Values: Sound Program IDs gotten via /system/getFeatures
    surround_3d           boolean        Returns 3D Surround status
    direct                boolean        Returns Direct status
    pure_direct           boolean        Returns Pure Direct status
    enhancer              boolean        Returns Enhancer status
    tone_control          object         Returns Tone Control status
    |- mode               string         Returns Mode type. Available on API version XXX
                                         Values: what is gotten via /system/getFeatures
    |- bass               integer        Returns Bass status
                                         Value Range: calculated by minimum/maximum/step values gotten via
                                         /system/getFeatures
    |- treble             integer        Returns Treble status
                                         Value Range: calculated by minimum/maximum/step values gotten via
                                         /system/getFeatures
    equalizer             object         Returns Equalizer status
    |- mode               string         Returns Mode type. Available on API version XXX
                                         Values: what is gotten via /system/getFeatures
    |- low                integer        Returns Low status
                                         Value Range: calculated by minimum/maximum/step values gotten via
                                         /system/getFeatures
    |- mid                integer        Returns Mid status
                                         Value Range: calculated by minimum/maximum/step values gotten via
                                         /system/getFeatures
    |- high               integer        Returns High status
                                         Value Range: calculated by minimum/maximum/step values gotten via
                                         /system/getFeatures
    balance               integer        Returns Speaker L/R Balance status. Negative values are for left side,
                                         positive values are for right side balance
    Example Response      {
                              "response_code":0,
                              "power":"on",
                              "sleep":0,
                              "volume":30,
                              "mute":false,
                              "max_volume":100,
                              "input":"pandora",
                              "distribution_enable":true,
                              "sound_program":"chamber",
                              "pure_direct":false,
                              "enhancer":true.
                              "tone_control":{
                                   "bass":0,
                                   "treble":2
                              },
                              "dialogue_level":0.
                              "dialogue_lift":1,
                              "disable_flags":0
                          }
5.2. getSoundProgramList
  For retrieving a list of Sound Program available in each Zone. It is possible for the list contents to
Copyright  2016 Yamaha Corporation, ALL rights reserved.                                               Page 36 of 104
Yamaha Extended Control API Specification (Basic)
be dynamically changed
  Request Parameters
    name         type                        required       description
    zone         string                      yes            Specifies target Zone
                                                            Values: "main" / "zone2" / "zone3" / "zone4"
    URI                        <BaseURL>/v1/<zone>/getSoundProgramList
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/main/getSoundProgramList
  Response Parameters
    name                   type                         description
    response_code          integer                      0: Successful request / Others: Error
                                                        Refer to “Response Code List” for details
    sound_program_list     string array                 Returns a list of selectable sound program
    Example Response           {
                                   "response_code":0,
                                   "sound_program_list":[
                                       "munich",
                                       "vienna",
                                       ...
                                       "straight"
                                   ]
                               }
5.3. setPower
  Request Parameters
    name         type                        required       description
    zone         string                      yes            Specifies target zone. Available for zones with this function
                                                            Values: "main" / "zone2" / "zone3" / "zone4"
    power        string                      yes            Specifies power status
                                                            Values: "on" / "standby" / "toggle"
    URI                        <BaseURL>/v1/<zone>/setPower?power=<power>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/zone3/setPower?power=on
  Response Parameters
    name                type                       description
    response_code       integer                    0: Successful request / Others: Error
                                                   Refer to “Response Code List” for details
xample Response {
                                   "response_code":0
                               }
5.4. setSleep
  Request Parameters
    name         type                  required     description
    zone         string                yes          Specifies target zone. Available for zones with this function
                                                    Values: "main" / "zone2" / "zone3" / "zone4"
    sleep        integer               yes          Specifies Sleep Time (unit in minutes)
                                                    Values: 0 / 30 / 60 / 90 / 120
    URI                        <BaseURL>/v1/<zone>/setSleep?sleep=<sleep>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/main/setSleep?sleep=120
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
5.5. setVolume
  For setting volume in each Zone. Values of specifying range and steps are different. There are
  some Devices that cannot allow this value to be go up to Device’s maximum volume.
  Request Parameters
    name         type                  required     description
    zone         string                yes          Specifies target zone. Available for zones with this function
                                                    Values: "main" / "zone2" / "zone3" / "zone4"
    volume       integer               yes          Specifies volume value
                                                    Value Range: calculated by minimum/maximum/step values gotten
                                                    via /system/getFeatures
                                                           (Available on and after API Version 1.17) "up" / "down"
    step         integer               no           Specifies volume step value if the volume is “up” or “down”. If
                                                    nothing specified, minimum step value is used implicitly.
                                                    (Available on and after API Version 1.17)
                                                    Values: Value range calculated by minimum/maximum/step values
                                                    gotten via /system/getFeatures
    URI                        <BaseURL>/v1/<zone>/setVolume?volume=<volume>&step=<step>
Copyright  2016 Yamaha Corporation, ALL rights reserved.                                               Page 38 of 104
Yamaha Extended Control API Specification (Basic)
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/main/setVolume?volume=50
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
5.6. setMute
  Request Parameters
    name         type                  required     description
    zone         string                yes          Specifies target zone. Available for zones with this function
                                                    Values: "main" / "zone2" / "zone3" / "zone4"
    enable       boolean               yes          Specifying mute status
    URI                        <BaseURL>/v1/<zone>/setMute?enable=<enable>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/main/setMute?enable=false
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
5.7. setInput
  Request Parameters
    name         type                  required     description
    zone         string                yes          Specifies target zone
                                                    Values: "main" / "zone2" / "zone3" / "zone4"
    input        string                yes          Specifies Input ID
                                                    Values: Input IDs gotten via /system/getFeatures
    mode         string                no           Specifies select mode. If no parameter is specified, actions of input
                                                    change depend on a Device’s specification
                                                    Value: "autoplay_disabled" (Restricts Auto Play of Net/USB
    URI         <BaseURL>/v1/<zone>/setInput?input=<input>&mode=<mode>
    Method      GET
    Example     http://{host}/YamahaExtendedControl/v1/main/setInput?input=airplay&mode=autoplay_disabled
    Request
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
5.8. setSoundProgram
  Request Parameters
    name         type                  required     description
    zone         string                yes          Specifies target zone. Available for zones with this function
                                                    Values: "main" / "zone2" / "zone3" / "zone4"
    program      string                yes          Specifies Sound Program ID
                                                    Values: Sound Program IDs gotten via /system/getFeatures
    URI                        <BaseURL>/v1/<zone>/setSoundProgram?program=<program>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/main/setSoundProgram?program=vienna
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
5.9. set3dSurround
  Request Parameters
    name         type                  required     description
    zone         string                yes          Specifies target zone. Available for zones with this function
                                                    Values: "main" / "zone2" / "zone3" / "zone4"
    URI                        <BaseURL>/v1/<zone>/set3dSurround?enable=<enable>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/main/set3dSurround?enable=true
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
5.10. setDirect
  Request Parameters
    name         type                  required     description
    zone         string                yes          Specifies target zone. Available for zones with this function
                                                    Values: "main" / "zone2" / "zone3" / "zone4"
    enable       boolean               yes          Specifies Direct status
    URI                        <BaseURL>/v1/<zone>/setDirect?enable=<enable>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/main/setDirect?enable=true
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
5.11. setPureDirect
  Request Parameters
    name         type                  required     description
    zone         string                yes          Specifies target zone. Available for zones with this function
                                                    Values: "main" / "zone2" / "zone3" / "zone4"
    enable       boolean               yes          Specifies Pure Direct status
    URI                        <BaseURL>/v1/<zone>/setPureDirect?enable=<enable>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/main/setPureDirect?enable=true
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
5.12. setEnhancer
  Request Parameters
    name         type                  required     description
    zone         string                yes          Specifies target zone. Available for zones with this function
                                                    Values: "main" / "zone2" / "zone3" / "zone4"
    enable       boolean               yes          Specifies Enhancer status
    URI                        <BaseURL>/v1/<zone>/setEnhancer?enable=<enable>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/main/setEnhancer?enable=true
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
5.13. setToneControl
For setting Tone Control in each Zone. Values of specifying range and steps are different.
  Request Parameters
    name         type                  required     description
    zone         string                yes          Specifies target zone. Available for zones with this function
                                                    Values: "main" / "zone2" / "zone3" / "zone4"
    mode         string                no           Specifies Mode setting. If no parameter is specified, current Mode
                                                    setting is not changed.
                                                    Regardless of the Mode setting, bass/treble setting can be changed,
                                                    but valid only when Mode setting is "manual".
    URI         <BaseURL>/v1/<zone>/setToneControl?mode=<mode>&bass=<base>&treble=<treble>
    Method      GET
    Example     http://{host}/YamahaExtendedControl/v1/main/setToneControl?mode=manual&bass=5&treble=-2
    Request
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
5.14. setEqualizer
For setting Equalizer in each Zone. Values of specifying range and steps are different.
  Request Parameters
    name         type                  required     description
    zone         string                yes          Specifies target zone. Available for zones with this function
                                                    Values: "main" / "zone2" / "zone3" / "zone4"
    mode         string                no           Specifies Mode setting. If no parameter is specified, current Mode
                                                    setting is not changed.
                                                    Regardless of the Mode setting, low/mid/high setting can be
                                                    changed, but valid only when Mode setting is "manual".
URI <BaseURL>/v1/<zone>/setEqualizer?mode=<mode>&low=<low>&mid=<mid>&high=<high>
    Method       GET
    Example      http://{host}/YamahaExtendedControl/v1/main/setEqualizer?mode=manual&low=3&mid=-2&hig
    Request      h=5
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
5.15. setBalance
For setting L/R Balance in each Zone’s speaker. Values of specifying range and steps are different.
  Request Parameters
    name         type                  required     description
    zone         string                yes          Specifies target zone. Available for zones with this function
                                                    Values: "main" / "zone2" / "zone3" / "zone4"
    value        integer               yes          Specifies L/R Balance value. Negative values are for left side,
                                                    positive values are for right side balance.
                                                    Values: Value range calculated by minimum/maximum/step values
                                                    gotten via /system/getFeatures
    URI                        <BaseURL>/v1/<zone>/setBalance?value=<value>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/main/setBalance?value=5
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
5.16. setDialogueLevel
For setting Dialogue Level in each Zone. Values of specifying range and steps are different.
  Request Parameters
    name         type                  required     description
    zone         string                yes          Specifies target zone. Available for zones with this function
                                                    Values: "main" / "zone2" / "zone3" / "zone4"
    URI                        <BaseURL>/v1/<zone>/setDialogueLevel?value=<value>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/main/setDialogueLevel?value=2
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
5.17. setDialogueLift
For setting Dialogue Lift in each Zone. Values of specifying range and steps are different.
  Request Parameters
    name         type                  required     description
    zone         string                yes          Specifies target zone. Available for zones with this function
                                                    Values: "main" / "zone2" / "zone3" / "zone4"
    value        integer               yes          Specifies Dialogue Lift value
                                                    Values: Value range calculated by minimum/maximum/step values
                                                    gotten via /system/getFeatures
    URI                        <BaseURL>/v1/<zone>/setDialogueLift?value=<value>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/main/setDialogueLift?value=3
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
5.18. setClearVoice
  Request Parameters
    name         type                  required     description
    zone         string                yes          Specifies target zone. Available for zones with this function
                                                    Values: "main" / "zone2" / "zone3" / "zone4"
    enable       boolean               yes          Specifies Clear Voice setting
    URI                        <BaseURL>/v1/<zone>/setClearVoice?enable=<enable>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/main/setClearVoice?enable=false
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
5.19. setSubwooferVolume
  Request Parameters
    name         type                  required     description
    zone         string                yes          Specifies target zone. Available for zones with this function
                                                    Values: "main" / "zone2" / "zone3" / "zone4"
    volume       integer               yes          Specifies volume value
                                                    Values: Value range calculated by minimum/maximum/step values
                                                    gotten via /system/getFeatures
    URI                        <BaseURL>/v1/<zone>/setSubwooferVolume?volume=<volume>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/main/setSubwooferVolume?volume=3
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
5.20. setBassExtension
  Request Parameters
    name         type                  required     description
    zone         string                yes             Specifies target zone. Available for zones with this function
                                                       Values: "main" / "zone2" / "zone3" / "zone4"
    enable       boolean               yes             Specifies Bass Extension setting
    URI                        <BaseURL>/v1/<zone>/setBassExtension?enable=<enable>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/main/setBassExtension?enable=false
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
5.21. getSignalInfo
  Request Parameters
    name         type                  required        description
    zone         string                yes             Specifies target Zone
                                                       Values: "main" / "zone2" / "zone3" / "zone4"
    URI                        <BaseURL>/v1/<zone>/getSignalInfo
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/main/getSignalInfo
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    audio               object               Returns Audio related information
    |- error            integer              Returns error information
                                             Values:
                                             0: No Error
                                             1: Unknown Error
                                             2: Check Cable (USB DAC)
                                             3: Check PC (USB DAC)
                                             4: Disconnected (USB DAC)
    |- format           string               Returns audio format. Returns "" (empty text) in inputs unsupported to
                                             retrieve audio format.
                                             Values: "" / "---" (Unknown) / "Analog" / "Digital / "PCM" / "MPCM" / "WAV"
                                             / "FLAC" / "MP3" / "WMA" / "AAC" / "ALAC" / "AIFF" / "DSD" / "Vorbis" /
                                             "SBC"
    |- fs               string               Returns Fs. Returns "" (empty text) in inputs unsupported to retrieve Fs.
                                               Values: "" / "---" (Unknown) / "Analog" / "8 kHz" / "11.025 kHz" / "12 kHz" /
                                               "16 kHz" / "22.05 kHz" / "24 kHz" / "32 kHz" / "44.1 kHz" / "48 kHz" / "64
                                               kHz" / "88.2 kHz" / "96 kHz" / "128 kHz" / "176.4 kHz" / "192 kHz" / "352.8
                                               kHz" / "384 kHz" / "2.8 MHz" / "5.6 MHz" / "11.2 MHz"
    Example Response           {
                                   "response_code":0,
                                   "audio":{
                                       "error":0,
                                       "format":"FLAC",
                                       "fs":"192 kHz"
                                   }
                               }
5.22. prepareInputChange
  Let a Device do necessary process before changing input in a specific zone. This is valid only
  when “prepare_input_change” exists in “func_list” found in /system/getFuncStatus.
  MusicCast CONTROLLER executes this API when an input icon is selected in a Room, right
  before sending various APIs (of retrieving list information etc.) regarding selecting input
  Request Parameters
    name         type                    required       description
    zone         string                  yes            Specifies target zone
                                                        Values: "main" / "zone2" / "zone3" / "zone4"
    input        string                  yes            Specifies Input ID
                                                        Values: Input IDs gotten via /system/getFeatures
    URI                        <BaseURL>/v1/<zone>/prepareInputChange?input=<input>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/main/prepareInputChange?input=usb
  Response Parameters
    name                type                   description
    response_code       integer                0: Successful request / Others: Error
                                               Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
6. Tuner
6.1. getPresetInfo
  Request Parameters
    name          type                      required       description
    band          string                    yes            Specifying a band. Values depend on Preset Type gotten via
                                                           /system/getFeatures
                                                           Values: "common" (common), "am" / "fm" / "dab" (separate)
    URI                         <BaseURL>/v1/tuner/getPresetInfo?band=<band>
    Method                      GET
    Example Request             http://{host}/YamahaExtendedControl/v1/tuner/getPresetInfo?band=fm
  Response Parameters
    name                 type                     description
    response_code        integer                  0: Successful request / Others: Error
                                                  Refer to “Response Code List” for details
    preset_info          array                    Returns preset information. A number of array elements is to be retrieved
                                                  via /system/getFeature
    |- band              string                   Returns band information. "unknown" when no presets
                                                  Values: "am" / "fm" / "dab" / "unknown"
    |- number            integer                  Returns;
                                                  frequency (unit in kHz) (band = AM or FM)
                                                  Station ID (band = DAB)
                                                  0 when there’s no presets
    |- hd_program        integer                  Reserved
    func_list            string array             Returns a list of valid functions for Preset. (Recall/Store functions are
                                                  always valid without specifically listed here)
                                                  Values: "clear" / "move"
    Example Response            {
                                    "response_code":0,
                                    "preset_info":[
                                      {
                                            "band":"am",
                                            "number":530
                                            "hd_program":0
                                      },
                                      {
                                            "band":"fm",
                                            "number":87500,
                                            "hd_program":0
                                      },
                                      ...
                                      {
                                            "band":"unknown",
                                            "number":0,
Copyright  2016 Yamaha Corporation, ALL rights reserved.                                                  Page 49 of 104
Yamaha Extended Control API Specification (Basic)
                                       "hd_program":0
                                   }
                              ],
                              "func_list":[
                                   "clear",
                                   "move"
                              ]
                          }
6.2. getPlayInfo
  Request Parameters
    URI                   <BaseURL>/v1/tuner/getPlayInfo
    Method                GET
    Example Request       http://{host}/YamahaExtendedControl/v1/tuner/getPlayInfo
  Response Parameters
    name                          type         description
    response_code                 integer      0: Successful request / Others: Error
                                               Refer to “Response Code List” for details
    band                          string       Returns current Band
                                               Values: "am" / "fm" / "dab
    auto_scan                     boolean      Returns Auto Scan (Up or Down) status
    auto_preset                   boolean      Returns Auto Preset execution status
    am                            object       Returns AM related information
    |- preset                     integer      Returns current preset number. 0 when there’s no presets
                                               Values: 0 (no presets), or one in the range gotten via /system/getFeatures
    |- freq                       integer      Returns frequency (unit in kHz)
    |- tuned                      boolean      Returns Tuned status
    fm                            object       Returns FM related information
    |- preset                     integer      Returns current preset number. 0 when there’s no presets
                                               Values: 0 (no presets), or one in the range gotten via /system/getFeatures
    |- freq                       integer      Returns frequency (unit in kHz).
    |- tuned                      boolean      Returns Tuned status
    |- audio_mode                 string       Returns Audio Mode
                                               Values: "mono" / "stereo"
    rds                           object       Returns RDS information. Available only when RDS is valid
    |- program_type               string       Returns Program Type
    |- program_service            string       Returns Program Service
    |- radio_text_a               string       Returns Radio Text A
    |- radio_text_b               string       Returns Radio Text B
    dab                           object       Returns DAB related information. Available only when DAB is valid
    |- preset                     integer      Returns current preset number. 0 when current station is not in presets
                                               Values: 0 (no presets), or one in the range gotten via /system/getFeatures
    |- id                         integer      Returns Station ID
    |- status                     string       Returns DAB status. When it’s in Tune Aid, valid parameters are
    Example Response       {
                               "response_code":0,
                               "band":"fm",
                               "auto_scan":false,
                               "am":{
                                    "preset":8,
                                    "freq":531,
                                    "tuned":true
                               },
                               "fm":{
                                    "preset":0,
                                    "freq":87500,
                                    "tuned":true
                               },
                               "rds":{
                                    "program_type":"Affairs",
                                    "program_service":"RDS PS",
                                    "radio_text_a":"RDS Radio Text A",
                                    "radio_text_b":"RDS Radio Text B"
Copyright  2016 Yamaha Corporation, ALL rights reserved.                                                 Page 51 of 104
Yamaha Extended Control API Specification (Basic)
                                   },
                                   "dab":{
                                        "preset":10,
                                        "id":10000,
                                        "status":"ready",
                                        "freq":22564,
                                        "category":"primary",
                                        "audio_mode":"stereo",
                                        "bit_rate":128,
                                        "quality":90,
                                        "tune_aid":80,
                                        "off_air":false,
                                        "dab_plus":false,
                                        "program_type":"Pop Music",
                                        "ch_label":"12D",
                                        "service_label":"BBC Radio 1",
                                        "dls":"The Chart Game: www.bbc.co.uk/radio2",
                                        "ensemble_label":"BBC Network DAB"
                                   },
                                   "hd_radio":{
                                        "program":1,
                                        "program_list":[
                                             1,
                                             2,
                                             3
                                        ],
                                        "station":"WXYZ-FM",
                                        "category":"Top 40",
                                        "title":"Beat It",
                                        "artist":"Michael Jackson",
                                        "album":"Thriller"
                                   }
                               }
6.3. setBand
  Request Parameters
    name         type                        required      description
    band         string                      yes           Specifies Band
                                                           Values: "am" / "fm" / "dab"
    URI                        <BaseURL>/v1/tuner/setBand?band=<band>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/tuner/setBand?band=fm
  Response Parameters
    name                type                       description
    Example Response           {
                                   "response_code":0
                               }
6.4. setFreq
  Request Parameters
    name         type                  required     description
    band         string                yes          Specifies Band
                                                    Values : "am" / "fm"
    tuning       string                yes          Specifies a tuning method. Use "tp_up" and "tp_down" only when
                                                    Band is RDS
                                                    Values: "up" / "down" / "cancel" / "auto_up" / "auto_down" / "tp_up" /
                                                    "tp_down" / "direct"
    num          integer               no           Specifies frequency (unit in kHz). Valid only when tuning is
                                                    "direct"
    URI             <BaseURL>/v1/tuner/setFreq?band=<band>&tuning=<tuning>&num=<num>
    Method          GET
    Example         http://{host}/YamahaExtendedControl/v1/tuner/setFreq?band=fm&tuning=direct&num=87500
    Request
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
6.5. recallPreset
  Request Parameters
    name         type                  required     description
    zone         string                yes          Specifies station recalling zone. This causes input change in
                                                    specified zone
                                                    Values: "main" / "zone2" / "zone3" / "zone4"
    band         string                yes          Specifies Band type. Depending on Preset Type gotten via
                                                    /system/getFeatures, specifying value is different
                                                    Values: "common" (band common) /       "am" / "fm" / "dab" (separate)
    URI                 <BaseURL>/v1/tuner/recallPreset?zone=<zone>&band=<band>&num=<num>
    Method              GET
    Example             http://{host}/YamahaExtendedControl/v1/tuner/recallPreset?zone=main&band=fm&num=13
    Request
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
6.6. switchPreset
  Request Parameters
    name         type                  required     description
    dir          string                yes          Specifies change direction of preset
                                                    Values: "next" / "previous"
    URI                        <BaseURL>/v1/tuner/switchPreset?dir=<dir>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/tuner/switchPreset?dir=next
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
6.7. storePreset
Request Parameters
    URI                        <BaseURL>/v1/tuner/storePreset?num=<num>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/tuner/storePreset?num=10
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
6.8. clearPreset
  Request Parameters
    name         type                  required     description
    band         string                yes          Specifies Band. Values depend on Preset Type gotten via
                                                    /system/getFeatures
                                                    Values: "common" (common), "am" / "fm" / "dab" (separate)
    num          integer               yes          Specifies Preset number
                                                    Values: one in the range gotten via /system/getFeatures
    URI                        <BaseURL>/v1/tuner/clearPreset?band=<band>&num=<num>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/tuner/clearPreset?band=fm&num=10
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
6.9. startAutoPreset
  For starting Auto Preset. Available only when "fm_auto_preset" exists in tuner - func_list under
  /system/getFeatures.
Request Parameters
    URI                        <BaseURL>/v1/tuner/startAutoPreset?band=<band>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/tuner/startAutoPreset?band=fm
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
6.10. cancelAutoPreset
  For canceling Auto Preset. Available only when "fm_auto_preset" exists in tuner - func_list under
  /system/getFeatures.
  Request Parameters
    name         type                  required     description
    band         string                yes          Specifies Band.
                                                    Value : "fm"
    URI                        <BaseURL>/v1/tuner/cancelAutoPreset?band=<band>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/tuner/cancelAutoPreset?band=fm
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
6.11. movePreset
  Request Parameters
    name         type                  required     description
    band         string               yes          Specifies Band. Values depend on Preset Type gotten via
                                                   /system/getFeatures
                                                   Values: "common" (common), "am" / "fm" / "dab" (separate)
    from         integer              yes          Specifies source preset number
                                                   Values: one in the range gotten via /system/getFeatures
    to           integer              yes          Specifies destination preset number
                                                   Values: one in the range gotten via /system/getFeatures
    URI                       <BaseURL>/v1/tuner/movePreset?band=<band>&from=<from>&to=<to>
    Method                    GET
    Example Request           http://{host}/YamahaExtendedControl/v1/tuner/movePreset?band=am&from=10&to=3
  Response Parameters
    name               type                 description
    response_code      integer              0: Successful request / Others: Error
                                            Refer to “Response Code List” for details
    Example Response          {
                                  "response_code":0
                              }
6.12. startDabInitialScan
  For starting DAB Initial Scan. Available only when " dab_initial_scan " exists in tuner - func_list
  under /system/getFeatures.
  Request Parameters
    URI                       <BaseURL>/v1/tuner/startDabInitialScan
    Method                    GET
    Example Request           http://{host}/YamahaExtendedControl/v1/tuner/startDabInitialScan
  Response Parameters
    name               type                 description
    response_code      integer              0: Successful request / Others: Error
                                            Refer to “Response Code List” for details
    Example Response          {
                                  "response_code":0
                              }
6.13. cancelDabInitialScan
  For canceling DAB Initial Scan. Available only when " dab_initial_scan " exists in tuner - func_list
  under /system/getFeatures.
  Request Parameters
    URI                       <BaseURL>/v1/tuner/cancelDabInitialScan
    Method                    GET
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
6.14. setDabTuneAid
  For executing DAB Tune Aid. Available only when " dab_tune_aid " exists in tuner - func_list
  under /system/getFeatures.
  Request Parameters
    name         type                  required     description
    action       string                yes          Specifies action of Tune Aid. "stop" / "up" / "down" are available
                                                    only when excuting Tuner Aid.
                                                    Values : "start" / "stop" / "up" / "down"
    URI                        <BaseURL>/v1/tuner/setDabTuneAid?action=<action>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/tuner/setDabTuneAid?action=up
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
6.15. setDabService
For selecting DAB Service. Available only when DAB is valid to use
  Request Parameters
    name         type                  required     description
    dir          string                yes          Specifies change direction of services
                                                    Values: "next" / "previous"
    URI                        <BaseURL>/v1/tuner/setDabService?dir=<dir>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/tuner/setDabService?dir=next
  Response Parameters
    name               type                   description
    response_code      integer                0: Successful request / Others: Error
                                              Refer to “Response Code List” for details
    Example Response          {
                                  "response_code":0
                              }
7. Network/USB
Target Inputs: USB / Network related ones (Server / Net Radio / Pandora / Spotify / AirPlay etc.)
7.1. getPresetInfo
For retrieving preset information. Presets are common use among Net/USB related input sources
  Request Parameters
    URI                       <BaseURL>/v1/netusb/getPresetInfo
    Method                    GET
    Example Request           http://{host}/YamahaExtendedControl/v1/netusb/getPresetInfo
  Response Parameters
    name               type                   description
    response_code      integer                0: Successful request / Others: Error
                                              Refer to “Response Code List” for details
    preset_info        array                  Returns preset info. Element number of an array can be gotten via
                                              system/getFeatures
    |- input           string                 Returns Input ID. Returns "unknown" if no presets available
    |- text            string                 Returns text info. Returns "" (empty text) if no presets available
    |- attribute       integer                Reserved
    func_list          string array           Returns a list of valid functions for Preset. (Recall/Store functions are
                                              always valid without specifically listed here)
                                              Values: "clear" / "move"
    Example Response          {
                                  "response_code":0,
                                  "preset_info":[
                                    {
                                         "input":"net_radio",
                                         "text":"CBC Radio Jazz"
                                         "attribute":0
                                    },
                                    {
                                         "input":"pandora",
                                          "text":"Queen Radio"
                                          "attribute":0
                                    },
                                    ...
                                    {
                                          "input":"unknown",
                                          "text":""
                                          "attribute":0
                                    }
                               ],
                               "func_list":[
                                    "clear",
                                    "move"
                               ]
                          }
7.2. getPlayInfo
  Request Parameters
    URI                   <BaseURL>/v1/netusb/getPlayInfo
    Method                GET
    Example Request       http://{host}/YamahaExtendedControl/v1/netusb/getPlayInfo
  Response Parameters
    name                type                      description
    response_code       integer                   0: Successful request / Others: Error
                                                  Refer to “Response Code List” for details
    input               string                    Returns current Net/USB related Input ID
                                                  Refer to “All ID List” for details
    play_queue_type     string                    Reserved
    playback            string                    Returns playback status
                                                  Values: "play" / "stop" / "pause" / "fast_reverse" / "fast_forward"
    repeat              string                    Returns repeat setting status
                                                  Value: "off" / "one" / "all"
    shuffle             string                    Returns shuffle setting status
                                                  Values: "off" / "on" / "songs" / "albums"
    play_time           integer                   Returns current playback time (unit in second). Returns -60000 if
                                                  playback time is invalid
                                                  Value Range: -60000 (invalid) / -59999 ~ 59999 (valid)
    total_time          integer                   Returns total playback time (unit in second). Returns 0 if total time is
                                                  not available or invalid
                                                  Value Range: 0 ~ 59999
    artist              string                    Returns artist name.
                                                  Returns station name if the input is Net Radio / Pandora / radiko.
                                                  Returns station name/artist name if the input is Rhapsody (Radio).
                                                  Returns ad name if Pandora playbacks ad contents.
                                                  If input is MC Link, returns master’s internal content info or Room
Copyright  2016 Yamaha Corporation, ALL rights reserved.                                                    Page 60 of 104
Yamaha Extended Control API Specification (Basic)
    Example Response      {
                              "response_code":0,
                              "input":"usb",
                              "playback":"stop",
                              "repeat":"off",
                              "shuffle":"on",
                              "play_time":200,
                              "total_time":314,
                              "artist":"尾崎豊",
                              "album":"壊れた扉から",
                              "track":"Forget-me-not",
                              "albumart_url":"/YamahaRemoteControl/AlbumART/AlbumART.jpg",
                              " albumart_id":18,
                              "usb_devicetype":"msc",
                              "attribute":511
                          }
7.3. setPlayback
  Request Parameters
    name         type             required        description
    URI                        <BaseURL>/v1/netusb/setPlayback?playback=<playback>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/netusb/setPlayback?playback=stop
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
7.4. setPlayPosition
For setting track play position. This API is available only when input is Server.
  Request Parameters
    name         type                  required     description
    position     integer               yes          Specifies play position (sec)
                                                    Value : no fewer than total_time gotten via getPlayInfo, nor more
                                                    than 0
    URI                        <BaseURL>/v1/netusb/setPlayPosition?position=<position>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/netusb/setPlayPosition?position=123
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
7.5. toggleRepeat
  Request Parameters
    URI                        <BaseURL>/v1/netusb/toggleRepeat
    Method                     GET
  Response Parameters
    name                type                 Description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
7.6. toggleShuffle
  Request Parameters
    URI                        <BaseURL>/v1/netusb/toggleShuffle
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/netusb/toggleShuffle
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
7.7. getListInfo
  For retrieving list information. Basically this info is available to all relevant inputs, not limited to
  or independent from current input
  Request Parameters
    name         type                  required     description
    list_id      string                no           Specifies list ID. If nothing specified, "main" is chosen implicitly
                                                    Values: "main" (common for all Net/USB sources)
                                                           "auto_complete" (Pandora)
                                                           "search_artist" (Pandora)
                                                           "search_track" (Pandora)
    input        string                yes          Specifies target Input ID. Controls for setListControl are to work
                                                    with the input specified here
                                                    Values: Input IDs for Net/USB related sources
    index        integer               no           Specifies the reference index (offset from the beginning of the list).
                                                    Note that this index must be in multiple of 8. If nothing was
                                                    specified, the reference index previously specified would be used
                                                    Values: 0, 8, 16, 24, ..., 64984, 64992
    size         integer               yes          Specifies max list size retrieved at a time
Copyright  2016 Yamaha Corporation, ALL rights reserved.                                               Page 64 of 104
Yamaha Extended Control API Specification (Basic)
                                                  Value Range: 1 - 8
    lang           string            no           Specifies list language. But menu names or text info are not
                                                  always necessarily pulled in a language specified here. If nothing
                                                  specified, English ("en") is used implicitly
                                                  Values: "en" (English)/ "ja" (Japanese)/ "fr" (French)/ "de"
                                                  (German)/ "es" (Spanish)/ "ru" (Russian)/ "it" (Italy)/ "zh" (Chinese)
    URI                        <BaseURL>/v1/netusb/getListInfo?input=<input>&index=<index>&size=<size>&lang
                               =<lang>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/netusb/getListInfo?input=usb&index=32&siz
                               e=8&lang=en
  Response Parameters
    name                type              description
    response_code       integer           0: Successful request / Others: Error
                                          Refer to “Response Code List” for details
                                           Regarding an element with its attributes of b[1] and b[2] both set as 1, it is
                                           valid      to   do   both   layer movement/shift   and   start   playback   by
                                           setListControl. If an element got neither b[1] = 0 nor b[2] = 0, it is
                                           unavailable content so apply appropriate UI reaction like making it
                                           gray-out etc.
    Example Response      {
                              "response_code":0,
                              "menu_layer":3,
                              "max_line":40,
                              "index":32,
                              "playing_index":-1,
                              "menu_name":"The Beatles",
                              "list_info":[
                                {
                                      "text":"Please Please Me",
                                      "attribute":2
                                },
                                {
                                      "text":"With The Beatles",
                                      "attribute":2
                                },
                                ...
                                {
                                      "text":"Hey Jude"
                                      "attribute":20
                                },
                                       {
                                           "text":"Let It Be",
                                           "attribute":20
                                       }
                                   ]
                               }
7.8. setListControl
For control a list. Controllable list info is not limited to or independent from current input
  Request Parameters
    name         type                      required      description
    list_id      string                    no            Specifies list ID. If nothing specified, "main" is chosen implicitly
                                                         Values: "main" (common for all Net/USB sources)
                                                                 "auto_complete" (Pandora)
                                                                 "search_artist" (Pandora)
                                                                 "search_track" (Pandora)
    type         string                    yes           Specifies list transition type. "select" is to enter and get into one
                                                         deeper layer than the current layer where the element specified by
                                                         the index belongs to. "play" is to start playback current index
                                                         element, "return" is to go back one upper layer than current.
                                                         "select" and "play" needs to specify an index at the same time.
                                                         In case to “select” an element with its attribute being "Capable of
                                                         Search", specify search text using setSearchString in advance. (Or
                                                         it is possible to specify search text and move layers at the same
                                                         time by specifying an index in setSearchString)
                                                         Values: "select" / "play" / "return"
    index        integer                   no            Specifies an element position in the list being selected (offset from
                                                         the beginning of the list). This is mandatory to specify if the type is
                                                         "select" or "play"
                                                         Value Range: 0 - 64999
    zone         string                    no            Specifies target zone to playback. In the specified zone, input
                                                         change occurs at the same time of playback.
                                                         This parameter is valid only when type "play" is specified. If
                                                         nothing is specified, "main" is chosen implicitly
                                                         値 : "main" / "zone2" / "zone3" / "zone4"
    URI                        <BaseURL>/v1/netusb/setListControl?list_id=<list_id>&type=<type>&index=<index>
                               &zone=<zone>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/netusb/setListControl?list_id=main&type=pl
                               ay&index=50&zone=main
  Response Parameters
    name                type                     description
    response_code       integer                  0: Successful request / Others: Error
                                                 Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
7.9. setSearchString
  For setting search text. Specifies string executing this API before select an element with its
  attribute being “Capable of Search” or retrieve info about searching list(Pandora).
  Request Parameters
    name         type                 required      description
    list_id      string               no            Specifies list ID. If nothing specified, "main" is chosen implicitly
                                                    Values : "main" (All)
                                                                "auto_complete" (Pandora)
                                                                "search_artist" (Pandora)
                                                                "search_track" (Pandora)
    string       string               yes           Setting search text
    index        integer              no            Specifies an element position in the list being selected (offset from
                                                    the beginning of the list).Valid only when the list_id is "main"
                                                    Specifies index an element with its attribute being "Capable of
                                                    Search" Controls same as setListControl "select" are to work with
                                                    the index an element specified. If no index is specified, non-actions
                                                    of select
                                                    Values : 0 ~ 64999
    URI                        <BaseURL>/v1/netusb/setSearchString
    Method                     POST
    Example Request            http://{host}/YamahaExtendedControl/v1/netusb/setSearchString
    (URI)
    Example Request            {
    (json)                         "list_id":"auto_complete",
                                   "string":"michael"
                               }
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
7.10. recallPreset
  Request Parameters
    name         type                  required      description
Copyright  2016 Yamaha Corporation, ALL rights reserved.                                                Page 68 of 104
Yamaha Extended Control API Specification (Basic)
    zone         string                yes          Specifies station recalling zone. This causes input change in
                                                    specified zone
                                                    Values: "main" / "zone2" / "zone3" / "zone4"
    num          integer               yes          Specifies Preset number
                                                    Value: one in the range gotten via /system/getFeatures
    URI                        <BaseURL>/v1/netusb/recallPreset?zone=<zone>&num=<num>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/netusb/recallPreset?zone=main&num=13
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
7.11. storePreset
  For registering current content to a preset. Presets are common use among Net/USB related
  input sources.
  Request Parameters
    name         type                  required     description
    num          integer               yes          Specifying a preset number
                                                    Value: one in the range gotten via /system/getFeatures
    URI                        <BaseURL>/v1/netusb/storePreset?num=<num>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/netusb/storePreset?num=10
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
7.12. clearPreset
  Request Parameters
    name         type                  required     description
    URI                        <BaseURL>/v1/netusb/clearPreset?num=<num>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/netusb/clearPreset?num=10
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
7.13. movePreset
  Request Parameters
    name         type                  required     description
    from         integer               yes          Specifies source preset number
                                                    Values: one in the range gotten via /system/getFeatures
    to           integer               yes          Specifies destination preset number
                                                    Values: one in the range gotten via /system/getFeatures
    URI                        <BaseURL>/v1/netusb/movePreset?from=<from>&to=<to>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/netusb/movePreset?from=10&to=3
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
7.14. getSettings
  Request Parameters
    URI                        <BaseURL>/v1/netusb/getSettings
    Method                GET
    Example Request       http://{host}/YamahaExtendedControl/v1/netusb/getSettings
  Response Parameters
    name                type                        description
    response_code       integer                     0: Successful request / Others: Error
                                                    Refer to “Response Code List” for details
    qobuz               object                      Returns information related to Qobuz.
                                                    Retrievable only when products are equipped with Qobuz functions.
    |- quality          object                      Returns information related to Streaming Quality
      |- value          string                      Returns current Streaming Quality
                                                    Values: "hr_192_24" (HiRes - 24bits / up to 192kHz)
                                                           "hr_96_24" (HiRes - 24bits / up to 96kHz)
                                                           "cd_44_16" (CD - 16bits / 44.1kHz)
                                                           "mp3_320" (MP3 - 320kbps)
      |- value_list     array                       Returns a list of Streaming Quality available
        |- value        string                      Returns value
                                                    Values: "hr_192_24" / "hr_96_24" / "cd_44_16" / "mp3_320"
        |- attribute    integer                     Returns attribute info. Attributes are expressed as OR of bit field as
                                                    shown below;
b[0] Selectable
    Example Response      {
                               "response_code":0,
                               "qobuz":{
                                   "quality":{
                                       "value":"hr_192_24",
                                       "value_list":[
                                           {
                                                 "value":"hr_192_24",
                                                 "attribute":0
                                           },
                                           ...
                                           {
                                                 "value":"mp3_320",
                                                 "attribute":1
                                           },
                                       ]
                                   }
                               }
                          }
7.15. setQuality
  For setting the reproduction quality of streaming. Refer to available Input/setting value via
  /system/getSetting.
  Request Parameters
Copyright  2016 Yamaha Corporation, ALL rights reserved.                                                 Page 71 of 104
Yamaha Extended Control API Specification (Basic)
    URI                           <BaseURL>/v1/netusb/setQuality?input=<input>&value=<value>
    Method                        GET
    Example Request               http://{host}/YamahaExtendedControl/v1/netusb/setQuality?input=qobuz&value=hr_1
                                  92_24
  Response Parameters
    name                   type                   description
    response_code          integer                0: Successful request / Others: Error
                                                  Refer to “Response Code List” for details
    Example Response              {
                                      "response_code":0
                                  }
7.16. getRecentInfo
For retrieving playback history. History is shared among all Net/USB Input sources.
  Request Parameters
    URI                           <BaseURL>/v1/netusb/getRecentInfo
    Method                        GET
    Example Request               http://{host}/YamahaExtendedControl/v1/netusb/getRecentInfo
  Response Parameters
    name                   type                   description
    response_code          integer                0: Successful request / Others: Error
                                                  Refer to “Response Code List” for details
    recent_info            array                  Returns playback history. Element number of an array can be gotten via
                                                  system/getFeatures
    |- input               string                 Returns Input ID
    |- text                string                 Returns text information
    |- albumart_url        string                 Returns a URL to retrieve album art data. Returns "" (empty text) if no
                                                  URL is available.
    |- play_count          integer                Returns number of playback count. Playback count is cleard when it’s
                                                  cleared in playback history.
    |- attribute           integer                Reserved
    Example Response              {
                                      "response_code":0,
                                      "recent_info":[
                                        {
                                             "input":"net_radio",
                                             "text":"CBC Radio Jazz",
                                             "albumart_url":"http://www.yamaha.com/001.jpg",
                                             "play_count":1,
                                             "attribute":0
                                       },
                                       {
                                             "input":"pandora",
                                             "text":"Queen Radio",
                                             "albumart_url":"http://www.yamaha.com/002.jpg",
                                             "play_count":3,
                                             "attribute":0
                                       },
                                       ...
                                       {
                                             "input":"unknown",
                                             "text":"",
                                             "albumart_url":"",
                                             "play_count":1,
                                             "attribute":0
                                       }
                                   ]
                               }
7.17. recallRecentItem
  Request Parameters
    name         type                        required        description
    zone         string                      yes             Specifies recalling zone. This causes input change in specified zone
                                                             Values: "main" / "zone2" / "zone3" / "zone4"
    num          integer                     yes             Specifies number of memorable playback history.
                                                             Values: one in the range gotten via /system/getFeatures
    URI                    <BaseURL>/v1/netusb/recallRecentItem?zone=<zone>&num=<num>
    Method                 GET
    Example Request        http://{host}/YamahaExtendedControl/v1/netusb/recallRecentItem?zone=main&num=13
  Response Parameters
    name                type                       description
    response_code       integer                    0: Successful request / Others: Error
                                                   Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
7.18. clearRecentInfo
  Request Parameters
    URI                        <BaseURL>/v1/netusb/clearRecentInfo
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/netusb/clearRecentInfo
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
7.19. managePlay
  Request Parameters
    name         type                  required     description
    type         string                yes          Specifies type of special processing
                                                    Vaule:
                                                    "add_bookmark" (Net Radio)
                                                    "add_track" (Rhapsody / Napster / Pandora / JUKE / Qobuz)
                                                    "add_album" (Rhapsody / Napster / JUKE)
                                                    "add_channel_track" (Pandora)
                                                    "add_channel_artist" (Pandora)
                                                    "add_playlist" (Qobuz)
                                                    "thumbs_up" (Pandora)
                                                    "thumbs_down" (Pandora)
                                                    "mark_tired" (Pandora)
    URI        <BaseURL>/v1/netusb/managePlay?type=<type>&timeout=<timeout>
    Method     GET
    Example    http://{host}/YamahaExtendedControl/v1/netusb/managePlay?type=add_bookmark&timeout=5000
    Request
  Response Parameters
    name                type                 description
Copyright  2016 Yamaha Corporation, ALL rights reserved.                                              Page 74 of 104
Yamaha Extended Control API Specification (Basic)
    Example Response        {
                                "response_code":0
                            }
7.20. manageList
  Request Parameters
    name         type               required      description
    list_id      string             no            Specifies list ID. If nothing specified, "main" is chosen implicitly.
                                                  Values : "main" (All)
                                                      "auto_complete" (Pandora)
                                                      "search_artist" (Pandora)
                                                      "search_track" (Pandora)
    type         string             yes           Specifies type of special processing
                                                  Value:
                                                  "add_bookmark" (Net Radio)
                                                  "add_track" (Rhapsody / Napster / JUKE / Qobuz)
                                                  "add_album" (Rhapsody / Napster / JUKE / Qobuz)
                                                  "add_artist" (Qobuz)
                                                  "add_channel" (Rhasody / Napster / Pandora)
                                                  "add_playlist" (Qobuz)
                                                  "remove_bookmark" (Net Radio)
                                                  "remove_track" (Rhapsody / Napster / JUKE / Qobuz)
                                                  "remove_album" (Rhapsody / Napster / JUKE / Qobuz)
                                                  "remove_artist" (Qobuz)
                                                  "remove_channel" (Rhapsody / Napster / Pandora)
                                                  "remove_playlist" (Rhapsody / Napster / Qobuz)
                                                  "end_auto_complete" (Pandora)
    URI                        <BaseURL>/v1/netusb/manageList?list_id=<list_id>&type=<type>&index=<index>&
                               zone=<zone>&bank=<bank>&timeout=<timeout>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/netusb/manageList?list_id=main&type=add
                               _bookmark&index=50&timeout=5000
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
7.21. getPlayDescription
  Request Parameters
    name         type                  required      description
    type         string                yes           Specifies type of special processing
                                                     Value : "why_this_song" (Pandora)
    timeout      integer               yes           Specifies timeout duration(ms) for this API process. If specifies 0,
                                                     treat as maximum vale
                                                     Value: 0 ~ 60000
    URI                        <BaseURL>/v1/netusb/getPlayDescription?type=<type>&timeout=<timeout>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/netusb/getPlayDescription?type=why_this_s
                               ong&timeout=5000
  Response Parameters
Copyright  2016 Yamaha Corporation, ALL rights reserved.                                                 Page 76 of 104
Yamaha Extended Control API Specification (Basic)
    Example Response            {
                                    "response_code":0,
                                    "description":"Based on what you've told us so far, we're playing Sanctuary (Closing)
                                by Utad because if features mellow rock instrumentation, electronica influences,
                                interweaving vocal harmony, extensive vamping and acoustic rhythnm piano."
                                }
7.22. setListSortOption
For setting List sorting method. Retrieve List information via /netusb/getListInfo after setting.
  Request Parameters
    name          type                  required     description
    input         string                yes          Specifies target Input ID. Controls for setListControl are to work
                                                     with the input specified here
                                                     Value : "pandora"
    type          string                yes          Specifies sorting method
                                                     Value : "date" : date created (Pandora)
                                                            "alphabet" : alphabetically (Pandora)
    URI                         <BaseURL>/v1/netusb/setListSortOption?input=<input>&type=<type>
    Method                      GET
    Example Request             http://{host}/YamahaExtendedControl/v1/netusb/setListSortOption?input=pandora&t
                                ype=date
  Response Parameters
    name                 type                 description
    response_code        integer              0: Successful request / Others: Error
                                              Refer to “Response Code List” for details
    Example Response            {
                                    "response_code":0
                                }
7.23. getAccountStatus
  Request Parameters
    URI           <BaseURL>/v1/netusb/getAccountStatus
    Method        GET
    Example       http://{host}/YamahaExtendedControl/v1/netusb/getAccountStatus
    Request
  Response Parameters
    name                 type                  description
    response_code        integer               0: Successful request / Others: Error
                                               Refer to “Response Code List” for details
    service_list         array                 Returns a list of Streaming Service
    |- id                string                Returns current Input ID
                                               Refer to “All ID List” for details
    |- registered        boolean               Returns whether account registed on device correctly. If input is Pandora,
                                               returns “false” if no registed account or not select to use registed account.
    |- login_status      string                Returns login status
                                               Value :
                                               "logged_in" (All)
                                               "logged_out" (All)
                                               "access_error" (All)
                                               "password_changed" (Rhapsody / Napster / SiriusXM)
                                               "account_expired" (Rhapsody / Napster / JUKE)
                                               "invalid_account" (Rhapsody / Napster / Spotify)
                                               "suspended_account" (Pandora / Spotify)
    Example Response        {
                                "response_code":0,
                                "service_list":[
                                   {
                                         "id":"rhapsody",
                                         "registered":true,
                                         "login_status":"logged_in",
                                         "username":"user1",
                                         "type":"formal",
                                         "trial_time_left":0
                                   },
                                   {
                                         "id":"siriusxm",
                                         "registered":true,
                                         "login_status":"logged_in",
                                         "username":"",
                                         "type":"trial",
                                         "trial_time_left":7
                                   },
                                   ...
                                   {
                                           "id":"qobuz",
                                           "registered":false,
                                           "login_status":"logged_out",
                                           "username":"",
                                           "type":"formal",
                                           "trial_time_left":0
                                       }
                                   ]
                               }
7.24. switchAccount
  Request Parameters
    name         type                      required        description
    input        string                    yes             Specifies target Input ID.
                                                           Value: "pandora"
    index        integer                   yes             Specifies switch account index
                                                           Value : 0 ~ 7 (Pandora)
    timeout      integer                   yes             Specifies timeout duration(ms) for this API process. If specifies 0,
                                                           treat as maximum value.
                                                           Value: 0 ~ 60000
    URI          <BaseURL>/v1/netusb/switchAccount?input=<input>&index=<index>&timeout=<timeout>
    Method       GET
    Example      http://{host}/YamahaExtendedControl/v1/netusb/switchAccount?input=pandora&index=3&timeou
    Request      t=10000
  Response Parameters
    name                type                     description
    response_code       integer                  0: Successful request / Others: Error
                                                 Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
7.25. getServiceInfo
For retrieving information of various Streaming Service. The combination of Input/Type is available
as follows;
Copyright  2016 Yamaha Corporation, ALL rights reserved.                                                    Page 79 of 104
Yamaha Extended Control API Specification (Basic)
      Input                 Type
      Pandora               Account List (account_list) : retrieving list of account registed on Device
                            Licensing (licensing) : checking license
                            Activation Code (activation_code) : retrieving Activation Code
※Disable to check Rhapsody license by refering the value of this APIs response_code. a
                            Device issues events of netusb – account_updated by condition, retrieve the info excute
                            /netusb/getAccountStatus. (Sometimes Deivice not issue events)
※Before retrieve Activation Code, retrieve Account List and check not to reach Max about
  Request Parameters
    name           type                   required     description
    input          string                 yes          Specifies target Input ID.
                                                       Value: "pandora" / "rhapsody" / "napster"
    type           string                 yes          Specifies type of retrieving info
                                                       Value:
                                                       "account_list" (Pandora)
                                                       "licensing" (Rhapsody / Napster / Pandora)
                                                       "activation_code" (Pandora)
    timeout        integer                yes          Specifies timeout duration(ms) for this API process. If specifies 0,
                                                       treat as maximum value.
                                                       Value: 0 ~ 60000
    URI            <BaseURL>/v1/netusb/getServiceInfo?input=<input>&type=<type>&timeout=<timeout>
    Method         GET
    Example        http://{host}/YamahaExtendedControl/v1/netusb/getServiceInfo?input=pandora&type=account_lis
    Request        t&timeout=10000
    Example Response           {
                                   "response_code":0,
                                   "account_list":[
                                      {
                                          "index":0,
                                          "username":"",
Copyright  2016 Yamaha Corporation, ALL rights reserved.                                                 Page 80 of 104
Yamaha Extended Control API Specification (Basic)
                                        "selected":true
                                  },
                                  ...
                                  {
                                        "index":7,
                                        "username":"",
                                        "selected":false
                                  }
                              ]
                          }
    Example Response      {
                              "response_code":0
                          }
    Example Response      {
                              "response_code":0
                          }
    Example Response          {
                                  "response_code":0,
                                  "url":"http://www.pandora.com/yamaha",
                                  "code":"00000000",
                                  "index":0
                              }
8. CD
8.1. getPlayInfo
  Request Parameters
    URI                       <BaseURL>/v1/cd/getPlayInfo
    Method                    GET
    Example Request           http://{host}/YamahaExtendedControl/v1/cd/getPlayInfo
  Response Parameters
    name               type                   description
    response_code      integer                0: Successful request / Others: Error
                                              Refer to “Response Code List” for details
    device_status      string                 Returns current CD device status
                                              Values: "open" / "close" / "ready" / "not_ready"
    playback           string                 Returns playback status
                                              Values: "play" / "stop" / "pause" / "fast_reverse" / "fast_forward"
    repeat             string                 Returns repeat setting status
                                              Value: "off" / "one" / "all" / "folder" / "a-b"
    shuffle            string                 Returns shuffle setting status
                                              Values: "off" / "on" / "folder" / "program"
    play_time          integer                Returns current playback time (unit in second).
                                              Value Range: -59999 ~ 59999
    total_time         integer                Returns current track total playback time (unit in second).
                                              Value Range: 0 ~ 59999
    disc_time          integer                Returns CD total playback time (unit in second).
                                              Value Range: 0 ~ 59999
    track_number       integer                Returns track number that is currently in playback. If no track, or
                                              playback status is complete stop, returns -1.
                                              Values: 0 ~ 512
    total_tracks       integer                Returns total track number
                                              Values: 0 ~ 512
    artist             string                 Returns artist name.
    Example Response           {
                                   "response_code":0,
                                   "device_status":"ready",
                                   "playback":"play",
                                   "repeat":"all",
                                   "shuffle":"on",
                                   "play_time":100,
                                   "total_time":300,
                                   "track_number":5,
                                   "total_tracks":13,
                                   "artist":"Mr.Children",
                                   "album":"SUPERMARKET FANTASY",
                                   "track":"GIFT"
                               }
8.2. setPlayback
  Request Parameters
    name         type                  required         description
    playback     string                yes              Specifies playback status
                                                        Values: "play" / "stop" / "pause" / "previous" / "next" /
                                                        "fast_reverse_start" / "fast_reverse_end" / "fast_forward_start" /
                                                        "fast_forward_end" / "track_select "
    num          integer               no               Specifies target track number to playback. This parameter is valid
                                                        only when playback "track_select" is specified.
                                                        Values: 1 ~ 512
    URI                        <BaseURL>/v1/cd/setPlayback?playback=<playback>&num=<num>
    Method                     GET
    Example Request            http://{host}/YamahaExtendedControl/v1/cd/setPlayback?playback=stop
  Response Parameters
    name                type                  description
    response_code       integer               0: Successful request / Others: Error
                                              Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
8.3. toggleTray
  Request Parameters
    URI                       <BaseURL>/v1/cd/toggleTray
    Method                    GET
    Example Request           http://{host}/YamahaExtendedControl/v1/cd/toggleTray
  Response Parameters
    name               type                description
    response_code      integer             0: Successful request / Others: Error
                                           Refer to “Response Code List” for details
    Example Response          {
                                  "response_code":0
                              }
8.4. toggleRepeat
  Request Parameters
    URI                       <BaseURL>/v1/cd/toggleRepeat
    Method                    GET
    Example Request           http://{host}/YamahaExtendedControl/v1/cd/toggleRepeat
  Response Parameters
    name               type                description
    response_code      integer             0: Successful request / Others: Error
                                           Refer to “Response Code List” for details
    Example Response          {
                                  "response_code":0
                              }
8.5. toggleShuffle
  Request Parameters
    URI                       <BaseURL>/v1/cd/toggleShuffle
    Method                    GET
    Example Request           http://{host}/YamahaExtendedControl/v1/cd/toggleShuffle
  Response Parameters
    name               type                description
    response_code      integer             0: Successful request / Others: Error
                                           Refer to “Response Code List” for details
    Example Response          {
                                  "response_code":0
9. Clock
9.1. getSettings
  Request Parameters
    URI                   <BaseURL>/v1/clock/getSettings
    Method                GET
    Example Request       http://{host}/YamahaExtendedControl/v1/clock/getSettings
  Response Parameters
    name                      type        description
    response_code             integer     0: Successful request / Others: Error
                                          Refer to “Response Code List” for details
    auto_sync                 boolean     Returns clock time auto sync setting
    format                    string      Returns format of time display
                                          Values : "12h" (12-hour notation) / "24h" (24-hour notation)
    alarm                     object      Returns information related to alarm function
    |- alarm_on               boolean     Returns alarm function status on/off
    |- volume                 integer     Returns alarm volume value
                                          Vaule Range : calculated by minimum/maximum/step value gotten via
                                          /system/getFeatures "alarm_volume"
    |- fade_interval          integer     Returns alarm fade interval (unit in second)
                                          Vaule Range : calculated by minimum/maximum/step value gotten via
                                          /system/getFeatures "alarm_fade"
    |- fade_type              integer     Returns alarm fade type
                                          Value : one in the range gotten via /system/getFeatures
                                          "alarm_fade_type_num"
    |- mode                   string      Returns alarm mode
                                          Value : one gotten via /system/getFeatures "alarm_mode_list"
    |- repeat                 boolean     Returns repeat setting.This parameter is valid only when alarm mode
                                          "oneday" is specified
    |- oneday                 object      Returns detail information about alarm mode "oneday".
                                          This parameter is valid only when "oneday " exists in alarm mode
      |- enable               boolean     Returns whether or not "oneday" setup is valid
      |- time                 string      Returns alarm start-up time. Format is "hhmm"
                                          Values : hh : 00 ~ 23 (Hour)
                                              mm : 00 ~ 59 (Minute)
      |- beep                 boolean     Returns whether or not beep is valid
      |- playback_type        string      Returns playback type
                                          Value : "resume" / "preset"
      |- resume               object      Returns detail infomarion when resume is specified. This parameter
    Example Response      {
                              "response_code":0,
                              "auto_sync":true,
                              "alarm":{
Copyright  2016 Yamaha Corporation, ALL rights reserved.                                         Page 86 of 104
Yamaha Extended Control API Specification (Basic)
                                       "alarm_on":true,
                                       "volume":40,
                                       "fade_interval":180,
                                       "fade_type":1,
                                       "mode":"oneday",
                                       "repeat":false,
                                       "oneday":{
                                             "enable":true,
                                             "time":"0730",
                                             "beep":false,
                                             "playback_type":"preset",
                                             "preset":{
                                                   "type":"netusb",
                                                   "num":8,
                                                   "netusb_info":{
                                                       "input":"pandora",
                                                       "text":"Queen Radio"
                                                   }
                                             }
                                       },
                                       ...
                                       "saturday":{
                                             ...
                                       }
                                   }
                               }
9.2. setAutoSync
  For setting clock time auto sync. Available only when "date_and_time" exists in clock - func_list
  under /system/getFeatures.
  Request Parameters
    name         type                        required          description
    enable       boolean                     yes               Specifies whether or not clock auto sync is valid
    URI                  <BaseURL>/v1/clock/setAutoSync?enable=<enable>
    Method               GET
    Example Request      http://{host}/YamahaExtendedControl/v1/clock/setAutoSync?enable=true
  Response Parameters
    name                type                            description
    response_code       integer                         0: Successful request / Others: Error
                                                        Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
9.3. setDateAndTime
  For setting date and clock time. Available only when "date_and_time" exists in clock - func_list
  under /system/getFeatures.
  Request Parameters
    name         type                  required     description
    date_time    string                yes          Specifies date and time set on device.
                                                    Format is "YYMMDDhhmmss".
                                                    Value : YY : 00 ~ 99 (Year / 2000 ~ 2099)
                                                           MM : 01 ~ 12 (Month)
                                                           DD : 01 ~ 31 (Day)
                                                           hh : 00 ~ 23 (Hour)
                                                           mm : 00 ~ 59 (Minute)
                                                           ss : 00 ~ 59 (Second)
    URI                   <BaseURL>/v1/clock/setDateAndTime?date_time=<date_time>
    Method                GET
    Example Request       http://{host}/YamahaExtendedControl/v1/clock/setDateAndTime?date_time=15061022453
                          0
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
    Example Response           {
                                   "response_code":0
                               }
9.4. setClockFormat
  For setting format of time display. Available only when " clock_format " exists in clock - func_list
  under /system/getFeatures.
  Request Parameters
    name         type                  required     description
    format       string                yes          Returns format of time display
                                                    Values : "12h" (12-hour notation) / "24h" (24-hour notation)
    URI                   <BaseURL>/v1/clock/setClockFormat?format=<format>
    Method                GET
    Example Request       http://{host}/YamahaExtendedControl/v1/clock/setClockFormat?format=24h
  Response Parameters
    name                type                 description
    response_code       integer              0: Successful request / Others: Error
                                             Refer to “Response Code List” for details
Copyright  2016 Yamaha Corporation, ALL rights reserved.                                             Page 88 of 104
Yamaha Extended Control API Specification (Basic)
    Example Response      {
                                "response_code":0
                          }
9.5. setAlarmSettings
  Request Parameters
    name               type           required      description
    alarm_on           boolean        no            Specifies alarm function status on/off
    volume             integer        no            Specifies alarm volume value
                                                    Vaule Range : calculated by minimum/maximum/step value
                                                    gotten via /system/getFeatures "alarm_volume"
    fade_interval      integer        no            Specifies alarm fade interval (unit in second)
                                                    Vaule Range : calculated by minimum/maximum/step value
                                                    gotten via /system/getFeatures "alarm_fade"
    fade_type          integer        no            Specifies alarm fade type
                                                    Value : 1 ~ fade_type_max ( value gotten via /system/getFeatures)
    mode               string         no            Specifies alarm mode
                                                    Value : one gotten via /system/getFeatures "alarm_mode_list"
    repeat             boolean        no            Specifies repeat setting.This parameter is valid only when alarm
                                                    mode "oneday" is specified
    detail             object         no            Setting detail information of alarm function
    |- day             string         no            Specifies target date for alarm setting. This parameter is
                                                    specified certainly when set detail parameters.
                                                    Value : "oneday" / "sunday" / "monday" / "tuesday" / "wednesday " /
                                                    "thursday" / "friday" / "saturday"
    |- enable          boolean        no            対象日のアラーム設定の有効/無効を指定します。
    |- time            string         no            Specifies alarm start-up time. Format is "hhmm"
                                                    Values : hh : 00 ~ 23 (Hour)
                                                        mm : 00 ~ 59 (Minute)
    |- beep            boolean        no            Specifies whether or not beep is valid.
    |- playback_type   string         no            Specifies playback type
                                                    Value : "resume" / "preset"
    |- resume          object         no            Specifies detail infomarion when resume is specified.
                                                    This parameter is valid only when playback_type "resume" is
                                                    specified.
      |- input         string         no            Specifies target Input ID to playback.
                                                    No playback when "none" is specified.
                                                    Values :
                                                    Input IDs gotten via /system/getFeatures "alarm_input_list"
    |- preset          object         no            Specifies detail infomarion when preset is specified.
                                                    This parameter is valid only when playback_type "preset" is
                                                    specified.
      |- type          string         no            Specifies preset type
                                                    Values : Type gotten via /system/getFeatures "alarm_preset_list"
      |- num           integer        no            Specifies preset number. Selectable preset number in each preset
Copyright  2016 Yamaha Corporation, ALL rights reserved.                                             Page 89 of 104
Yamaha Extended Control API Specification (Basic)
    URI                       <BaseURL>/v1/clock/setAlarmSettings
    Method                    POST
    Example Request           http://{host}/YamahaExtendedControl/v1/clock/setAlarmSettings
    (URI)
    Example Request           {
    (json)                        "alarm_on":true,
                                  "volume":40,
                                  "fade_interval":180,
                                  "fade_type":1,
                                  "mode":"oneday",
                                  "repeat":false,
                                  "detail":{
                                      "day":"oneday",
                                      "enable":true,
                                      "time":"0730",
                                      "beep":false,
                                      "playback_type":"preset",
                                      "preset":{
                                          "type":"netusb",
                                          "num":8
                                      }
                                  }
                              }
  Response Parameters
    name               type                    description
    response_code      integer                 0: Successful request / Others: Error
                                               Refer to “Response Code List” for details
    Example Response          {
                                  "response_code":0
                              }
In a response contains one of Response Codes listed below. No other data is included to a response if
its response code was other than '0' (Successful request)
    code     description
    0        Successful request
    1        Initializing
    2        Internal Error
    3        Invalid Request (A method did not exist, a method wasn’t appropriate etc.)
    4        Invalid Parameter (Out of range, invalid characters etc.)
    5        Guarded (Unable to setup in current status etc.)
    6        Time Out
    99       Firmware Updating
             (100s are Streaming Service related errors)
    100      Access Error
    101      Other Errors
    102      Wrong User Name
    103      Wrong Password
    104      Account Expired
    105      Account Disconnected/Gone Off/Shut Down
    106      Account Number Reached to the Limit
    107      Server Maintenance
    108      Invalid Account
    109      License Error
    110      Read Only Mode
    111      Max Stations
    112      Access Denied
11. Events
11.1. Outline
  Events are to notify Devices’ status/setup changes immediately to external applications. Events
  are spread out as UDP unicast.
11.2. Conditions
  When a request header from an external application contains fields shown below, a Device issues
  events of status changes. If no event is required, do not include the specified fields:
          X-AppName:MusicCast/XXX
          X-AppPort:YYY
          *Here XXX stands for an application version, YYY shows event receiving port.
          X-AppName:MusicCast/1.40(iOS)
          X-AppPort:41100
  Event notification timeouts in 10 minutes if no further event request is sent from an IP address
  set as event receiving device. If another request is made within 10 minutes of previous request,
  the timeout duration is reset and extended.
  Event receiving port will be overwritten if a different port number is sent as a request by the
  registered device using X-AppPort.
  Event Parameters
    name                           type       Description
    system                         object     Returns System related information
    |- bluetooth_info_updated      boolean    Returns whether or not Bluetooth info has changed. If so, pull
                                              renewed info using /system/getBluetoothInfo
    |- func_status_updated         boolean    Returns whether or not System overall info has changed. If so,
                                              pull renewed info using /system/getFuncStatus
    |- speaker_settings_updated    boolean    Reserved
    |- name_text_updated           boolean    Returns whether or not name text info has changed. If so, pull
                                              renewed info using /system/getNameText .
    |- tag_updated                 boolean    Reserved
    |- location_info_updated       boolean    Returns whether or not Location info has changed. If so, pull
                                              renewed info using /system/getLocationInfo
    |- stereo_pair_info_updated    boolean    Reserved
    main                           object     Returns Main Zone related information
    |- power                       string     Returns power status
                                              Values: "on" / "standby"
    |- input                       string     Returns current Input ID
                                              Values: Input IDs gotten via /system/getFeature
    |- volume                      integer    Returns volume value
                                              Values: Value range calculated by minimum/maximum/step
                                              values gotten via /system/getFeatures
    |- mute                        boolean    Returns mute status
    |- status_updated              boolean    Returns whether or not other info has changed than main zone
                                              power/input/volume/mute status. If so, pull renewed info using
                                              /main/getStatus
    |- signal_info_updated         boolean    Returns whether or not signal info has changed. If so, pull
                                              renewed info using /main/getSignalInfo
    zone2                          object     Returns information related to Zone2. This data format is same as
                                              main zone’s one above.
    zone3                          object     Returns information related to Zone3. This data format is same as
                                              main zone’s one above.
    zone4                          object     Returns information related to Zone4. This data format is same as
                                              main zone’s one above.
    tuner                          object     Returns Tuner related information
    |- play_info_updated           boolean    Returns whether or not playback info has changed. If so, pull
                                              renewed info using /tuner/getPlayInfo
    |- preset_info_updated         boolean    Returns whether or not preset info has changed. If so, pull
                                              renewed info using /tuner/getPresetInfo
    netusb                         object     Returns Net/USB related information
    |- play_error                  integer    Returns error codes happened during playback for displaying
                                              appropriate messages to the external application user interface. If
                                              multiple errors happen at the same time, refer to the value of
                                              multiple_play_errors sent together for proper messaging
                                              Values:
                                              0: No Error
                                              1: Access Error (common for all Net/USB sources)
                                              2: Playback Unavailable (common for all Net/USB sources)
    Event Example          {
                               "system":{
                                    "name_text_updated":true
                               },
                               "main":{
                                    "power":"on",
                                    "input":"siriusxm",
                                    "volume":30,
                                    "mute":false,
                                    "status_updated":true
                               },
                               "zone2":{
                                    "power":"on",
                                    "input":"cd",
                                    "volume":50,
                                    "mute":false
                                    "enhancer":false
                               },
                               "tuner":{
                                    "play_info_updated":false
                               },
                               "netusb":{
                                    "play_error ":0,
                                    "account_updated":true,
                                    "play_time":50,
                                    "trial_status":{
                                         "input":"siriusxm",
                                         "enable":false
                                    },
                                    "trial_time_left":{
                                         "input":"siriusxm",
                                         "time":5
                                     },
                                     "play_info_updated":false,
                                     "list_info_updated":false
                                },
                                "cd":{
                                     "tray_status":"ready",
                                     "play_time":100,
                                     "play_info_updated":false
                                }
                            }
    Type               ID
    Zone               main / zone2 / zone3 / zone4
    Input              cd / tuner / multi_ch / phono / hdmi1 / hdmi2 / hdmi3 / hdmi4 / hdmi5 / hdmi6 / hdmi7 /
                       hdmi8 / hdmi / av1 / av2 / av3 / av4 / av5 / av6 / av7 / v_aux / aux1 / aux2 / aux / audio1 /
                       audio2 / audio3 / audio4 / audio_cd / audio / optical1 / optical2 / optical / coaxial1 / coaxial2 /
                       coaxial / digital1 / digital2 / digital / line1 / line2 / line3 / line_cd / analog / tv / bd_dvd /
                       usb_dac / usb / bluetooth / server / net_radio / rhapsody / napster / pandora / siriusxm /
                       spotify / juke / airplay / radiko / qobuz / mc_link / main_sync / none
    Sound Program      munich_a / munich_b / munich / frankfurt / stuttgart / vienna / amsterdam / usa_a / usa_b /
                       tokyo / freiburg / royaumont / chamber / concert / village_gate / village_vanguard /
                       warehouse_loft / cellar_club / jazz_club / roxy_theatre / bottom_line / arena / sports /
                       action_game / roleplaying_game / game / music_video / music / recital_opera / pavilion /
                       disco / standard / spectacle / sci-fi / adventure / drama / talk_show / tv_program /
                       mono_movie / movie / enhanced / 2ch_stereo / 5ch_stereo / 7ch_stereo / 9ch_stereo /
                       11ch_stereo / stereo / surr_decoder / my_surround / target / straight / off
Note: Rhapsody service name will be changed to Napster. Accordingly, rhapsody input ID will be
      changed to napster input ID.
Target File
  Request
  http://{host}/YamahaExtendedControl/v1/main/prepareInputChange?input=usb
  Response
  {
         "response_code":0
  }
  Request
  http://{host}/YamahaExtendedControl/v1/main/setInput?input=usb&mode=autoplay_disabled
  Response
  {
         "response_code":0
  }
13.1.2. Retrieving list information (In case max line number is less than or equal to 8)
  Use “getListInfo” command to get list information
  Here shows how to get it at the root layer
  Request
  http://{host}/YamahaExtendedControl/v1/netusb/getListInfo?input=usb&index=0&size=8&lang=en
  Response
  {
         "response_code":0,
         "menu_layer":0,
         "max_line":5,
         "index":0,
         "playing_index":-1,
         "menu_name":"USB",
         "list_info":[
             {
                      "text":"FolderA",
                      "":"",
                      "attribute":2
              },
              {
                      "text":"FolderB",
                      "thumbnail":"",
                      "attribute":2                 Capability bit[1]: Select bit equal to 1
              },
              {
                      "text":"File r00",
                      "thumbnail":"",
                      "attribute":4
              },
              {
                      "text":"File r01",
                      "thumbnail":"",
                      "attribute":4
              },
              {
                      "text":"File r02",
                      "thumbnail":"",
                      "attribute":4
              }
         ]
  }
  Request
  http://{host}/YamahaExtendedControl/v1/netusb/setListControl?list_id=main&type=select&index=1
  Response
  {
         "response_code":0
  }
13.1.4. Retrieving list information (In case max line number is more than 8)
  Request
  http://{host}/YamahaExtendedControl/v1/netusb/getListInfo?input=usb&index=0&size=8&lang=en
  Response
  {
         "response_code":0,
         "menu_layer":1,
         "max_line": 10                    Max line number = 10
         "index":0,
         "playing_index":-1,
         "menu_name":"Folder B",
         "list_info":[
                {
                      "text":"File b00",
                      "thumbnail":"",
                      "attribute":4
                },
                {
                      "text":"File b01",
                      "thumbnail":"",
                      "attribute":4
            },
            {
                      "text":"File b02",
                      "thumbnail":"",
                      "attribute":4
                }
            {
                       "text":"File b03",
                       "thumbnail":"",
                       "attribute":4
                  }
              {
                       "text":"File b04",
                       "thumbnail":"",
                       "attribute":4
                  }
              {
                       "text":"File b05",
                       "thumbnail":"",
                       "attribute":4
                  }
              {
                       "text":"File b06",
                       "thumbnail":"",
                       "attribute":4
                  }
              {
                       "text":"File b07",
                       "thumbnail":"",
                       "attribute":4
                  }
          ]
      }
  With this example, max_line is 10 so the remaining information more than line 8 is needed.
  To do so, set “index = 8” in the Request Parameter.
  Request
  http://{host}/YamahaExtendedControl/v1/netusb/getListInfo?input=usb&index=8&size=8&lang=en
  Response
  {
          "response_code":0,
          "menu_layer":1,
          "max_line": 10
          "index":8,                        Offset from the top = 8
          "playing_index":-1,
          "menu_name":"Folder B",
          "list_info":[
                  {
                       "text":"File b08",
                       "thumbnail":"",
                       "attribute":4
                  },
                  {
                       "text":"File b09",
                   "thumbnail":"",
                   "attribute":4
              },                               Capability bit[2]: Play bit equal to 1
          ]
      }
  Request
  http://{host}/YamahaExtendedControl/v1/netusb/setListControl?list_id=main&type=play&index=9
  Response
  {
          "response_code":0
  }
  The File b09 in Folder B is now playback.
  Request
  http://{host}/YamahaExtendedControl/v1/netusb/setListControl
  ?list_id=main&type=return
  Response
  {
          "response_code":0
  }
  *Note
     getListInfo is the only command that blocks other commands execution. It may take up to 30
     seconds to get the whole list information, and all other commands are not accepted all the
     while
Copyright  2016 Yamaha Corporation, ALL rights reserved.                                Page 100 of 104
Yamaha Extended Control API Specification (Basic)
      <manufacturer>Yamaha Corporation</manufacturer>
       See if manufacturer name is “Yamaha Corporation”
      <yamaha:X_device>
        See if there is this Yamaha tag
     <yamaha:X_URLBase>http://192.168.10.103:80/</yamaha:X_URLBase>
       Confirm device’s IP address
     <yamaha:X_yxcControlURL>/YamahaExtendedControl/v1/</yamaha:X_yxcControlURL>
       Check the URL of YXC control
Copyright  2016 Yamaha Corporation, ALL rights reserved.                        Page 101 of 104
Yamaha Extended Control API Specification (Basic)
    </icon>
   <icon>
    <mimetype>image/jpeg</mimetype>
    <width>120</width>
    <height>120</height>
    <depth>24</depth>
    <url>/Icons/120x120.jpg</url>
    </icon>
   <icon>
    <mimetype>image/png</mimetype>
    <width>48</width>
    <height>48</height>
    <depth>24</depth>
    <url>/Icons/48x48.png</url>
    </icon>
   <icon>
    <mimetype>image/png</mimetype>
    <width>120</width>
    <height>120</height>
    <depth>24</depth>
    <url>/Icons/120x120.png</url>
    </icon>
    </iconList>
   <serviceList>
   <service>
    <serviceType>urn:schemas-upnp-org:service:AVTransport:1</serviceType>
    <serviceId>urn:upnp-org:serviceId:AVTransport</serviceId>
    <SCPDURL>/AVTransport/desc.xml</SCPDURL>
    <controlURL>/AVTransport/ctrl</controlURL>
    <eventSubURL>/AVTransport/event</eventSubURL>
    </service>
   <service>
    <serviceType>urn:schemas-upnp-org:service:RenderingControl:1</serviceType>
    <serviceId>urn:upnp-org:serviceId:RenderingControl</serviceId>
    <SCPDURL>/RenderingControl/desc.xml</SCPDURL>
    <controlURL>/RenderingControl/ctrl</controlURL>
    <eventSubURL>/RenderingControl/event</eventSubURL>
    </service>
   <service>
    <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>
    <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>
    <SCPDURL>/ConnectionManager/desc.xml</SCPDURL>
    <controlURL>/ConnectionManager/ctrl</controlURL>
    <eventSubURL>/ConnectionManager/event</eventSubURL>
    </service>
    </serviceList>
    <presentationURL>http://192.168.10.103/</presentationURL>
    </device>
   <yamaha:X_device>
Copyright  2016 Yamaha Corporation, ALL rights reserved.                  Page 102 of 104
Yamaha Extended Control API Specification (Basic)
    <yamaha:X_URLBase>http://192.168.10.103:80/</yamaha:X_URLBase>
   <yamaha:X_serviceList>
   <yamaha:X_service>
  <yamaha:X_specType>urn:schemas-yamaha-com:service:X_YamahaRemoteControl:1</yamaha:X
  _specType>
    <yamaha:X_controlURL>/YamahaRemoteControl/ctrl</yamaha:X_controlURL>
    <yamaha:X_unitDescURL>/YamahaRemoteControl/desc.xml</yamaha:X_unitDescURL>
    </yamaha:X_service>
    <yamaha:X_service>
  <yamaha:X_specType>urn:schemas-yamaha-com:service:X_YamahaExtendedControl:1</yamaha
  :X_specType>
    <yamaha:X_yxcControlURL>/YamahaExtendedControl/v1/</yamaha:X_yxcControlURL>
    <yamaha:X_yxcVersion>0801</yamaha:X_yxcVersion>
    </yamaha:X_service>
    </yamaha:X_serviceList>
    </yamaha:X_device>
    </root>
Copyright  2016 Yamaha Corporation, ALL rights reserved.              Page 103 of 104
Yamaha Extended Control API Specification (Basic)
Revision History
Copyright  2016 Yamaha Corporation, ALL rights reserved. Page 104 of 104