Summary

Sony BRAVIA Professional Display controlled via REST API over HTTP/TCP. Supports power management, audio control, video/screen settings, input routing, and app management. JSON-RPC protocol with authentication levels per endpoint. Port number not stated in source.

Transport

protocols:
  - http
addressing:
  base_url: http://{ip_address}/sony  # inferred from REST API endpoint pattern
auth:
  type: null  # UNRESOLVED: no authentication flow described in source; per-API auth levels observed (none/generic/private)

Traits

- powerable       # setPowerStatus, getPowerStatus present
- queryable       # getPowerStatus, getVolumeInformation, getPlayingContentInfo, etc.
- routable        # setPlayContent, getCurrentExternalInputsStatus, input selection
- levelable       # setAudioVolume, setPictureQualitySettings, setSpeakerSettings

Actions

- id: setPowerStatus
  label: Set Power Status
  kind: action
  params:
    - name: status
      type: boolean
      description: true = power on, false = power off

- id: setPowerSavingMode
  label: Set Power Saving Mode
  kind: action
  params:
    - name: mode
      type: string
      description: "off" | "low" | "high" | "pictureOff"

- id: setAudioVolume
  label: Set Audio Volume
  kind: action
  params:
    - name: target
      type: string
      description: "speaker" | "headphone" | "" (all outputs)
    - name: volume
      type: string
      description: "N" (set to level N), "+N" (increase), "-N" (decrease)

- id: setAudioMute
  label: Set Audio Mute
  kind: action
  params:
    - name: status
      type: boolean
      description: true = mute, false = unmute

- id: setSoundSettings
  label: Set Sound Settings
  kind: action
  params:
    - name: settings
      type: array
      description: Array of target/value pairs (e.g., outputTerminal: speaker)

- id: setSpeakerSettings
  label: Set Speaker Settings
  kind: action
  params:
    - name: settings
      type: array
      description: Array of target/value pairs (tvPosition, subwooferLevel, etc.)

- id: setPlayContent
  label: Play Content
  kind: action
  params:
    - name: uri
      type: string
      description: URI from getContentList (e.g., extInput:hdmi?port=2)

- id: setPictureQualitySettings
  label: Set Picture Quality Settings
  kind: action
  params:
    - name: target
      type: string
      description: "color" | "brightness" | "contrast" | "sharpness" | "pictureMode" | etc.
    - name: value
      type: string
      description: Value to set for target

- id: setSceneSetting
  label: Set Scene Setting
  kind: action
  params:
    - name: value
      type: string
      description: "auto" | "auto24pSync" | "general"

- id: setScreenRotation
  label: Set Screen Rotation
  kind: action
  params:
    - name: rotation
      type: integer
      description: 0 | 90 | 180 | 270

- id: setActiveApp
  label: Launch Application
  kind: action
  params:
    - name: uri
      type: string
      description: Application URI

- id: terminateApps
  label: Terminate All Applications
  kind: action
  params: []

- id: setTextForm
  label: Input Text
  kind: action
  params:
    - name: text
      type: string
      description: Text data encoded by UTF8
    - name: encKey
      type: string
      description: Encryption key (optional, v1.1)

- id: prepareAppUpload
  label: Prepare App Upload
  kind: action
  params: []

- id: installApp
  label: Install Application
  kind: action
  params:
    - name: assetId
      type: string
    - name: afterInstallAction
      type: string
    - name: uri
      type: string

- id: uninstallApp
  label: Uninstall Application
  kind: action
  params:
    - name: packageName
      type: string

- id: setLEDIndicatorStatus
  label: Set LED Indicator Status
  kind: action
  params:
    - name: mode
      type: string
      description: "Demo" | "AutoBrightnessAdjust" | "Dark" | "SimpleResponse" | "Off"
    - name: status
      type: string
      description: "true" | "false" | null

- id: setWolMode
  label: Set Wake-on-LAN Mode
  kind: action
  params:
    - name: enabled
      type: boolean

- id: requestReboot
  label: Reboot Device
  kind: action
  params: []
- id: getSupportedApiInfo
  label: Get Supported API Info
  kind: query
  params:
    - name: services
      type: array
      description: Services to fetch API information; null or empty means all services

