Jun 22, 2026

ActionStreamer

Event Presets: Trigger, Copy, and Schedule Camera Actions

Once you have devices online, event presets are the cleanest way to turn a one-off action into something reusable.

An event preset stores an action definition:

  • What the action does

  • Which device or device group it applies to

  • Which event type to run

  • Which parameters the action needs

That gives you three practical automation moves:

  • Trigger a preset now

  • Copy a preset to another device

  • Schedule a preset to run when a device starts up

If you are using the Python SDK, the wrapper handles request signing for you once you provide your access key and secret key. If you are calling the API directly, use the same HMAC SHA256 signing flow from the authentication post.

What You Need

  • An authenticated session or a signed API request

  • A device ID, or a device group ID if you want a shared preset

  • An event type that matches the action you want to run

  • The event parameters for that action

Start With One Preset

Use POST /v1/eventpreset to create the preset once.

Example request:

POST /v1/eventpreset HTTP/1.1
Authorization: <your-session-or-signed-request>
Content-Type: application/json

{
  "eventPresetName": "Start Live Stream",
  "deviceID": 12345,
  "deviceGroupID": 0,
  "agentType": "Video",
  "eventType": "Video_Start_RTMP",
  "eventParameters": "{

The important detail is that eventParameters is a JSON string, not a nested object. If it is empty, the API stores {}.

Use deviceID for a single camera. Use deviceGroupID when you want one preset definition to apply to a group.

Typical response fields include:

  • key

  • eventPresetName

  • deviceID

  • deviceGroupID

  • agentTypeID

  • eventTypeID

  • eventParameters

  • priority

  • maxAttempts

  • expirationEpoch

  • creationDate

  • createdBy

Trigger The Preset Now

Use POST /v1/eventpreset/run/{eventPresetID} when you want to run the preset immediately.

Example request:

POST /v1/eventpreset/run/67890 HTTP/1.1
Authorization: <your-session-or-signed-request>
Content-Type: application/json

{
  "data"

The data array is optional.

  • If you include it, you can override the target device list for that run.

  • If you omit it, the preset runs against the device or group already stored on the preset.

Typical response:

{
  "EventID": 98765
}

That EventID is the event created from the preset. You can use it with the normal event endpoints if you want to inspect status or progress later.

Copy The Preset To Another Device

Use POST /v1/eventpreset/{eventPresetID}/copy/{newDeviceID} when you want the same automation on another camera.

Example request:

POST /v1/eventpreset/67890/copy/24680 HTTP/1.1
Authorization: <your-session>

This creates a new preset for the destination device with the same underlying configuration as the source preset.

That is useful when you have one working preset and want to roll it out to another camera without rebuilding the whole definition by hand.

The response is the copied preset object.

Schedule The Preset For Startup

Use the startup preset endpoints when you want a device to run the action automatically as part of startup.

The available routes are:

  • POST /v1/eventpreset/startupevent/online/{eventPresetID}

  • POST /v1/eventpreset/startupevent/standalone/{eventPresetID}

Example request:

POST /v1/eventpreset/startupevent/online/67890 HTTP/1.1
Authorization: <your-session-or-signed-request>

Use online for the normal connected-device flow and standalone for the standalone mode.  For standalone mode, an event is sent to the device to store the startup parameters locally so it can run without a network connection.

Startup presets must target a single device. If you try to apply one to a group preset, the API rejects it.

The response includes an EventID:

  • For online, the API returns 0

  • For standalone, the API returns the event ID created to store the startup action

How The Pieces Fit Together

In practice, the workflow looks like this:

  1. Create the preset once.

  2. Copy it to another device if needed.

  3. Run it immediately when you want the action now.

  4. Attach it as a startup preset when you want the device to run it automatically later.

That gives you a clean pattern for reusable camera actions without rebuilding the request every time.

How The Python SDK Fits In

If you are using the Python SDK, you do not need to sign these requests by hand.

The SDK takes the access key and secret key in its config object, then handles signing in the wrapped calls. The preset workflow stays the same either way. The only difference is whether you build the request yourself or let the wrapper do it.

Common Mistakes

  • Using eventParameters as a nested JSON object instead of a JSON string

  • Forgetting to set deviceID or deviceGroupID

  • Using the wrong eventPresetID when copying or running a preset

  • Trying to attach a startup preset to a group preset

  • Assuming a copied preset changes the source preset

Why This Matters

Event presets are how you keep repeated camera actions consistent.

They let you:

  • Trigger the same action on demand

  • Reuse a working preset on another device

  • Store a startup action on the device

  • Keep automation logic in one place

ActionStreamer
ActionStreamer