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
| Method | Endpoint | Description |
|---|---|---|
| GET | /ext/v1/sites/{site_id}/zones | Get zones of site |
| POST | /ext/v1/sites/{site_id}/zones/{zone_number}/events | Create event video |
| POST | /ext/v1/sites/{site_id}/zones/{zone_number}/actions/create-recording-playback | Create 2-minute playback |
| POST | /ext/v1/sites/{site_id}/zones/{zone_number}/actions/create-recording-event | Create 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
| Field | Description |
|---|---|
zone_number | Unique zone identifier (1-999) |
zone_name | Descriptive name for the zone |
zone_type | Type of zone (see Zone Types below) |
device_type | Type of sensor/device |
status | Current zone status |
bypassed | Whether zone is bypassed |
camera_id | Associated camera (if any) |
Zone Types
| Type | Description | Typical Usage |
|---|---|---|
entry_exit | Entry/exit door | Front door, garage door |
perimeter | Perimeter protection | Windows, back door |
interior | Interior protection | Motion sensors |
24_hour | Always monitored | Smoke, CO detectors, panic |
fire | Fire detection | Smoke detectors |
medical | Medical emergency | Medical panic button |
auxiliary | Auxiliary input | Custom sensors |
Zone Status Values
| Status | Description |
|---|---|
normal | Zone is in normal state |
open | Zone is open/triggered |
closed | Zone is closed/secure |
fault | Zone has a fault condition |
tamper | Zone tamper detected |
low_battery | Device 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
- Arming API - Control system arming
- Cameras API - Manage cameras
- Webhook Events - Zone event notifications