Send PTZ command

Deprecated preset management actions — will be removed in 6 months

SetPreset (9), GetPresets (10) and RemovePreset (12) are deprecated and will be removed
in 6 months. Migrate integrations before removal.
These actions remain callable during the transition. Other actions, including GotoPreset (11),
GotoHomePosition (1) and SetHomePosition (2), are not deprecated by this notice.

Legacy actionReplacement
9 SetPresetPOST /v1/cameras/{cameraId}/ptz/presets to create at the current position; POST /v1/cameras/{cameraId}/ptz/presets/{presetId}/redefine to overwrite a registered preset.
10 GetPresetsGET /v1/cameras/{cameraId}/ptz/presets for Cloud records and unregistered native slots.
12 RemovePresetDELETE /v1/cameras/{cameraId}/ptz/presets/{presetId} for a Cloud record; DELETE /v1/cameras/{cameraId}/ptz/presets/native/{presetToken} for an unregistered slot.

The replacement is not a body-format alias: use the Cloud _id as presetId and the numbered camera
slot as presetToken. Create accepts {"name":"Entrance"} and allocates a slot; it does not accept
PresetToken/PresetName. To keep an existing native numbered slot, first register it with
POST /v1/cameras/{cameraId}/ptz/presets/native/{presetToken}/register and {"name":"Entrance"}.
GET returns an array with source/status/_id/presetToken rather than the legacy response envelope.
Deletion returns 204 without a body and handles patrol references. UNKNOWN Cloud presets require
{"confirmed":true}. Read the replacement operation descriptions for unconfirmed outcomes and errors.
The management API accepts numbered slots only: it does not replace camera-native HOME positioning.

Sends one PTZ (Pan-Tilt-Zoom) command to an organization camera. Set action to the command number
and provide its parameters in meta.

The command is dispatched asynchronously to the edge device; the response is held open until the
edge replies (up to 15 seconds). Successful responses return {} for ack-only actions, or PTZ
fields (status, presets, preset, test) for actions that produce payload data.

Axis ranges: pan/tilt are normalized to [-1, 1]; zoom velocity/delta are signed [-1, 1]; zoom
absolute position is [0, 1]. PresetToken is HOME or a numbered token 1..10.

action → required meta (a mismatch returns HTTP 400 with a per-action reason):

actionnamemeta
0PtzMove{ speed:{x,y,z}, timeout, zoomTimeout? }
1GotoHomePosition—
2SetHomePosition—
3GetStatus— (returns status)
4PtzStop—
5ContinuousMove{ Velocity:{x,y,z}, Timeout }
6AbsoluteMove{ Position:{x,y,z}, Speed:{x,y,z} }
7RelativeMove{ Translation:{x,y,z}, Speed:{x,y,z} }
8StopMove{ PanTilt:boolean, Zoom:boolean }
9SetPreset — DEPRECATED, removal soon{ PresetToken, PresetName }
10GetPresets — DEPRECATED, removal soon— (returns presets)
11GotoPreset{ PresetToken, Speed?:{x,y,z} }
12RemovePreset — DEPRECATED, removal soon{ PresetToken }
13PtzTest— (non-destructive probe, returns test)

driver is an optional override (Onvif=0, Vivotek=1, Uniview=2, Vivotek2=3, Axis=4, Hanwha=5).
Omit it to let the edge resolve the driver automatically. Not every brand supports every action —
HTTP 501 is the expected response for unsupported operations (e.g. absolute move on Hanwha); run
PtzTest first to discover per-camera capabilities.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
string
required

Camera ID to control. Must belong to the organization associated with the API key.

Body Params
number
enum
required

PTZ action to execute. The required meta shape depends on this value. DEPRECATED: SetPreset (9), GetPresets (10), RemovePreset (12); will be removed in 6 months. Use the preset management routes in the endpoint description. All other actions remain supported.

meta

Action-specific parameters. Omit for actions that take no parameters (GotoHomePosition, SetHomePosition, GetStatus, PtzStop, GetPresets, PtzTest). A 400 is returned when the shape does not match the action.

number
enum

Optional PTZ driver override. Values are NOT alphabetical: Onvif=0, Vivotek=1, Uniview=2, Vivotek2=3, Axis=4, Hanwha=5. Omit to let the edge resolve the driver automatically.

Allowed:
Responses

Language
Credentials
Bearer
JWT
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json