Products

    DEVELOPER RESOURCES

    Neovo Manager REST API

    Connect your platform to Neovo Manager. Explore device information, monitor live status, and integrate remote control into your workflow.

    Getting Started

    Obtain a Provider Key, query the device list, then use deviceId to retrieve device information or send commands.

    Authentication

    All APIs require the header X-Provider-Key. Contact your AG Neovo technical representative to obtain a Provider Key.

    X-Provider-Key: YOUR_PROVIDER_KEY
    The source specification lists the server as http://localhost. A production API URL is not provided. The examples below use https://YOUR_API_HOST as a placeholder.

    API Directory

    MethodFunctionPath
    GETDevice List/api/partner/devices
    GETDevice Details/api/partner/devices/{deviceId}
    GETLive Device Status/api/partner/devices/{deviceId}/status
    POSTSend a Control Command/api/partner/devices/{deviceId}/commands

    Rate Limits

    The source specification lists the following limit for each API: 30 requests / 60 seconds. Exceeding the limit returns HTTP 429. Control commands are not forwarded to the device when rate-limited. The source does not specify how the limit is scoped.

    Notes on the Source Specification

    The control API description states that both successful and failed responses include requestId / commandId, but the original HTTP 429 example contains only message. Both are retained below; confirm the actual behavior with your technical representative.

    The params type is listed as object, but its original example is []. This reference retains that example. The response type for muteStatus is string / null, while setMute accepts a boolean in the request.

    API 01

    Device List

    List devices within the provider’s authorized scope, with search, filters, and pagination.

    List devices within the provider's authorized scope.

    GET/api/partner/devices

    Request Parameters

    LocationNameTypeRequiredDescriptionExample
    querykeywordstringNoFuzzy search by device name/serial number."NVW-100"
    queryorganizationIdintegerNoRestrict the query to a specific organization ID.123
    queryonlineStatusstringNoFilter by online status; accepts only "online" or "offline"."online"
    querymodelNamestringNoFilter by device model."NVW-100"
    querypageintegerNoPage number, starting from 1.1
    querypageSizeintegerNoItems per page, max 100.20
    headerX-Provider-KeystringYes (authentication)Provider Key supplied by AG Neovo."{YOUR_PROVIDER_KEY}"
    Optional GET Request Body Listed in the Source

    The source lists both query parameters and a request body. Both are retained here; confirm the intended integration method with your technical representative.

    FieldTypeRequired¹Description / ConstraintsOriginal Example
    keywordstringNot specifiedMust not be greater than 255 characters.
    "vmqeopfuudtdsufvyvddq"
    organizationIdintegerNot specified
    17
    onlineStatusstringNot specified
    Allowed values: [ "online", "offline" ]
    "offline"
    modelNamestringNot specifiedMust not be greater than 255 characters.
    "qeopfuudtdsufvyvddqam"
    pageintegerNot specifiedMust be at least 1.
    46
    pageSizeintegerNot specifiedMust be at least 1. Must not be greater than 100.
    8

    Request Example

    Illustrative cURL example. Replace YOUR_API_HOST and YOUR_PROVIDER_KEY with your values.

    curl -X GET 'https://YOUR_API_HOST/api/partner/devices?onlineStatus=online&page=1&pageSize=20' \
      -H 'X-Provider-Key: YOUR_PROVIDER_KEY'

    Success Response · HTTP 200

    {
      "error_code": 200,
      "error_msg": "Success",
      "devices": [
        {
          "deviceId": "NVW100-0001",
          "modelName": "NVW-100",
          "onlineStatus": "online",
          "organizationId": 123
        }
      ],
      "total": 1,
      "page": 1,
      "pageSize": 20
    }
    View Success Response Fields
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    200
    error_msgstringNot specified—
    "Success"
    devicesarrayNot specified—
    [ { "deviceId": "NVW100-0001", "modelName": "NVW-100", "onlineStatus": "online", "organizationId": 123 } ]
    devices[].deviceIdstringNot specified—
    "NVW100-0001"
    devices[].modelNamestringNot specified—
    "NVW-100"
    devices[].onlineStatusstringNot specified—
    "online"
    devices[].organizationIdintegerNot specified—
    123
    totalintegerNot specified—
    1
    pageintegerNot specified—
    1
    pageSizeintegerNot specified—
    20

    Error Response · HTTP 400

    Use the error codes below to identify the cause.

    error_codeConditionerror_msg
    90101Missing API keyProvider key required
    90102Invalid API keyInvalid provider key
    90113organizationId out of authorized scopeorganizationId out of provider scope
    90101 · Missing API key
    {
      "error_code": 90101,
      "error_msg": "Provider key required",
      "error_details": null,
      "additional_data": {
        "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
        "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
      }
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    90101
    error_msgstringNot specified—
    "Provider key required"
    error_detailsstring / nullNot specified—
    null
    additional_dataobjectNot specified—
    —
    additional_data.requestIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    additional_data.commandIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    90102 · Invalid API key
    {
      "error_code": 90102,
      "error_msg": "Invalid provider key",
      "error_details": null,
      "additional_data": {
        "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
        "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
      }
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    90102
    error_msgstringNot specified—
    "Invalid provider key"
    error_detailsstring / nullNot specified—
    null
    additional_dataobjectNot specified—
    —
    additional_data.requestIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    additional_data.commandIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    90113 · organizationId out of authorized scope
    {
      "error_code": 90113,
      "error_msg": "organizationId out of provider scope",
      "error_details": null,
      "additional_data": []
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    90113
    error_msgstringNot specified—
    "organizationId out of provider scope"
    error_detailsstring / nullNot specified—
    null
    additional_dataarrayNot specified—
    []

    Error Response · HTTP 429

    Rate limit exceeded (30 requests / 60 seconds)

    error_codeConditionerror_msg
    —Rate limit exceeded (30 requests / 60 seconds)Too Many Attempts.
    429 · Full Response Example and Fields
    {
      "message": "Too Many Attempts."
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    messagestringNot specified—
    "Too Many Attempts."

    ¹ “Not specified” means the source schema does not list the field as required. It does not mean the field can be omitted in every situation. Required params depend on the command.

    API 02

    Device Details

    Retrieve basic information for a single device by its serial number.

    Get detail of a single device.

    GET/api/partner/devices/{deviceId}

    Request Parameters

    LocationNameTypeRequiredDescriptionExample
    pathdeviceIdstringYesDevice serial number."NVW100-0001"
    headerX-Provider-KeystringYes (authentication)Provider Key supplied by AG Neovo."{YOUR_PROVIDER_KEY}"

    Request Example

    Illustrative cURL example. Replace YOUR_API_HOST and YOUR_PROVIDER_KEY with your values.

    curl -X GET 'https://YOUR_API_HOST/api/partner/devices/NVW100-0001' \
      -H 'X-Provider-Key: YOUR_PROVIDER_KEY'

    Success Response · HTTP 200

    {
      "error_code": 200,
      "error_msg": "Success",
      "deviceId": "NVW100-0001",
      "modelName": "NVW-100",
      "onlineStatus": "online",
      "organizationId": 123
    }
    View Success Response Fields
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    200
    error_msgstringNot specified—
    "Success"
    deviceIdstringNot specified—
    "NVW100-0001"
    modelNamestringNot specified—
    "NVW-100"
    onlineStatusstringNot specified—
    "online"
    organizationIdintegerNot specified—
    123

    Error Response · HTTP 400

    Use the error codes below to identify the cause.

    error_codeConditionerror_msg
    90101Missing API keyProvider key required
    90102Invalid API keyInvalid provider key
    90114Device not foundDevice not found
    90103Device out of authorized scopeDevice not in provider scope
    90101 · Missing API key
    {
      "error_code": 90101,
      "error_msg": "Provider key required",
      "error_details": null,
      "additional_data": {
        "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
        "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
      }
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    90101
    error_msgstringNot specified—
    "Provider key required"
    error_detailsstring / nullNot specified—
    null
    additional_dataobjectNot specified—
    —
    additional_data.requestIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    additional_data.commandIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    90102 · Invalid API key
    {
      "error_code": 90102,
      "error_msg": "Invalid provider key",
      "error_details": null,
      "additional_data": {
        "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
        "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
      }
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    90102
    error_msgstringNot specified—
    "Invalid provider key"
    error_detailsstring / nullNot specified—
    null
    additional_dataobjectNot specified—
    —
    additional_data.requestIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    additional_data.commandIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    90114 · Device not found
    {
      "error_code": 90114,
      "error_msg": "Device not found",
      "error_details": null,
      "additional_data": []
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    90114
    error_msgstringNot specified—
    "Device not found"
    error_detailsstring / nullNot specified—
    null
    additional_dataarrayNot specified—
    []
    90103 · Device out of authorized scope
    {
      "error_code": 90103,
      "error_msg": "Device not in provider scope",
      "error_details": null,
      "additional_data": []
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    90103
    error_msgstringNot specified—
    "Device not in provider scope"
    error_detailsstring / nullNot specified—
    null
    additional_dataarrayNot specified—
    []

    Error Response · HTTP 429

    Rate limit exceeded (30 requests / 60 seconds)

    error_codeConditionerror_msg
    —Rate limit exceeded (30 requests / 60 seconds)Too Many Attempts.
    429 · Full Response Example and Fields
    {
      "message": "Too Many Attempts."
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    messagestringNot specified—
    "Too Many Attempts."

    ¹ “Not specified” means the source schema does not list the field as required. It does not mean the field can be omitted in every situation. Required params depend on the command.

    API 03

    Live Device Status

    Read the power, volume, input source, and mute status of a single device.

    Get live status of a single device (power/volume/input source, etc.).

    GET/api/partner/devices/{deviceId}/status

    Request Parameters

    LocationNameTypeRequiredDescriptionExample
    pathdeviceIdstringYesDevice serial number."NVW100-0001"
    headerX-Provider-KeystringYes (authentication)Provider Key supplied by AG Neovo."{YOUR_PROVIDER_KEY}"

    Request Example

    Illustrative cURL example. Replace YOUR_API_HOST and YOUR_PROVIDER_KEY with your values.

    curl -X GET 'https://YOUR_API_HOST/api/partner/devices/NVW100-0001/status' \
      -H 'X-Provider-Key: YOUR_PROVIDER_KEY'

    Success Response · HTTP 200

    {
      "error_code": 200,
      "error_msg": "Success",
      "powerStatus": "on",
      "volume": 50,
      "currentSource": "HDMI1",
      "muteStatus": null
    }
    View Success Response Fields
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    200
    error_msgstringNot specified—
    "Success"
    powerStatusstringNot specified—
    "on"
    volumeintegerNot specified—
    50
    currentSourcestringNot specified—
    "HDMI1"
    muteStatusstring / nullNot specified—
    null

    Error Response · HTTP 400

    Use the error codes below to identify the cause.

    error_codeConditionerror_msg
    90101Missing API keyProvider key required
    90102Invalid API keyInvalid provider key
    90114Device not foundDevice not found
    90103Device out of authorized scopeDevice not in provider scope
    90101 · Missing API key
    {
      "error_code": 90101,
      "error_msg": "Provider key required",
      "error_details": null,
      "additional_data": {
        "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
        "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
      }
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    90101
    error_msgstringNot specified—
    "Provider key required"
    error_detailsstring / nullNot specified—
    null
    additional_dataobjectNot specified—
    —
    additional_data.requestIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    additional_data.commandIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    90102 · Invalid API key
    {
      "error_code": 90102,
      "error_msg": "Invalid provider key",
      "error_details": null,
      "additional_data": {
        "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
        "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
      }
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    90102
    error_msgstringNot specified—
    "Invalid provider key"
    error_detailsstring / nullNot specified—
    null
    additional_dataobjectNot specified—
    —
    additional_data.requestIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    additional_data.commandIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    90114 · Device not found
    {
      "error_code": 90114,
      "error_msg": "Device not found",
      "error_details": null,
      "additional_data": []
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    90114
    error_msgstringNot specified—
    "Device not found"
    error_detailsstring / nullNot specified—
    null
    additional_dataarrayNot specified—
    []
    90103 · Device out of authorized scope
    {
      "error_code": 90103,
      "error_msg": "Device not in provider scope",
      "error_details": null,
      "additional_data": []
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    90103
    error_msgstringNot specified—
    "Device not in provider scope"
    error_detailsstring / nullNot specified—
    null
    additional_dataarrayNot specified—
    []

    Error Response · HTTP 429

    Rate limit exceeded (30 requests / 60 seconds)

    error_codeConditionerror_msg
    —Rate limit exceeded (30 requests / 60 seconds)Too Many Attempts.
    429 · Full Response Example and Fields
    {
      "message": "Too Many Attempts."
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    messagestringNot specified—
    "Too Many Attempts."

    ¹ “Not specified” means the source schema does not list the field as required. It does not mean the field can be omitted in every situation. Required params depend on the command.

    API 04

    Send a Control Command

    Control a single device’s power, volume, mute setting, input source, or reboot it.

    Send a control command to a single device (power/volume/mute/input source/reboot).

    POST/api/partner/devices/{deviceId}/commands

    The response always includes requestId/commandId for tracing, on every success and failure path (including validation errors).

    Request Parameters

    LocationNameTypeRequiredDescriptionExample
    pathdeviceIdstringYesDevice serial number."NVW100-0001"
    headerX-Provider-KeystringYes (authentication)Provider Key supplied by AG Neovo."{YOUR_PROVIDER_KEY}"

    JSON Request Body · Required

    FieldTypeRequired¹Description / ConstraintsOriginal Example
    commandstringRequiredCommand type. Allowed values: powerOn, powerOff, setVolume, setMute, setInputSource, reboot (see DeviceCommandService::SUPPORTED_COMMANDS).
    "powerOn"
    paramsobjectNot specifiedCommand parameters; which fields are required depends on the command type.
    []
    params.volumeintegerNot specifiedVolume level 0-100, used when command=setVolume.
    50
    params.sourcestringNot specifiedInput source name, used when command=setInputSource.
    "HDMI1"
    params.mutebooleanNot specifiedMute on/off, used when command=setMute.
    true

    Command Quick Reference

    commandPurposeparams
    powerOnPower onNot specified
    powerOffPower offNot specified
    setVolumeSet volume{"volume": 50} · Range: 0–100
    setMuteSet mute{"mute": true}
    setInputSourceChange input source{"source": "HDMI1"}
    rebootRebootNot specified

    This quick reference is based on the original field descriptions. Supported input source values depend on the device’s capabilities.

    Request Example

    Illustrative cURL example. Replace YOUR_API_HOST and YOUR_PROVIDER_KEY with your values.

    curl -X POST 'https://YOUR_API_HOST/api/partner/devices/NVW100-0001/commands' \
      -H 'X-Provider-Key: YOUR_PROVIDER_KEY' \
      -H 'Content-Type: application/json' \
      -d '{"command":"setVolume","params":{"volume":50}}'

    Success Response · HTTP 200

    {
      "error_code": 200,
      "error_msg": "Success",
      "responseStatus": 200,
      "responseMsg": "OK",
      "retried": false,
      "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
      "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
    }
    View Success Response Fields
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    200
    error_msgstringNot specified—
    "Success"
    responseStatusintegerNot specified—
    200
    responseMsgstringNot specified—
    "OK"
    retriedbooleanNot specified—
    false
    requestIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    commandIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"

    Error Response · HTTP 400

    Use the error codes below to identify the cause.

    error_codeConditionerror_msg
    2Validation failedInvalid Format
    90101Missing API keyProvider key required
    90102Invalid API keyInvalid provider key
    90114Device not foundDevice not found
    90103Device out of authorized scopeDevice not in provider scope
    90104Unsupported device model (non-NSD series)Model not controllable: LFD-5500
    90105Device has never been pairedDevice not paired
    90106Device offlineDevice offline
    90107Device IP address unknownDevice address unknown
    90108Unsupported commandUnsupported command: foo
    90109Missing or out-of-range command parameterMissing or invalid parameter: volume
    90110Device failed to execute the commandDevice command failed
    90111Timed out waiting for device responseDevice command timeout
    90112Bridge service unreachableBridge service unreachable
    2 · Validation failed
    {
      "error_code": 2,
      "error_msg": "Invalid Format",
      "error_details": {
        "validator_error": {
          "command": [
            "The selected command is invalid."
          ]
        }
      },
      "additional_data": {
        "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
        "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
      }
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    2
    error_msgstringNot specified—
    "Invalid Format"
    error_detailsobjectNot specified—
    —
    error_details.validator_errorobjectNot specified—
    —
    error_details.validator_error.commandarrayNot specified—
    [ "The selected command is invalid." ]
    additional_dataobjectNot specified—
    —
    additional_data.requestIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    additional_data.commandIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    90101 · Missing API key
    {
      "error_code": 90101,
      "error_msg": "Provider key required",
      "error_details": null,
      "additional_data": {
        "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
        "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
      }
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    90101
    error_msgstringNot specified—
    "Provider key required"
    error_detailsstring / nullNot specified—
    null
    additional_dataobjectNot specified—
    —
    additional_data.requestIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    additional_data.commandIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    90102 · Invalid API key
    {
      "error_code": 90102,
      "error_msg": "Invalid provider key",
      "error_details": null,
      "additional_data": {
        "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
        "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
      }
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    90102
    error_msgstringNot specified—
    "Invalid provider key"
    error_detailsstring / nullNot specified—
    null
    additional_dataobjectNot specified—
    —
    additional_data.requestIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    additional_data.commandIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    90114 · Device not found
    {
      "error_code": 90114,
      "error_msg": "Device not found",
      "error_details": null,
      "additional_data": {
        "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
        "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
      }
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    90114
    error_msgstringNot specified—
    "Device not found"
    error_detailsstring / nullNot specified—
    null
    additional_dataobjectNot specified—
    —
    additional_data.requestIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    additional_data.commandIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    90103 · Device out of authorized scope
    {
      "error_code": 90103,
      "error_msg": "Device not in provider scope",
      "error_details": null,
      "additional_data": {
        "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
        "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
      }
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    90103
    error_msgstringNot specified—
    "Device not in provider scope"
    error_detailsstring / nullNot specified—
    null
    additional_dataobjectNot specified—
    —
    additional_data.requestIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    additional_data.commandIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    90104 · Unsupported device model (non-NSD series)
    {
      "error_code": 90104,
      "error_msg": "Model not controllable: LFD-5500",
      "error_details": null,
      "additional_data": {
        "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
        "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
      }
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    90104
    error_msgstringNot specified—
    "Model not controllable: LFD-5500"
    error_detailsstring / nullNot specified—
    null
    additional_dataobjectNot specified—
    —
    additional_data.requestIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    additional_data.commandIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    90105 · Device has never been paired
    {
      "error_code": 90105,
      "error_msg": "Device not paired",
      "error_details": null,
      "additional_data": {
        "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
        "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
      }
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    90105
    error_msgstringNot specified—
    "Device not paired"
    error_detailsstring / nullNot specified—
    null
    additional_dataobjectNot specified—
    —
    additional_data.requestIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    additional_data.commandIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    90106 · Device offline
    {
      "error_code": 90106,
      "error_msg": "Device offline",
      "error_details": null,
      "additional_data": {
        "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
        "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
      }
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    90106
    error_msgstringNot specified—
    "Device offline"
    error_detailsstring / nullNot specified—
    null
    additional_dataobjectNot specified—
    —
    additional_data.requestIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    additional_data.commandIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    90107 · Device IP address unknown
    {
      "error_code": 90107,
      "error_msg": "Device address unknown",
      "error_details": null,
      "additional_data": {
        "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
        "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
      }
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    90107
    error_msgstringNot specified—
    "Device address unknown"
    error_detailsstring / nullNot specified—
    null
    additional_dataobjectNot specified—
    —
    additional_data.requestIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    additional_data.commandIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    90108 · Unsupported command
    {
      "error_code": 90108,
      "error_msg": "Unsupported command: foo",
      "error_details": null,
      "additional_data": {
        "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
        "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
      }
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    90108
    error_msgstringNot specified—
    "Unsupported command: foo"
    error_detailsstring / nullNot specified—
    null
    additional_dataobjectNot specified—
    —
    additional_data.requestIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    additional_data.commandIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    90109 · Missing or out-of-range command parameter
    {
      "error_code": 90109,
      "error_msg": "Missing or invalid parameter: volume",
      "error_details": null,
      "additional_data": {
        "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
        "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
      }
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    90109
    error_msgstringNot specified—
    "Missing or invalid parameter: volume"
    error_detailsstring / nullNot specified—
    null
    additional_dataobjectNot specified—
    —
    additional_data.requestIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    additional_data.commandIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    90110 · Device failed to execute the command
    {
      "error_code": 90110,
      "error_msg": "Device command failed",
      "error_details": {
        "responseMsg": "missing link"
      },
      "additional_data": {
        "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
        "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
      }
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    90110
    error_msgstringNot specified—
    "Device command failed"
    error_detailsobjectNot specified—
    —
    error_details.responseMsgstringNot specified—
    "missing link"
    additional_dataobjectNot specified—
    —
    additional_data.requestIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    additional_data.commandIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    90111 · Timed out waiting for device response
    {
      "error_code": 90111,
      "error_msg": "Device command timeout",
      "error_details": null,
      "additional_data": {
        "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
        "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
      }
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    90111
    error_msgstringNot specified—
    "Device command timeout"
    error_detailsstring / nullNot specified—
    null
    additional_dataobjectNot specified—
    —
    additional_data.requestIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    additional_data.commandIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    90112 · Bridge service unreachable
    {
      "error_code": 90112,
      "error_msg": "Bridge service unreachable",
      "error_details": {
        "reason": "Connection timed out"
      },
      "additional_data": {
        "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
        "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
      }
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    error_codeintegerNot specified—
    90112
    error_msgstringNot specified—
    "Bridge service unreachable"
    error_detailsobjectNot specified—
    —
    error_details.reasonstringNot specified—
    "Connection timed out"
    additional_dataobjectNot specified—
    —
    additional_data.requestIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"
    additional_data.commandIdstringNot specified—
    "b3cecfb9-1234-4a5e-8b6c-000000000000"

    Error Response · HTTP 429

    Rate limit exceeded (30 requests / 60 seconds); the command is not forwarded to the device

    error_codeConditionerror_msg
    —Rate limit exceeded (30 requests / 60 seconds); the command is not forwarded to the deviceToo Many Attempts.
    429 · Full Response Example and Fields
    {
      "message": "Too Many Attempts."
    }
    FieldTypeRequired¹Description / ConstraintsOriginal Example
    messagestringNot specified—
    "Too Many Attempts."

    ¹ “Not specified” means the source schema does not list the field as required. It does not mean the field can be omitted in every situation. Required params depend on the command.

    View the Complete OpenAPI Specification (English Translation)
    {
      "openapi": "3.0.3",
      "info": {
        "title": "Laravel API Documentation",
        "description": "",
        "version": "1.0.0"
      },
      "servers": [
        {
          "url": "http://localhost"
        }
      ],
      "tags": [
        {
          "name": "CMS Partner Open API",
          "description": ""
        }
      ],
      "components": {
        "securitySchemes": {
          "default": {
            "type": "apiKey",
            "name": "X-Provider-Key",
            "in": "header",
            "description": "The Provider Key is supplied by AG Neovo. Contact your technical representative to obtain it."
          }
        }
      },
      "security": [
        {
          "default": []
        }
      ],
      "paths": {
        "/api/partner/devices": {
          "get": {
            "summary": "List devices within the provider's authorized scope.",
            "operationId": "listDevicesWithinTheProvidersAuthorizedScope",
            "description": "",
            "parameters": [
              {
                "in": "query",
                "name": "keyword",
                "description": "Fuzzy search by device name/serial number.",
                "example": "NVW-100",
                "required": false,
                "schema": {
                  "type": "string",
                  "description": "Fuzzy search by device name/serial number.",
                  "example": "NVW-100"
                }
              },
              {
                "in": "query",
                "name": "organizationId",
                "description": "Restrict the query to a specific organization ID.",
                "example": 123,
                "required": false,
                "schema": {
                  "type": "integer",
                  "description": "Restrict the query to a specific organization ID.",
                  "example": 123
                }
              },
              {
                "in": "query",
                "name": "onlineStatus",
                "description": "Filter by online status; accepts only \"online\" or \"offline\".",
                "example": "online",
                "required": false,
                "schema": {
                  "type": "string",
                  "description": "Filter by online status; accepts only \"online\" or \"offline\".",
                  "example": "online"
                }
              },
              {
                "in": "query",
                "name": "modelName",
                "description": "Filter by device model.",
                "example": "NVW-100",
                "required": false,
                "schema": {
                  "type": "string",
                  "description": "Filter by device model.",
                  "example": "NVW-100"
                }
              },
              {
                "in": "query",
                "name": "page",
                "description": "Page number, starting from 1.",
                "example": 1,
                "required": false,
                "schema": {
                  "type": "integer",
                  "description": "Page number, starting from 1.",
                  "example": 1
                }
              },
              {
                "in": "query",
                "name": "pageSize",
                "description": "Items per page, max 100.",
                "example": 20,
                "required": false,
                "schema": {
                  "type": "integer",
                  "description": "Items per page, max 100.",
                  "example": 20
                }
              },
              {
                "in": "header",
                "name": "X-Provider-Key",
                "description": "",
                "example": "{YOUR_PROVIDER_KEY}",
                "schema": {
                  "type": "string"
                }
              }
            ],
            "responses": {
              "200": {
                "description": "Success",
                "content": {
                  "application/json": {
                    "schema": {
                      "type": "object",
                      "example": {
                        "error_code": 200,
                        "error_msg": "Success",
                        "devices": [
                          {
                            "deviceId": "NVW100-0001",
                            "modelName": "NVW-100",
                            "onlineStatus": "online",
                            "organizationId": 123
                          }
                        ],
                        "total": 1,
                        "page": 1,
                        "pageSize": 20
                      },
                      "properties": {
                        "error_code": {
                          "type": "integer",
                          "example": 200
                        },
                        "error_msg": {
                          "type": "string",
                          "example": "Success"
                        },
                        "devices": {
                          "type": "array",
                          "example": [
                            {
                              "deviceId": "NVW100-0001",
                              "modelName": "NVW-100",
                              "onlineStatus": "online",
                              "organizationId": 123
                            }
                          ],
                          "items": {
                            "type": "object",
                            "properties": {
                              "deviceId": {
                                "type": "string",
                                "example": "NVW100-0001"
                              },
                              "modelName": {
                                "type": "string",
                                "example": "NVW-100"
                              },
                              "onlineStatus": {
                                "type": "string",
                                "example": "online"
                              },
                              "organizationId": {
                                "type": "integer",
                                "example": 123
                              }
                            }
                          }
                        },
                        "total": {
                          "type": "integer",
                          "example": 1
                        },
                        "page": {
                          "type": "integer",
                          "example": 1
                        },
                        "pageSize": {
                          "type": "integer",
                          "example": 20
                        }
                      }
                    }
                  }
                }
              },
              "400": {
                "description": "",
                "content": {
                  "application/json": {
                    "schema": {
                      "oneOf": [
                        {
                          "description": "Missing API key",
                          "type": "object",
                          "example": {
                            "error_code": 90101,
                            "error_msg": "Provider key required",
                            "error_details": null,
                            "additional_data": {
                              "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
                              "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                            }
                          },
                          "properties": {
                            "error_code": {
                              "type": "integer",
                              "example": 90101
                            },
                            "error_msg": {
                              "type": "string",
                              "example": "Provider key required"
                            },
                            "error_details": {
                              "type": "string",
                              "example": null,
                              "nullable": true
                            },
                            "additional_data": {
                              "type": "object",
                              "properties": {
                                "requestId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                },
                                "commandId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                }
                              }
                            }
                          }
                        },
                        {
                          "description": "Invalid API key",
                          "type": "object",
                          "example": {
                            "error_code": 90102,
                            "error_msg": "Invalid provider key",
                            "error_details": null,
                            "additional_data": {
                              "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
                              "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                            }
                          },
                          "properties": {
                            "error_code": {
                              "type": "integer",
                              "example": 90102
                            },
                            "error_msg": {
                              "type": "string",
                              "example": "Invalid provider key"
                            },
                            "error_details": {
                              "type": "string",
                              "example": null,
                              "nullable": true
                            },
                            "additional_data": {
                              "type": "object",
                              "properties": {
                                "requestId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                },
                                "commandId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                }
                              }
                            }
                          }
                        },
                        {
                          "description": "organizationId out of authorized scope",
                          "type": "object",
                          "example": {
                            "error_code": 90113,
                            "error_msg": "organizationId out of provider scope",
                            "error_details": null,
                            "additional_data": []
                          },
                          "properties": {
                            "error_code": {
                              "type": "integer",
                              "example": 90113
                            },
                            "error_msg": {
                              "type": "string",
                              "example": "organizationId out of provider scope"
                            },
                            "error_details": {
                              "type": "string",
                              "example": null,
                              "nullable": true
                            },
                            "additional_data": {
                              "type": "array",
                              "example": []
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              },
              "429": {
                "description": "Rate limit exceeded (30 requests / 60 seconds)",
                "content": {
                  "application/json": {
                    "schema": {
                      "type": "object",
                      "example": {
                        "message": "Too Many Attempts."
                      },
                      "properties": {
                        "message": {
                          "type": "string",
                          "example": "Too Many Attempts."
                        }
                      }
                    }
                  }
                }
              }
            },
            "tags": [
              "CMS Partner Open API"
            ],
            "requestBody": {
              "required": false,
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "keyword": {
                        "type": "string",
                        "description": "Must not be greater than 255 characters.",
                        "example": "vmqeopfuudtdsufvyvddq"
                      },
                      "organizationId": {
                        "type": "integer",
                        "description": "",
                        "example": 17
                      },
                      "onlineStatus": {
                        "type": "string",
                        "description": "",
                        "example": "offline",
                        "enum": [
                          "online",
                          "offline"
                        ]
                      },
                      "modelName": {
                        "type": "string",
                        "description": "Must not be greater than 255 characters.",
                        "example": "qeopfuudtdsufvyvddqam"
                      },
                      "page": {
                        "type": "integer",
                        "description": "Must be at least 1.",
                        "example": 46
                      },
                      "pageSize": {
                        "type": "integer",
                        "description": "Must be at least 1. Must not be greater than 100.",
                        "example": 8
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "/api/partner/devices/{deviceId}": {
          "get": {
            "summary": "Get detail of a single device.",
            "operationId": "getDetailOfASingleDevice",
            "description": "",
            "parameters": [
              {
                "in": "header",
                "name": "X-Provider-Key",
                "description": "",
                "example": "{YOUR_PROVIDER_KEY}",
                "schema": {
                  "type": "string"
                }
              }
            ],
            "responses": {
              "200": {
                "description": "Success",
                "content": {
                  "application/json": {
                    "schema": {
                      "type": "object",
                      "example": {
                        "error_code": 200,
                        "error_msg": "Success",
                        "deviceId": "NVW100-0001",
                        "modelName": "NVW-100",
                        "onlineStatus": "online",
                        "organizationId": 123
                      },
                      "properties": {
                        "error_code": {
                          "type": "integer",
                          "example": 200
                        },
                        "error_msg": {
                          "type": "string",
                          "example": "Success"
                        },
                        "deviceId": {
                          "type": "string",
                          "example": "NVW100-0001"
                        },
                        "modelName": {
                          "type": "string",
                          "example": "NVW-100"
                        },
                        "onlineStatus": {
                          "type": "string",
                          "example": "online"
                        },
                        "organizationId": {
                          "type": "integer",
                          "example": 123
                        }
                      }
                    }
                  }
                }
              },
              "400": {
                "description": "",
                "content": {
                  "application/json": {
                    "schema": {
                      "oneOf": [
                        {
                          "description": "Missing API key",
                          "type": "object",
                          "example": {
                            "error_code": 90101,
                            "error_msg": "Provider key required",
                            "error_details": null,
                            "additional_data": {
                              "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
                              "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                            }
                          },
                          "properties": {
                            "error_code": {
                              "type": "integer",
                              "example": 90101
                            },
                            "error_msg": {
                              "type": "string",
                              "example": "Provider key required"
                            },
                            "error_details": {
                              "type": "string",
                              "example": null,
                              "nullable": true
                            },
                            "additional_data": {
                              "type": "object",
                              "properties": {
                                "requestId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                },
                                "commandId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                }
                              }
                            }
                          }
                        },
                        {
                          "description": "Invalid API key",
                          "type": "object",
                          "example": {
                            "error_code": 90102,
                            "error_msg": "Invalid provider key",
                            "error_details": null,
                            "additional_data": {
                              "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
                              "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                            }
                          },
                          "properties": {
                            "error_code": {
                              "type": "integer",
                              "example": 90102
                            },
                            "error_msg": {
                              "type": "string",
                              "example": "Invalid provider key"
                            },
                            "error_details": {
                              "type": "string",
                              "example": null,
                              "nullable": true
                            },
                            "additional_data": {
                              "type": "object",
                              "properties": {
                                "requestId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                },
                                "commandId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                }
                              }
                            }
                          }
                        },
                        {
                          "description": "Device not found",
                          "type": "object",
                          "example": {
                            "error_code": 90114,
                            "error_msg": "Device not found",
                            "error_details": null,
                            "additional_data": []
                          },
                          "properties": {
                            "error_code": {
                              "type": "integer",
                              "example": 90114
                            },
                            "error_msg": {
                              "type": "string",
                              "example": "Device not found"
                            },
                            "error_details": {
                              "type": "string",
                              "example": null,
                              "nullable": true
                            },
                            "additional_data": {
                              "type": "array",
                              "example": []
                            }
                          }
                        },
                        {
                          "description": "Device out of authorized scope",
                          "type": "object",
                          "example": {
                            "error_code": 90103,
                            "error_msg": "Device not in provider scope",
                            "error_details": null,
                            "additional_data": []
                          },
                          "properties": {
                            "error_code": {
                              "type": "integer",
                              "example": 90103
                            },
                            "error_msg": {
                              "type": "string",
                              "example": "Device not in provider scope"
                            },
                            "error_details": {
                              "type": "string",
                              "example": null,
                              "nullable": true
                            },
                            "additional_data": {
                              "type": "array",
                              "example": []
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              },
              "429": {
                "description": "Rate limit exceeded (30 requests / 60 seconds)",
                "content": {
                  "application/json": {
                    "schema": {
                      "type": "object",
                      "example": {
                        "message": "Too Many Attempts."
                      },
                      "properties": {
                        "message": {
                          "type": "string",
                          "example": "Too Many Attempts."
                        }
                      }
                    }
                  }
                }
              }
            },
            "tags": [
              "CMS Partner Open API"
            ]
          },
          "parameters": [
            {
              "in": "path",
              "name": "deviceId",
              "description": "Device serial number.",
              "example": "NVW100-0001",
              "required": true,
              "schema": {
                "type": "string"
              }
            }
          ]
        },
        "/api/partner/devices/{deviceId}/status": {
          "get": {
            "summary": "Get live status of a single device (power/volume/input source, etc.).",
            "operationId": "getLiveStatusOfASingleDevicepowervolumeinputSourceEtc",
            "description": "",
            "parameters": [
              {
                "in": "header",
                "name": "X-Provider-Key",
                "description": "",
                "example": "{YOUR_PROVIDER_KEY}",
                "schema": {
                  "type": "string"
                }
              }
            ],
            "responses": {
              "200": {
                "description": "Success",
                "content": {
                  "application/json": {
                    "schema": {
                      "type": "object",
                      "example": {
                        "error_code": 200,
                        "error_msg": "Success",
                        "powerStatus": "on",
                        "volume": 50,
                        "currentSource": "HDMI1",
                        "muteStatus": null
                      },
                      "properties": {
                        "error_code": {
                          "type": "integer",
                          "example": 200
                        },
                        "error_msg": {
                          "type": "string",
                          "example": "Success"
                        },
                        "powerStatus": {
                          "type": "string",
                          "example": "on"
                        },
                        "volume": {
                          "type": "integer",
                          "example": 50
                        },
                        "currentSource": {
                          "type": "string",
                          "example": "HDMI1"
                        },
                        "muteStatus": {
                          "type": "string",
                          "example": null,
                          "nullable": true
                        }
                      }
                    }
                  }
                }
              },
              "400": {
                "description": "",
                "content": {
                  "application/json": {
                    "schema": {
                      "oneOf": [
                        {
                          "description": "Missing API key",
                          "type": "object",
                          "example": {
                            "error_code": 90101,
                            "error_msg": "Provider key required",
                            "error_details": null,
                            "additional_data": {
                              "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
                              "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                            }
                          },
                          "properties": {
                            "error_code": {
                              "type": "integer",
                              "example": 90101
                            },
                            "error_msg": {
                              "type": "string",
                              "example": "Provider key required"
                            },
                            "error_details": {
                              "type": "string",
                              "example": null,
                              "nullable": true
                            },
                            "additional_data": {
                              "type": "object",
                              "properties": {
                                "requestId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                },
                                "commandId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                }
                              }
                            }
                          }
                        },
                        {
                          "description": "Invalid API key",
                          "type": "object",
                          "example": {
                            "error_code": 90102,
                            "error_msg": "Invalid provider key",
                            "error_details": null,
                            "additional_data": {
                              "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
                              "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                            }
                          },
                          "properties": {
                            "error_code": {
                              "type": "integer",
                              "example": 90102
                            },
                            "error_msg": {
                              "type": "string",
                              "example": "Invalid provider key"
                            },
                            "error_details": {
                              "type": "string",
                              "example": null,
                              "nullable": true
                            },
                            "additional_data": {
                              "type": "object",
                              "properties": {
                                "requestId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                },
                                "commandId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                }
                              }
                            }
                          }
                        },
                        {
                          "description": "Device not found",
                          "type": "object",
                          "example": {
                            "error_code": 90114,
                            "error_msg": "Device not found",
                            "error_details": null,
                            "additional_data": []
                          },
                          "properties": {
                            "error_code": {
                              "type": "integer",
                              "example": 90114
                            },
                            "error_msg": {
                              "type": "string",
                              "example": "Device not found"
                            },
                            "error_details": {
                              "type": "string",
                              "example": null,
                              "nullable": true
                            },
                            "additional_data": {
                              "type": "array",
                              "example": []
                            }
                          }
                        },
                        {
                          "description": "Device out of authorized scope",
                          "type": "object",
                          "example": {
                            "error_code": 90103,
                            "error_msg": "Device not in provider scope",
                            "error_details": null,
                            "additional_data": []
                          },
                          "properties": {
                            "error_code": {
                              "type": "integer",
                              "example": 90103
                            },
                            "error_msg": {
                              "type": "string",
                              "example": "Device not in provider scope"
                            },
                            "error_details": {
                              "type": "string",
                              "example": null,
                              "nullable": true
                            },
                            "additional_data": {
                              "type": "array",
                              "example": []
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              },
              "429": {
                "description": "Rate limit exceeded (30 requests / 60 seconds)",
                "content": {
                  "application/json": {
                    "schema": {
                      "type": "object",
                      "example": {
                        "message": "Too Many Attempts."
                      },
                      "properties": {
                        "message": {
                          "type": "string",
                          "example": "Too Many Attempts."
                        }
                      }
                    }
                  }
                }
              }
            },
            "tags": [
              "CMS Partner Open API"
            ]
          },
          "parameters": [
            {
              "in": "path",
              "name": "deviceId",
              "description": "Device serial number.",
              "example": "NVW100-0001",
              "required": true,
              "schema": {
                "type": "string"
              }
            }
          ]
        },
        "/api/partner/devices/{deviceId}/commands": {
          "post": {
            "summary": "Send a control command to a single device (power/volume/mute/input source/reboot).",
            "operationId": "sendAControlCommandToASingleDevicepowervolumemuteinputSourcereboot",
            "description": "The response always includes requestId/commandId for tracing, on every\nsuccess and failure path (including validation errors).",
            "parameters": [
              {
                "in": "header",
                "name": "X-Provider-Key",
                "description": "",
                "example": "{YOUR_PROVIDER_KEY}",
                "schema": {
                  "type": "string"
                }
              }
            ],
            "responses": {
              "200": {
                "description": "Success",
                "content": {
                  "application/json": {
                    "schema": {
                      "type": "object",
                      "example": {
                        "error_code": 200,
                        "error_msg": "Success",
                        "responseStatus": 200,
                        "responseMsg": "OK",
                        "retried": false,
                        "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
                        "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                      },
                      "properties": {
                        "error_code": {
                          "type": "integer",
                          "example": 200
                        },
                        "error_msg": {
                          "type": "string",
                          "example": "Success"
                        },
                        "responseStatus": {
                          "type": "integer",
                          "example": 200
                        },
                        "responseMsg": {
                          "type": "string",
                          "example": "OK"
                        },
                        "retried": {
                          "type": "boolean",
                          "example": false
                        },
                        "requestId": {
                          "type": "string",
                          "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                        },
                        "commandId": {
                          "type": "string",
                          "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                        }
                      }
                    }
                  }
                }
              },
              "400": {
                "description": "",
                "content": {
                  "application/json": {
                    "schema": {
                      "oneOf": [
                        {
                          "description": "Validation failed",
                          "type": "object",
                          "example": {
                            "error_code": 2,
                            "error_msg": "Invalid Format",
                            "error_details": {
                              "validator_error": {
                                "command": [
                                  "The selected command is invalid."
                                ]
                              }
                            },
                            "additional_data": {
                              "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
                              "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                            }
                          },
                          "properties": {
                            "error_code": {
                              "type": "integer",
                              "example": 2
                            },
                            "error_msg": {
                              "type": "string",
                              "example": "Invalid Format"
                            },
                            "error_details": {
                              "type": "object",
                              "properties": {
                                "validator_error": {
                                  "type": "object",
                                  "properties": {
                                    "command": {
                                      "type": "array",
                                      "example": [
                                        "The selected command is invalid."
                                      ],
                                      "items": {
                                        "type": "string"
                                      }
                                    }
                                  }
                                }
                              }
                            },
                            "additional_data": {
                              "type": "object",
                              "properties": {
                                "requestId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                },
                                "commandId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                }
                              }
                            }
                          }
                        },
                        {
                          "description": "Missing API key",
                          "type": "object",
                          "example": {
                            "error_code": 90101,
                            "error_msg": "Provider key required",
                            "error_details": null,
                            "additional_data": {
                              "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
                              "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                            }
                          },
                          "properties": {
                            "error_code": {
                              "type": "integer",
                              "example": 90101
                            },
                            "error_msg": {
                              "type": "string",
                              "example": "Provider key required"
                            },
                            "error_details": {
                              "type": "string",
                              "example": null,
                              "nullable": true
                            },
                            "additional_data": {
                              "type": "object",
                              "properties": {
                                "requestId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                },
                                "commandId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                }
                              }
                            }
                          }
                        },
                        {
                          "description": "Invalid API key",
                          "type": "object",
                          "example": {
                            "error_code": 90102,
                            "error_msg": "Invalid provider key",
                            "error_details": null,
                            "additional_data": {
                              "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
                              "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                            }
                          },
                          "properties": {
                            "error_code": {
                              "type": "integer",
                              "example": 90102
                            },
                            "error_msg": {
                              "type": "string",
                              "example": "Invalid provider key"
                            },
                            "error_details": {
                              "type": "string",
                              "example": null,
                              "nullable": true
                            },
                            "additional_data": {
                              "type": "object",
                              "properties": {
                                "requestId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                },
                                "commandId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                }
                              }
                            }
                          }
                        },
                        {
                          "description": "Device not found",
                          "type": "object",
                          "example": {
                            "error_code": 90114,
                            "error_msg": "Device not found",
                            "error_details": null,
                            "additional_data": {
                              "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
                              "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                            }
                          },
                          "properties": {
                            "error_code": {
                              "type": "integer",
                              "example": 90114
                            },
                            "error_msg": {
                              "type": "string",
                              "example": "Device not found"
                            },
                            "error_details": {
                              "type": "string",
                              "example": null,
                              "nullable": true
                            },
                            "additional_data": {
                              "type": "object",
                              "properties": {
                                "requestId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                },
                                "commandId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                }
                              }
                            }
                          }
                        },
                        {
                          "description": "Device out of authorized scope",
                          "type": "object",
                          "example": {
                            "error_code": 90103,
                            "error_msg": "Device not in provider scope",
                            "error_details": null,
                            "additional_data": {
                              "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
                              "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                            }
                          },
                          "properties": {
                            "error_code": {
                              "type": "integer",
                              "example": 90103
                            },
                            "error_msg": {
                              "type": "string",
                              "example": "Device not in provider scope"
                            },
                            "error_details": {
                              "type": "string",
                              "example": null,
                              "nullable": true
                            },
                            "additional_data": {
                              "type": "object",
                              "properties": {
                                "requestId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                },
                                "commandId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                }
                              }
                            }
                          }
                        },
                        {
                          "description": "Unsupported device model (non-NSD series)",
                          "type": "object",
                          "example": {
                            "error_code": 90104,
                            "error_msg": "Model not controllable: LFD-5500",
                            "error_details": null,
                            "additional_data": {
                              "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
                              "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                            }
                          },
                          "properties": {
                            "error_code": {
                              "type": "integer",
                              "example": 90104
                            },
                            "error_msg": {
                              "type": "string",
                              "example": "Model not controllable: LFD-5500"
                            },
                            "error_details": {
                              "type": "string",
                              "example": null,
                              "nullable": true
                            },
                            "additional_data": {
                              "type": "object",
                              "properties": {
                                "requestId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                },
                                "commandId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                }
                              }
                            }
                          }
                        },
                        {
                          "description": "Device has never been paired",
                          "type": "object",
                          "example": {
                            "error_code": 90105,
                            "error_msg": "Device not paired",
                            "error_details": null,
                            "additional_data": {
                              "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
                              "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                            }
                          },
                          "properties": {
                            "error_code": {
                              "type": "integer",
                              "example": 90105
                            },
                            "error_msg": {
                              "type": "string",
                              "example": "Device not paired"
                            },
                            "error_details": {
                              "type": "string",
                              "example": null,
                              "nullable": true
                            },
                            "additional_data": {
                              "type": "object",
                              "properties": {
                                "requestId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                },
                                "commandId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                }
                              }
                            }
                          }
                        },
                        {
                          "description": "Device offline",
                          "type": "object",
                          "example": {
                            "error_code": 90106,
                            "error_msg": "Device offline",
                            "error_details": null,
                            "additional_data": {
                              "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
                              "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                            }
                          },
                          "properties": {
                            "error_code": {
                              "type": "integer",
                              "example": 90106
                            },
                            "error_msg": {
                              "type": "string",
                              "example": "Device offline"
                            },
                            "error_details": {
                              "type": "string",
                              "example": null,
                              "nullable": true
                            },
                            "additional_data": {
                              "type": "object",
                              "properties": {
                                "requestId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                },
                                "commandId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                }
                              }
                            }
                          }
                        },
                        {
                          "description": "Device IP address unknown",
                          "type": "object",
                          "example": {
                            "error_code": 90107,
                            "error_msg": "Device address unknown",
                            "error_details": null,
                            "additional_data": {
                              "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
                              "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                            }
                          },
                          "properties": {
                            "error_code": {
                              "type": "integer",
                              "example": 90107
                            },
                            "error_msg": {
                              "type": "string",
                              "example": "Device address unknown"
                            },
                            "error_details": {
                              "type": "string",
                              "example": null,
                              "nullable": true
                            },
                            "additional_data": {
                              "type": "object",
                              "properties": {
                                "requestId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                },
                                "commandId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                }
                              }
                            }
                          }
                        },
                        {
                          "description": "Unsupported command",
                          "type": "object",
                          "example": {
                            "error_code": 90108,
                            "error_msg": "Unsupported command: foo",
                            "error_details": null,
                            "additional_data": {
                              "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
                              "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                            }
                          },
                          "properties": {
                            "error_code": {
                              "type": "integer",
                              "example": 90108
                            },
                            "error_msg": {
                              "type": "string",
                              "example": "Unsupported command: foo"
                            },
                            "error_details": {
                              "type": "string",
                              "example": null,
                              "nullable": true
                            },
                            "additional_data": {
                              "type": "object",
                              "properties": {
                                "requestId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                },
                                "commandId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                }
                              }
                            }
                          }
                        },
                        {
                          "description": "Missing or out-of-range command parameter",
                          "type": "object",
                          "example": {
                            "error_code": 90109,
                            "error_msg": "Missing or invalid parameter: volume",
                            "error_details": null,
                            "additional_data": {
                              "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
                              "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                            }
                          },
                          "properties": {
                            "error_code": {
                              "type": "integer",
                              "example": 90109
                            },
                            "error_msg": {
                              "type": "string",
                              "example": "Missing or invalid parameter: volume"
                            },
                            "error_details": {
                              "type": "string",
                              "example": null,
                              "nullable": true
                            },
                            "additional_data": {
                              "type": "object",
                              "properties": {
                                "requestId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                },
                                "commandId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                }
                              }
                            }
                          }
                        },
                        {
                          "description": "Device failed to execute the command",
                          "type": "object",
                          "example": {
                            "error_code": 90110,
                            "error_msg": "Device command failed",
                            "error_details": {
                              "responseMsg": "missing link"
                            },
                            "additional_data": {
                              "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
                              "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                            }
                          },
                          "properties": {
                            "error_code": {
                              "type": "integer",
                              "example": 90110
                            },
                            "error_msg": {
                              "type": "string",
                              "example": "Device command failed"
                            },
                            "error_details": {
                              "type": "object",
                              "properties": {
                                "responseMsg": {
                                  "type": "string",
                                  "example": "missing link"
                                }
                              }
                            },
                            "additional_data": {
                              "type": "object",
                              "properties": {
                                "requestId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                },
                                "commandId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                }
                              }
                            }
                          }
                        },
                        {
                          "description": "Timed out waiting for device response",
                          "type": "object",
                          "example": {
                            "error_code": 90111,
                            "error_msg": "Device command timeout",
                            "error_details": null,
                            "additional_data": {
                              "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
                              "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                            }
                          },
                          "properties": {
                            "error_code": {
                              "type": "integer",
                              "example": 90111
                            },
                            "error_msg": {
                              "type": "string",
                              "example": "Device command timeout"
                            },
                            "error_details": {
                              "type": "string",
                              "example": null,
                              "nullable": true
                            },
                            "additional_data": {
                              "type": "object",
                              "properties": {
                                "requestId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                },
                                "commandId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                }
                              }
                            }
                          }
                        },
                        {
                          "description": "Bridge service unreachable",
                          "type": "object",
                          "example": {
                            "error_code": 90112,
                            "error_msg": "Bridge service unreachable",
                            "error_details": {
                              "reason": "Connection timed out"
                            },
                            "additional_data": {
                              "requestId": "b3cecfb9-1234-4a5e-8b6c-000000000000",
                              "commandId": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                            }
                          },
                          "properties": {
                            "error_code": {
                              "type": "integer",
                              "example": 90112
                            },
                            "error_msg": {
                              "type": "string",
                              "example": "Bridge service unreachable"
                            },
                            "error_details": {
                              "type": "object",
                              "properties": {
                                "reason": {
                                  "type": "string",
                                  "example": "Connection timed out"
                                }
                              }
                            },
                            "additional_data": {
                              "type": "object",
                              "properties": {
                                "requestId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                },
                                "commandId": {
                                  "type": "string",
                                  "example": "b3cecfb9-1234-4a5e-8b6c-000000000000"
                                }
                              }
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              },
              "429": {
                "description": "Rate limit exceeded (30 requests / 60 seconds); the command is not forwarded to the device",
                "content": {
                  "application/json": {
                    "schema": {
                      "type": "object",
                      "example": {
                        "message": "Too Many Attempts."
                      },
                      "properties": {
                        "message": {
                          "type": "string",
                          "example": "Too Many Attempts."
                        }
                      }
                    }
                  }
                }
              }
            },
            "tags": [
              "CMS Partner Open API"
            ],
            "requestBody": {
              "required": true,
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "command": {
                        "type": "string",
                        "description": "Command type. Allowed values: powerOn, powerOff, setVolume, setMute, setInputSource, reboot (see DeviceCommandService::SUPPORTED_COMMANDS).",
                        "example": "powerOn"
                      },
                      "params": {
                        "type": "object",
                        "description": "Command parameters; which fields are required depends on the command type.",
                        "example": [],
                        "properties": {
                          "volume": {
                            "type": "integer",
                            "description": "Volume level 0-100, used when command=setVolume.",
                            "example": 50
                          },
                          "source": {
                            "type": "string",
                            "description": "Input source name, used when command=setInputSource.",
                            "example": "HDMI1"
                          },
                          "mute": {
                            "type": "boolean",
                            "description": "Mute on/off, used when command=setMute.",
                            "example": true
                          }
                        }
                      }
                    },
                    "required": [
                      "command"
                    ]
                  }
                }
              }
            }
          },
          "parameters": [
            {
              "in": "path",
              "name": "deviceId",
              "description": "Device serial number.",
              "example": "NVW100-0001",
              "required": true,
              "schema": {
                "type": "string"
              }
            }
          ]
        }
      }
    }

    Request a Neovo Manager Provider Key

    Available exclusively for All-in-One Digital Signage Displays (NSD & DS Series).

    Connect your CMS or management platform with Neovo Manager through the AG Neovo Partner Open API.

    Submit your integration request and our team will review your intended use, supported device scope and access requirements. If approved, we will provide the information needed to begin integration.





      If your device is already paired with Neovo Manager, you can leave this field blank.




      Fields marked with * are required