WebSocket Interface

API Interface

Niaozun WebSocket API Documentation

After starting the Niaozun PC client, the WebSocket API becomes available. Listening port: 33332WebSocket Address:ws://127.0.0.1:33332/Content‑Type: application/json

Get User Info

Get logged‑in user information.


ParameterTypeDescriptionRequired
idStringCustom request‑ID; the identical ID will be returned in responseNo
typeStringFixed value: getUserinfoYes

Request Example

{"id":"abc123456","type":"getUserinfo"}

Response Parameters


ParameterTypeDescriptionRequired
stateint0=Success, Non‑0=FailureYes
messageStringError hint messageYes
dataJSONUser data example: {"UserAccount":"user_account","id":"3"}Yes

Response Example

{"id":"abc123456","state":0,"message":"","data":{"UserAccount":"user_account","id":"3"}}

Get Device List

Fetch connected device address list.


ParameterTypeDescriptionRequired
idStringCustom request‑ID; echoed in responseNo
typeStringFixed value: listYes

Request Example

{"id":"abc123456","type":"list"}

Response Parameters


ParameterTypeDescriptionRequired
stateint0=Success, Non‑0=FailureYes
messageStringError hint messageYes
dataJSON ArrayDevice address array e.g. ["172.16.0.53:5555","172.16.0.180:5555"]Yes

Response Example

{"id":"abc123456","state":0,"message":"","data":["172.16.0.53:5555","172.16.0.180:5555"]}

Get Screen Screenshot

Obtain the latest screen frame from target devices.

Tips: Base64 returned does not include the data:image/jpeg;base64, prefix.


ParameterTypeDescriptionRequired
idStringCustom request‑ID; echoed in responseNo
typeStringFixed value: getscreenYes
serialArrayDevice serial numbers. Empty array [] = all devices; single ["qeh8ea1s"]; multiple ["qeh8ea1s","r515aaa"]. Get serial via dedicated interface.Yes
actionint0=Return base64 screenshot1=Save screenshot to local disk2=Return original‑quality base643=Save original‑quality image to diskYes
dataJSONObject containing path and crop coordinatesYes
└‑ pathStringLocal disk save directory e.g. D:\\11111\\Yes
└‑ xintCrop start X coordinateNo
└‑ yintCrop start Y coordinateNo
└‑ wintCrop widthNo
└‑ hintCrop heightNo

Request Examples

  1. Return compressed base64 image
{"id":"abc123456","type":"getscreen","serial":[],"action":0,"data":{"path":"D:\\11111\\"}}
  1. Save compressed image to local disk
{"id":"abc123456","type":"getscreen","serial":[],"action":1,"data":{"path":"D:\\11111\\"}}
  1. Return original‑quality base64
{"id":"abc123456","type":"getscreen","serial":[],"action":2,"data":{"path":"D:\\11111\\"}}
  1. Save original‑quality image to local disk
{"id":"abc123456","type":"getscreen","serial":[],"action":3,"data":{"path":"D:\\11111\\"}}

Response Parameters


ParameterTypeDescriptionRequired
stateint0=Success, Non‑0=FailureYes
messageStringError hint messageYes
dataJSONKey: device address, Value: base64 image stringYes

Response Example

