API Reference

Zones API

Manage security zones and create zone recordings

Zones API

Manage security zones at sites and create video recordings for zone events.

Endpoints Overview

MethodEndpointDescription
GET/ext/v1/sites/{site_id}/zonesGet zones of site
POST/ext/v1/sites/{site_id}/zones/{zone_number}/eventsCreate event video
POST/ext/v1/sites/{site_id}/zones/{zone_number}/actions/create-recording-playbackCreate 2-minute playback
POST/ext/v1/sites/{site_id}/zones/{zone_number}/actions/create-recording-eventCreate video recording

Get Zones of Site

Retrieve all security zones configured at a site.

Endpoint

GET /ext/v1/sites/{site_id}/zones

Request Example

curl -X GET "https://api.chektdev.com/ext/v1/sites/site_123abc/zones" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response (200 OK)

{
  "data": {
    "zones": [
      {
        "zone_number": 1,
        "zone_name": "Front Door",
        "zone_type": "entry_exit",
        "device_type": "door_contact",
        "status": "closed",
        "bypassed": false,
        "camera_id": "cam_123",
        "settings": {
          "entry_delay_seconds": 30,
          "exit_delay_seconds": 60,
          "chime_enabled": true
        },
        "last_triggered": "2025-01-14T18:30:00Z"
      },
      {
        "zone_number": 2,
        "zone_name": "Living Room Motion",
        "zone_type": "interior",
        "device_type": "motion_sensor",
        "status": "normal",
        "bypassed": false,
        "camera_id": "cam_456",
        "settings": {
          "sensitivity": "medium"
        },
        "last_triggered": null
      },
      {
        "zone_number": 3,
        "zone_name": "Bedroom Window",
        "zone_type": "perimeter",
        "device_type": "window_contact",
        "status": "open",
        "bypassed": false,
        "camera_id": null,
        "last_triggered": "2025-01-15T08:00:00Z"
      }
    ],
    "total_count": 3
  }
}

Zone Fields

FieldDescription
zone_numberUnique zone identifier (1-999)
zone_nameDescriptive name for the zone
zone_typeType of zone (see Zone Types below)
device_typeType of sensor/device
statusCurrent zone status
bypassedWhether zone is bypassed
camera_idAssociated camera (if any)

Zone Types

TypeDescriptionTypical Usage
entry_exitEntry/exit doorFront door, garage door
perimeterPerimeter protectionWindows, back door
interiorInterior protectionMotion sensors
24_hourAlways monitoredSmoke, CO detectors, panic
fireFire detectionSmoke detectors
medicalMedical emergencyMedical panic button
auxiliaryAuxiliary inputCustom sensors

Zone Status Values

StatusDescription
normalZone is in normal state
openZone is open/triggered
closedZone is closed/secure
faultZone has a fault condition
tamperZone tamper detected
low_batteryDevice battery low

Create Zone Event Video

Create a video recording for a zone event with alarm data.

Endpoint

POST /ext/v1/sites/{site_id}/zones/{zone_number}/events

Request Body

{
  "event_type": "zone_triggered",
  "alarm_xml": "<ZoneAlarm>...</ZoneAlarm>",
  "duration_seconds": 30,
  "pre_buffer_seconds": 10
}

Response (200 OK)

{
  "data": {
    "recording_id": "rec_zone_789",
    "zone_number": 1,
    "camera_id": "cam_123",
    "event_type": "zone_triggered",
    "status": "recording",
    "duration_seconds": 30,
    "started_at": "2025-01-15T10:30:00Z"
  }
}

Create Zone Playback

Generate a 2-minute playback clip for a zone's associated camera.

Endpoint

POST /ext/v1/sites/{site_id}/zones/{zone_number}/actions/create-recording-playback

Request Body

{
  "start_time": "2025-01-15T10:28:00Z",
  "duration_seconds": 120
}

Response (200 OK)

{
  "data": {
    "recording_id": "rec_zone_456",
    "zone_number": 1,
    "camera_id": "cam_123",
    "type": "playback",
    "start_time": "2025-01-15T10:28:00Z",
    "duration_seconds": 120,
    "status": "processing",
    "playback_url": "https://recordings.chektdev.com/rec_zone_456",
    "expires_at": "2025-01-22T10:30:00Z"
  }
}

Create Zone Recording

Create a video recording for a zone event.

Endpoint

POST /ext/v1/sites/{site_id}/zones/{zone_number}/actions/create-recording-event

Request Body

{
  "event_name": "Zone 1 Activity",
  "duration_seconds": 60
}

Response (200 OK)

{
  "data": {
    "recording_id": "rec_zone_321",
    "zone_number": 1,
    "camera_id": "cam_123",
    "event_name": "Zone 1 Activity",
    "duration_seconds": 60,
    "status": "recording",
    "started_at": "2025-01-15T10:30:00Z"
  }
}

Bypassing Zones

Zones can be bypassed during arming to allow arming even when a zone is open. See Arming API for details.

Alternative Endpoints

Using Reference ID

GET /ref/v1/sites/{account_reference_id}/zones
POST /ref/v1/sites/{account_reference_id}/zones/{zone_number}/events
POST /ref/v1/sites/{account_reference_id}/zones/{zone_number}/actions/create-recording-playback
POST /ref/v1/sites/{account_reference_id}/zones/{zone_number}/actions/create-recording-event

Next Steps