Skip to content

Update PTZ patrol

Set the patrol points of a first-party mechanical PTZ camera, or turn its patrol on or off. The camera picks the change up from its config.

POST/api/camera/updatePtzPatrol

Authorizations

x-auth-apikeystringheaderrequired

Your Rhombus API key. Must be accompanied by the x-auth-scheme header set to api-token (or partner-api-token for partner endpoints).

Authorizationstringheader

Instead of an API key, an OAuth access token: Bearer <token>, with the write scope.

OAuth explains tokens and scopes.

Headers

x-auth-schemeenum<string>headerdefault: api-token

Authentication scheme identifier. Use api-token or partner-api-token with the x-auth-apikey header, api or partner-api with x-auth-apikey plus a client certificate, api-oauth-token or partner-api-oauth-token with x-auth-access-token, and federated-token with x-auth-ft. A request with Authorization: Bearer <token> and no x-auth-scheme is treated as OAuth, and federated-token may also be sent as the x-auth-scheme and x-auth-ft query parameters.

Available options: api-token, api, api-oauth-token, federated-token, partner-api-token, partner-api, partner-api-oauth-token

x-auth-orgstring<RUUID>header

Client organization UUID (22-character RUUID), for partner credentials only. With it the call runs in that client organization with the partner support authority's role. Without it a partner credential runs as the partner organization, which outside the partner endpoints is deprecated (responses carry Deprecation and Sunset: Tue, 05 Jan 2027 00:00:00 GMT). A malformed value returns 400 INVALID_AUTH_ORG; a client organization the partner cannot access returns 403 PARTNER_CLIENT_ACCESS_DENIED.

Length: 22 to 22

Body

application/json · object

Update a mechanical PTZ (R650) camera's patrol. A field left out keeps its stored value, so the points and the on/off switch can be changed separately.

cameraUuidstring<DeviceFacetUuid> | nullbody

RUUID with optional appended facet information

Example: "AAAAAAAAAAAAAAAAAAAAAA.v0"

enabledboolean | nullbody

Turn the patrol on or off; leave out to keep the stored value

pointsobject[] | nullbody

The full point list in visiting order, at most 32, replacing the stored list; leave out to keep the stored points. Changing the list restarts the patrol at the first point.

Show child attributes
dwellSecsinteger<int32> | nullbody

Seconds to stay at this point once the camera arrives, [1, 86400]. Defaults to 15 when left out of an update.

Example: 15

namestring | nullbody

Label shown in the console, e.g. "Gate entrance". Optional, at most 64 characters; surrounding whitespace is trimmed and a blank name is stored as none.

Example: "Gate entrance"

panDegreesnumber<float> | nullbody

Horizontal rotation in degrees, [0, 360)

Example: 90.5

tiltDegreesnumber<float> | nullbody

Vertical rotation in degrees, [-20, 200]

Example: 10

zoominteger<int32> | nullbody

Zoom motor step, 0 or more

Example: 400

Response

200 OK

application/json · object

The patrol as stored after the update, with default dwells filled in.

errorboolean | null
errorCodestring | null

Stable, machine-readable code for the failure (one of the ApiErrorCode catalog) when error is true. Branch on this, not on errorMsg.

errorMsgstring | null
patrolobject

A mechanical PTZ (R650) patrol. While enabled, the camera visits the points in order, stays at each for its dwell, and wraps back to the first. Any user move pauses the patrol for 30 seconds.

Show child attributes
enabledboolean | null

Whether the camera is patrolling

pointsobject[] | null

The patrol points in visiting order, at most 32

Show child attributes
dwellSecsinteger<int32> | null

Seconds to stay at this point once the camera arrives, [1, 86400]. Defaults to 15 when left out of an update.

Example: 15

namestring | null

Label shown in the console, e.g. "Gate entrance". Optional, at most 64 characters; surrounding whitespace is trimmed and a blank name is stored as none.

Example: "Gate entrance"

panDegreesnumber<float> | null

Horizontal rotation in degrees, [0, 360)

Example: 90.5

tiltDegreesnumber<float> | null

Vertical rotation in degrees, [-20, 200]

Example: 10

zoominteger<int32> | null

Zoom motor step, 0 or more

Example: 400

warningMsgstring | null

Errors

Like every operation, this one can also answer with the standard error body (errorCode, errorMsg). Errors explains each status and how to retry.

  • 400 Bad Request. errorCode is one of: BAD_REQUEST, VALIDATION_FAILED, MISSING_REQUIRED_FIELD, INVALID_JSON, INVALID_REQUEST_BODY, FEATURE_NOT_ENABLED, INVALID_AUTH_ORG, LOCATION_NOT_FOUND, SELF_PROVISIONING_DISABLED, SKU_NOT_ALLOWED, QUANTITY_INVALID, AUTO_RENEW_REQUIRED, PROVISION_CAP_EXCEEDED, ACKNOWLEDGEMENT_REQUIRED, SIGNATURE_REQUIRED, APEX_VALIDATION, SKU_NOT_IN_PRICEBOOK.
  • 401 Unauthorized. errorCode is one of: UNAUTHENTICATED, INVALID_CREDENTIAL, CREDENTIAL_EXPIRED, CREDENTIAL_REVOKED, CERTIFICATE_MISMATCH.
  • 403 Forbidden. errorCode is one of: FORBIDDEN, DOMAIN_NOT_ALLOWED, DEVICE_SCOPE_MISMATCH, ROLE_NOT_PERMITTED, FUNCTIONALITY_REQUIRED, PARTNER_FUNCTIONALITY_REQUIRED, PERMISSION_REQUIRED, PARTNER_CLIENT_ACCESS_DENIED, HARDWARE_NOT_AVAILABLE, HARDWARE_ALREADY_REGISTERED, PARTNER_PORTAL_NOT_ENABLED, MANAGED_BY_MSP, SUPER_ADMIN_RESTRICTED_BY_MSP, MSP_DESIGNATION_INVALID, NOT_MANAGED_CLIENT, NOT_VERIFIED_MSP, ORDER_NOT_YOURS.
  • 429 Too Many Requests. errorCode is one of: RATE_LIMITED, QUOTE_RATE_LIMITED.
  • 500 Internal Server Error. errorCode is one of: INTERNAL_ERROR.
  • 503 Service Unavailable. errorCode is one of: SERVICE_UNAVAILABLE, SALESFORCE_UNAVAILABLE.