- id: getApplicationList
  label: Get Application List
  kind: query
  params: []

- id: getWebAppStatus
  label: Get Web App Status
  kind: query
  params: []

- id: getApplicationStatusList
  label: Get Application Status List
  kind: query
  params: []

- id: getTextForm
  label: Get Text Form
  kind: query
  params:
    - name: encKey
      type: string
      description: Encryption key encrypted by public key; empty string means not encrypted

- id: getSpeakerSettings
  label: Get Speaker Settings
  kind: query
  params:
    - name: target
      type: string
      description: tvPosition | subwooferLevel | subwooferFreq | subwooferPhase | subwooferPower | (empty = all)

- id: getVolumeInformation
  label: Get Volume Information
  kind: query
  params: []

- id: getCurrentExternalInputsStatus
  label: Get Current External Inputs Status
  kind: query
  params: []

- id: getPlayingContentInfo
  label: Get Playing Content Info
  kind: query
  params: []

- id: getContentCount
  label: Get Content Count
  kind: query
  params:
    - name: source
      type: string
      description: Source URI (e.g., extInput:hdmi)
    - name: type
      type: string
      description: Optional content type filter

- id: getContentList
  label: Get Content List
  kind: query
  params:
    - name: uri
      type: string
      description: URI to identify content; null means all contents
    - name: stIdx
      type: integer
      description: Start index (default 0)
    - name: cnt
      type: integer
      description: Max items to return (default 50, max 200)

- id: getSchemeList
  label: Get Scheme List
  kind: query
  params: []

- id: getSourceList
  label: Get Source List
  kind: query
  params:
    - name: scheme
      type: string
      description: Scheme name (e.g., extInput)

- id: getPublicKey
  label: Get Public Key
  kind: query
  params: []

- id: getScreenshot
  label: Get Screenshot
  kind: query
  params:
    - name: plane
      type: string
      description: video | graphics | mixed (default mixed)

- id: getCurrentTime
  label: Get Current Time
  kind: query
  params: []

- id: getNetworkSettings
  label: Get Network Settings
  kind: query
  params:
    - name: netif
      type: string
      description: Network interface (eth0, wlan0, p2p1, or empty string for all)

- id: getInterfaceInformation
  label: Get Interface Information
  kind: query
  params: []

- id: getRemoteDeviceSettings
  label: Get Remote Device Settings
  kind: query
  params:
    - name: target
      type: string
      description: accessPermission | (empty = all settings)

- id: getLEDIndicatorStatus
  label: Get LED Indicator Status
  kind: query
  params: []

- id: getPowerSavingMode
  label: Get Power Saving Mode
  kind: query
  params: []

- id: getPowerStatus
  label: Get Power Status
  kind: query
  params: []

- id: getRemoteControllerInfo
  label: Get Remote Controller Info
  kind: query
  params: []

- id: getSystemInformation
  label: Get System Information
  kind: query
  params: []

- id: getSystemSupportedFunction
  label: Get System Supported Function
  kind: query
  params: []

- id: getWolMode
  label: Get WoL Mode
  kind: query
  params: []

- id: getScreenRotation
  label: Get Screen Rotation
  kind: query
  params: []

- id: getPictureQualitySettings
  label: Get Picture Quality Settings
  kind: query
  params:
    - name: target
      type: string
      description: color | brightness | contrast | sharpness | pictureMode | lightSensor | colorSpace | colorTemperature | autoPictureMode | hdrMode | autoLocalDimming | xtendedDynamicRange | (empty = all)

Feedbacks

- id: powerState
  type: enum
  values: [standby, active]

- id: powerSavingMode
  type: enum
  values: [off, low, high, pictureOff]

- id: volumeInformation
  type: object
  properties:
    - target: string
    - volume: integer
    - mute: boolean
    - maxVolume: integer
    - minVolume: integer

- id: playingContentInfo
  type: object
  properties:
    - uri: string
    - source: string
    - title: string

- id: externalInputsStatus
  type: array
  description: Array of {uri, title, connection, label, icon, status}

