Get started
  • English
  • 简体中文
Official Site
Get started
  • English
  • 简体中文
Official Site
  • Get started
  • Concepts
  • Guides
  • Device capabilities & events
    • Browse by device type
    • Device capabilities
      • Common methods
      • Detection and alarms
      • Image
      • PTZ
        • PTZ movement
          • ptz.aim.speed (Read PTZ speed)
          • ptz.aim.speed (Set PTZ speed)
          • ptz.aim.scanDistance (Read wide-angle scan distance)
          • ptz.aim.relative (Move by speed)
          • ptz.aim.step (Move by step)
          • ptz.aim.reset (Reset PTZ)
        • Cruise
        • Gun-ball linkage
        • Presets
        • Zoom
      • Light
      • Recording
      • Audio
      • Media
      • Network
      • Power
      • Privacy
      • Call
      • Storage
      • System
      • Algorithm
      • Maintenance
      • Control
    • Events overview
    • Permission codes
    • Capability error codes
    • Alarm and capability messages
    • Capability FAQ
    • Legacy ability and push types
  • API reference
  • SDK and tools
  • Solutions
  • Platform and support
On this page
What it does
Request URL
Minimum permission
Request parameters
Request example
Response data fields
Response example
Error codes

ptz.aim.relative (Move by speed)

ptz.aim.relative: Move by speed

ptz.aim.relative · Channel scope · Permission Ptz

What it does

Moves this channel PTZ by speed. One invoke runs once. Whether horizontal/vertical/zoom/duration are required depends on the device ident (for example TwoLR has no vertical); check ptz.aim.relative field specs in device.capability.list first.

Request URL

POST https://openapi-[DataCenter].easy4ip.com/openapi/v2/device.service.invoke

Minimum permission

The administrator does not need an extra permission on a device they bound. A shared device needs the PTZ permission. A bound sub-user does not. A sub-account needs Ptz. Omitting channelId on a channel-scope capability returns DV2007. Mixing device and channel in one request returns DV2008. A timeout does not mean the operation did not run.

Request parameters

NameTypeRequiredDescription
tokenStringyesAdministrator, sub-user, or sub-account accessToken
deviceIdStringyesDevice serial number
productIdStringnoOptional. If sent and it does not match the device model → DV2009
channelIdStringyesChannel ID; "0" is common on IPCs
serviceIdStringyesptz.aim.relative
inputDataObjectyesSee table below
NameDescriptionTypeRequiredValues
horizontalHorizontal speed [-1~1]; negative left, positive right.textyesstring
verticalVertical speed [-1~1]; negative down, positive up.textyesstring
zoomZoom factor [-1~1]; negative down, positive up.textyesstring
durationDuration. Range 1–999999, step 1, unit ms.intyes1–999999, step 1, unit ms

Common request fields and the signature are in Development specification.

Request example

{
 "id": "d5c287b4-5b2f-4f03-baf5-8032c5c354af",
 "system": {
 "ver": "1.0",
 "appId": "lcdxxxxxxxxx",
 "sign": "xjhCQBoJ9hRDsCjyDcHjtDNzRZ3ZJezcawsfWeiaoxU=",
 "time": 1706511734,
 "nonce": "f5a1ae2d-c09c-4d39-a744-83a5c2c653c2"
 },
 "params": {
 "token": "<yourAccessToken>",
 "deviceId": "TESTIPC000012345",
 "channelId": "0",
 "serviceId": "ptz.aim.relative",
 "inputData": {
 "horizontal": "0.5",
 "vertical": "0",
 "zoom": "0",
 "duration": 1000
 }
 }
}

Response data fields

Output is in result.data.outputData. Empty output is {}.

Response example

{
 "id": "d5c287b4-5b2f-4f03-baf5-8032c5c354af",
 "result": {
 "code": "0",
 "msg": "Operation is successful",
 "data": {
 "outputData": {}
 }
 }
}

Error codes

Gateway and device error codes are in Global return codes.

PTZ speed get/set · Move by step · controlMovePTZ (legacy operation 0–10) · PTZ movement

ptz.aim.scanDistance (Read wide-angle scan distance)
ptz.aim.step (Move by step)