{"id":"abc123456","state":0,"message":"","data":{"172.16.0.53:5555":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABcQERQRDhcUEhQaGBcbIjklIh8fIkYyNSk5UkhXVVFIUE5bZoNvW2F8Yk5QcptzfIeLkpSSWG2grJ+OqoOPko3/2wBDARgaGiIeIkMlJUONXlBejY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY3/wAARCACgAFgDASIAAh/2Q=="}}

Mouse Events

Simulate mouse/touch events on devices. Coordinate range: 0 ~ 1 (float). Leftmost x=0, rightmost x=1; top y=0, bottom y=1.


ParameterTypeDescriptionRequired
idStringCustom request‑ID; echoed in responseNo
typeStringFixed value: mouseeventsYes
serialArrayTarget device serial list. [] = all devicesYes
actionint0=Mouse‑down / Touch‑press1=Mouse‑up / Touch‑release2=Mouse move / Touch drag3=Right‑click4=Mouse scroll up5=Mouse scroll downYes
dataJSONCoordinate object {"x":0.5,"y":0.5}Yes
└‑ xfloatHorizontal coordinate 0‑1Yes
└‑ yfloatVertical coordinate 0‑1Yes

Request Example

{"id":"abc123456","type":"mouseevents","serial":[],"action":0,"data":{"x":0.5,"y":0.5}}

Response Parameters


ParameterTypeDescriptionRequired
stateint0=Success, Non‑0=FailureYes
messageStringError hint messageYes
dataJSONAlways nullYes

Response Example

{"id":"abc123456","state":0,"message":"","data":null}

Keyboard Events

Simulate hardware key presses. Refer to key‑code table for code values.


ParameterTypeDescriptionRequired
idStringCustom request‑ID; echoed in responseNo
typeStringFixed value: keyboardeventsYes
serialArrayTarget device serial list. [] = all devicesYes
actionint0=Key press down1=Key release2=Single key tapYes
dataJSON{"code":65}Yes
└‑ codeintVirtual key‑code numberYes

Request Example

{"id":"abc123456","type":"keyboardevents","serial":[],"action":2,"data":{"code":65}}

Response Example

{"id":"abc123456","state":0,"message":"","data":null}

Run ADB Shell Command

Execute adb‑shell commands on remote devices. Do not add adb shell prefix in cmd field.


ParameterTypeDescriptionRequired
idStringCustom request‑ID; echoed in responseNo
typeStringFixed value: adbcmdYes
serialArrayTarget device serial list. [] = all devicesYes
dataJSON{"cmd":"wm size"}Yes
└‑ cmdStringadb shell command content without adb shell prefixYes

Request Example

{"id":"abc123456","type":"adbcmd","serial":[],"data":{"cmd":"wm size"}}

Response Parameters


ParameterTypeDescriptionRequired
stateint0=Success, Non‑0=FailureYes
messageStringError hint messageYes
dataJSONKey: device address; Value: raw command output textYes

Response Example

{"id":"abc123456","state":0,"message":"","data":{"172.16.0.180:5555":"Physical size: 1440x2960\nOverride size: 720x1280\n","172.16.0.53:5555":"Physical size: 1440x2960\nOverride size: 720x1280\n"}}

ADB Text Input

Input text via ADB input service.


ParameterTypeDescriptionRequired
idStringCustom request‑ID; echoed in responseNo
typeStringFixed value: adbinputYes
serialArrayTarget device serial list. [] = all devicesYes
dataJSON{"Text":"abc123 test"}Yes
└‑ TextStringText string to inputYes

Request Example

{"id":"abc123456","type":"adbinput","serial":[],"data":{"Text":"abc123 test"}}

Response Example

{"id":"abc123456","state":0,"message":"","data":{"172.16.0.180:5555":"Broadcasting: Intent { act=ADB_INPUT_TEXT flg=0x400000 (has extras) }\nBroadcast completed: result=0\n","172.16.0.53:5555":"Broadcasting: Intent { act=ADB_INPUT_TEXT flg=0x400000 (has extras) }\nBroadcast completed: result=0\n"}}

Direct Text Input

Text input via internal control channel.


ParameterTypeDescriptionRequired
idStringCustom request‑ID; echoed in responseNo
typeStringFixed value: textinputYes
serialArrayTarget device serial list. [] = all devicesYes
dataJSON{"Text":"abc123 test"}Yes
└‑ TextStringText string to inputYes

Request Example

{"id":"abc123456","type":"textinput","serial":[],"data":{"Text":"abc123 test"}}

Response Example

{"id":"abc123456","state":0,"message":"","data":""}

Get Foreground App Package & Activity

Retrieve currently‑running foreground application package name and activity class name.


ParameterTypeDescriptionRequired
idStringCustom request‑ID; echoed in responseNo
typeStringFixed value: getclassYes
serialArrayTarget device serial list. [] = all devicesYes

Request Example

{"id":"abc123456","type":"getclass","serial":[]}

Response Example

{"id":"abc123456","state":0,"message":"","data":{"172.16.0.180:5555":"com.google.android.apps.nexuslauncher/com.google.android.apps.nexuslauncher.NexusLauncherActivity\n","172.16.0.53:5555":"com.google.android.apps.nexuslauncher/com.google.android.apps.nexuslauncher.NexusLauncherActivity\n"}}

Install APK Application

Install local APK file onto remote devices. File path refers to path on your local PC. Target device storage path is configurable inside software Advanced Settings.


ParameterTypeDescriptionRequired
idStringCustom request‑ID; echoed in responseNo
typeStringFixed value: oninstallYes
serialArrayTarget device serial list. [] = all devicesYes
dataJSON{"Path":"E:\\0ZhuoMian\\0‑4\\A\\Apk\\game.apk"}Yes
└‑ PathStringFull local PC file path of APK, double‑backslash escape requiredYes

Request Example

{"id":"abc123456","type":"oninstall","serial":[],"data":{"Path":"E:\\0ZhuoMian\\0‑4\\A\\Apk\\game.apk"}}

Response Example

{"id":"abc123456","state":0,"message":"","data":""}

Upload Local File to Device

Upload arbitrary file from local PC to connected Android devices. Destination folder configurable in Advanced Settings.


ParameterTypeDescriptionRequired
idStringCustom request‑ID; echoed in responseNo
typeStringFixed value: uploadYes
serialArrayTarget device serial list. [] = all devicesYes
dataJSON{"Path":"E:\\ZhuoMian\\test.txt"}Yes
└‑ PathStringFull local PC file path, double‑backslash escape requiredYes

Request Example

{"id":"abc123456","type":"upload","serial":[],"data":{"Path":"E:\\ZhuoMian\\test.txt"}}

Response Example

{"id":"abc123456","state":0,"message":"","data":""}

Switch to ADB Input‑Method

Set device input‑method to ADB input service.


ParameterTypeDescriptionRequired
idStringCustom request‑ID; echoed in responseNo
typeStringFixed value: adbimeYes
serialArrayTarget device serial list. [] = all devicesYes

Request Example

{"id":"abc123456","type":"adbime","serial":[]}

Response Example

{"id":"abc123456","state":0,"message":"","data":""}

APP Operation: Start / Stop / Uninstall / Clear Cache

Perform application lifecycle operations.

Note: For Start, Info field requires package/classActivity. For Stop / Uninstall / Clear Cache, package name alone is sufficient.


ParameterTypeDescriptionRequired
idStringCustom request‑ID; echoed in responseNo
typeStringFixed value: appactionYes
serialArrayTarget device serial list. [] = all devicesYes
Actionint0=Launch app1=Stop app2=Uninstall app3=Clear application cacheYes
dataJSON{"Info":"com.android.settings/com.android.settings.Settings"}Yes
└‑ InfoStringPackage name or PackageName/ActivityClassNameYes

Request ExamplesLaunch App

{"id":"abc123456","type":"appaction","serial":[],"Action":0,"data":{"Info":"com.android.settings/com.android.settings.Settings"}}

Stop App

{"id":"abc123456","type":"appaction","serial":[],"Action":1,"data":{"Info":"com.android.settings"}}

Uninstall App

{"id":"abc123456","type":"appaction","serial":[],"Action":2,"data":{"Info":"com.android.settings"}}

Clear App Cache

{"id":"abc123456","type":"appaction","serial":[],"Action":3,"data":{"Info":"com.android.settings"}}

Response Example

{"id":"abc123456","state":0,"message":"","data":{"172.16.0.180:5555":"Starting: Intent { cmp=com.android.settings/.Settings }\n","172.16.0.53:5555":"Starting: Intent { cmp=com.android.settings/.Settings }\nWarning: Activity not started, its current task has been brought to the front\n"}}

Set Screen Resolution & DPI

Modify device display width, height and DPI value.


ParameterTypeDescriptionRequired
idStringCustom request‑ID; echoed in responseNo
typeStringFixed value: dpiinfoYes
serialArrayTarget device serial list. [] = all devicesYes
dataJSON{"dpi":320,"w":720,"h":1280}Yes
└‑ dpiintDisplay DPI valueYes
└‑ wintDisplay pixel widthYes
└‑ hintDisplay pixel heightYes

Request Example

{"id":"abc123456","type":"dpiinfo","serial":[],"data":{"dpi":320,"w":720,"h":1280}}

Response Example

{"id":"abc123456","state":0,"message":"","data":{}}

Common Response Field Definition (All Interfaces)


FieldMeaning
idRequest‑ID echoed back from your request
state0 success; non‑zero value means error
messageHuman readable error or hint text
dataReturned payload, varies per API

This markdown format can be directly pasted to most CMS / website editors supporting markdown rendering.


Leave Your Message


Leave a message