- id: systemInformation
  type: object
  properties:
    - product: string
    - language: string
    - model: string
    - serial: string
    - macAddr: string
    - name: string
    - generation: string
    - fwVersion: string  # v1.7+
    - androidOs: string  # v1.7+
    - webAppRuntimeVersion: string  # v1.7+
    - mode: string  # v1.7+

- id: networkSettings
  type: array
  description: Array of {netif, hwAddr, ipAddrV4, ipAddrV6, netmask, gateway, dns}

- id: screenshot
  type: string
  description: Base64 encoded 320x180 JPEG data

- id: publicKey
  type: string
  description: RSA public key for encryption

- id: applicationList
  type: array
  description: Array of {title, uri, icon}

- id: webAppStatus
  type: object
  properties:
    - active: boolean
    - url: string

- id: textInputContent
  type: string
  description: Current software keyboard text input

- id: contentList
  type: array
  description: Array of {uri, title, index} for given source

- id: contentCount
  type: integer
  description: Count of contents in a source

- id: speakerSettings
  type: array
  description: Array of {target, currentValue} for speaker configuration

- id: pictureQualitySettings
  type: array
  description: Array of {target, currentValue, isAvailable, candidate} for picture quality

- id: screenRotation
  type: integer
  description: 0 | 90 | 180 | 270

- id: ledIndicatorStatus
  type: object
  properties:
    - mode: string
    - status: string

- id: wolMode
  type: object
  properties:
    - enabled: boolean

- id: remoteControllerInfo
  type: array
  description: Array of {name, value} IRCC codes

- id: systemSupportedFunction
  type: array
  description: Array of {option, value} (e.g., WOL with MAC address)

- id: currentTime
  type: string
  description: ISO8601 format datetime

- id: wolMode_info
  type: object
  properties:
    - enabled: boolean

Variables

# Audio
- id: audioVolume
  type: integer
  description: Current volume level (0-100)

- id: audioMute
  type: boolean
  description: Current mute state

# Picture
- id: colorSetting
  type: integer
  description: Color saturation (0-100)
- id: brightnessSetting
  type: integer
  description: Luminance level
- id: contrastSetting
  type: integer
  description: Picture white level
- id: sharpnessSetting
  type: integer
  description: Picture detail level

# Speaker position
- id: tvPositionSetting
  type: string
  description: "tableTop" | "wallMount"

Events

# UNRESOLVED: no unsolicited event notifications described in source

Macros

# UNRESOLVED: no multi-step macros described in source

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings or interlock procedures in source

Notes

REST API uses JSON-RPC over HTTP. Base URL pattern: http://{ip}/sony/{service} where service is guide, appControl, audio, avContent, encryption, system, video, or videoScreen. Authentication levels vary by API: none, generic, private. Some APIs (appControl, video, system screenshot) restricted to localhost (127.0.0.1) only per firmware requirements. Power-on only from Sleep mode. Remote start must be enabled in network settings.

Provenance

source_domains:
  - pro-bravia.sony.net
source_urls:
  - https://pro-bravia.sony.net/remote-display-control/rest-api/reference/
  - https://pro-bravia.sony.net/remote-display-control/simple-ip-control/
  - https://pro-bravia.sony.net/remote-display-control/ircc-ip/
  - https://pro-bravia.sony.net/remote-display-control/rest-api/structure/
  - https://pro-bravia.sony.net
retrieved_at: 2026-05-26T10:06:26.601Z
last_checked_at: 2026-06-10T01:27:30.920Z

Verification Summary

verdict: verified
checked_at: 2026-06-10T01:27:30.920Z
matched_actions: 47
action_count: 47
confidence: medium
summary: "All 47 spec action-unit ids are exact JSON-RPC method names present in the source, shapes and param ranges match, and the source contains exactly 47 distinct method names — full bidirectional coverage. (8 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "port number not stated in source — default HTTP port 80 assumed but not confirmed"
- "no authentication flow described in source; per-API auth levels observed (none/generic/private)"
- "no unsolicited event notifications described in source"
- "no multi-step macros described in source"
- "no safety warnings or interlock procedures in source"
- "TCP port number not stated in source"
- "specific firmware version for KDX9500 not confirmed against source"
- "authentication mechanism (PSK/setup) not described in source"

From the AI4AV catalog (https://ai4av.net) · ODbL-1.0