---
title: "Get Events"
method: GET
path: "/v2/events"
tags: ["Events"]
---

# Get Events

`GET /v2/events`

## Request

- Base URL: `https://api.verkada.com`
- URL: `https://api.verkada.com/v2/events`
- Auth: one of:
  - API key in header `x-verkada-auth`
  - API key in header `x-api-key`

Returns unified events from camera, access control, and sensor devices within a specified time range.

This endpoint consolidates events from camera, access control, and sensor devices in your organization,
providing a single interface to retrieve security events, access control events, and environmental sensor events.

**Default Behavior**: Returns events from all supported product types from the last hour if no filters are specified.

### Supported Event Types

**Camera Events:**
- `camera_online`, `camera_offline` - Camera connectivity status
- `motion` - Motion detection events
- `person_of_interest` - Person of Interest detections
- `license_plate_of_interest` - License Plate of Interest detections
- `tamper` - Camera tampering events
- `crowd` - Crowd detection events
- `line_crossing` - Line crossing rule violations
- `loitering` - Loitering/dwell time violations
- `inactivity` - Inactivity/no-motion alert violations

**Access Control Events:**
- `door_opened`, `door_granted`, `door_rejected` - Access events
- `door_forced_open`, `door_held_open` - Security violations
- `door_tailgating` - Tailgating detection
- `door_tamper` - Door tampering events
- `door_offline` - Access control unit connectivity
- Plus 50+ additional access control event types for comprehensive monitoring

**Sensor Events:**
- `temperature`, `humidity` - Climate monitoring alerts
- `tvoc`, `co2`, `pm25` - Air quality alerts
- `noise` - Noise level alerts
- `sensor_motion` - Motion detection from sensors
- `air_quality` - General air quality alerts

### Filtering

Use these query parameters to filter results:
- **`product_types`**: Comma-separated product types (`camera`, `access_control`, `sensor`)
- **`device_ids`**: Comma-separated list of device IDs to filter by
- **`event_types`**: Comma-separated list of event types (see supported types above)
- **`start_time`**: Start time in ISO 8601 format (e.g., `2025-01-17T09:00:00Z`)
- **`end_time`**: End time in ISO 8601 format (defaults to current time if not specified)
- **`site_ids`**: Comma-separated list of site IDs (for access control events)

### Pagination

This endpoint uses cursor-based pagination with these parameters:
- **`limit`**: Number of events to return (1-1000, default 100)
- **`cursor`**: Pagination cursor from previous response for next page
- Continue paginating while the response includes a `cursor` value



### Examples

Get all events from the last hour:
```
GET /v2/events
```

Get only camera motion events from a specific time range:
```
GET /v2/events?product_types=camera&event_types=motion&start_time=2025-01-17T09:00:00Z&end_time=2025-01-17T17:00:00Z
```

Get access control events for specific doors:
```
GET /v2/events?product_types=access_control&device_ids=door1,door2&limit=50
```

Get sensor temperature and humidity alerts:
```
GET /v2/events?product_types=sensor&event_types=temperature,humidity&start_time=2025-01-17T09:00:00Z
```

## Query parameters

- `start_time` string: Start time for events in ISO 8601 format (e.g., '2025-01-17T21:06:20Z'). Defaults to 1 hour ago if not specified.
- `end_time` string: End time for events in ISO 8601 format (e.g., '2025-01-17T22:06:20Z'). Defaults to current time if not specified.
- `product_types` string: Comma-separated list of product types to filter by. Valid values: 'camera', 'access_control'. If not specified, events from all supported product types are returned.
- `device_ids` string: Comma-separated list of specific device IDs to filter by.
- `event_types` string: Comma-separated list of event types to filter by. Valid values vary by device type. If not specified, all event types are returned.
- `site_ids` string: Comma-separated list of site IDs to filter by (applies to access control events).
- `limit` integer: Maximum number of events to return. Default is 100, maximum is 200.
- `cursor` string: Pagination cursor for retrieving the next page of results.

## Response `200`

OK

- EventsResponseV2: Response schema for v2 events API
  - `cursor` string: Pagination cursor for retrieving the next page of results
  - `items` union[], required: List of events
    - union
      - CameraEvent: Camera event
        - `device_id` string, required: ID of the device that generated the event
        - `device_type` 'camera': Always 'camera' for camera events
        - `event_id` string, required: Unique identifier for the event
        - `event_info` CameraEventInfo: Camera-specific event fields
          - `crowd_threshold` integer: Threshold that was exceeded for crowd events
          - `detected_objects` string[]: Objects detected in motion/crowd events (e.g., ['person', 'vehicle'])
          - `event_description` string: Description for AI-generated events
          - `license_plate_number` string: License plate number detected
          - `license_plate_state` string: State/region of the license plate
          - `location` string: Location description
          - `location_lat` string: Latitude coordinate
          - `location_lon` string: Longitude coordinate
          - `person_label` string: Label/name of the person of interest detected
          - `rounded_inactivity_duration_mins` integer: For inactivity alerts, how long (in minutes) the camera/group was inactive, rounded down to the nearest multiple of the alert rule's configured inactivity duration.
        - `event_type` string, required: Type of event
        - `timestamp` string, required: Event timestamp in RFC 3339 format (e.g., '2025-01-17T21:06:20+00:00')
      - SensorEvent: Sensor event
        - `device_id` string, required: ID of the device that generated the event
        - `device_type` 'sensor': Always 'sensor' for sensor events
        - `event_id` string, required: Unique identifier for the event
        - `event_info` SensorEventInfo: Sensor-specific event fields (matching proposal specification)
          - `end_time` string: The end time of the alert
          - `most_extreme_value` number: The most extreme value for the sensor that was detected during the alert window
          - `reading` string: The sensor type of the alert (i.e. temperature, TVOC)
          - `threshold` number: The user-defined threshold of the alert
        - `event_type` string, required: Type of event
        - `timestamp` string, required: Event timestamp in RFC 3339 format (e.g., '2025-01-17T21:06:20+00:00')
      - AccessEvent: Access control event
        - `device_id` string, required: ID of the device that generated the event
        - `device_type` 'access_control': Always 'access_control' for access events
        - `event_id` string, required: Unique identifier for the event
        - `event_info` AccessEventInfo: Access control specific event fields
          - `accepted` boolean: Whether the unlock attempt was accepted
          - `access_controller_id` string: Unique identifier of the access controller
          - `access_controller_name` string: Name of the access controller
          - `aux_input_id` string: Identifier of the auxiliary input
          - `aux_input_name` string: Name of the auxiliary input
          - `building_id` string: Identifier of the building
          - `building_name` string: Name of the building
          - `direction` string: Direction of access (in/out)
          - `door_id` string: Unique identifier of the door
          - `door_name` string: Name of the door
          - `entity_id` string: Identifier of the entity
          - `entity_name` string: Name of the entity
          - `entity_type` string: Type of the entity
          - `floor_id` string: Identifier of the floor
          - `floor_name` string: Name of the floor
          - `floors` FloorInfo[]: List of floors
            - `door_id` string: Unique identifier of the door
            - `floor_id` string: Unique identifier of the floor
            - `uuid` string: Event ID for the unlock of the floor
          - `granted` boolean: Whether access was granted (true) or denied (false)
          - `input_value` string: Value of the input
          - `message` string: Event message
          - `raw_card` string: Code or card number used in unlock attempt
          - `scenario_info` ScenarioInfo: Scenario event information (called lockdown in internal services)
            - `action` string: Action taken during scenario
            - `scenario` Scenario: Scenario information (called lockdown in internal services)
              - …
          - `user_info` UserInfo: User information for access events
            - `email` string: Email address of the user
            - `first_name` string: First name of the user
            - `last_name` string: Last name of the user
            - `name` string: Full name of the user
            - `phone` string: Phone number of the user
            - `user_id` string: Unique identifier of the user
        - `event_type` string, required: Type of event
        - `timestamp` string, required: Event timestamp in RFC 3339 format (e.g., '2025-01-17T21:06:20+00:00')
      - IntercomEvent: Intercom event
        - `device_id` string, required: ID of the device that generated the event
        - `device_type` 'intercom': Always 'intercom' for intercom events
        - `event_id` string, required: Unique identifier for the event
        - `event_info` IntercomEventInfo
          - `answered_by_name` string: Name of the person or receiver who answered the call
          - `answered_timestamp` string: Answered timestamp of the intercom event
          - `device_name` string: Name of the device that generated the event
          - `end_timestamp` string: End timestamp of the intercom event
          - `start_timestamp` string: Start timestamp of the intercom event
        - `event_type` string, required: Type of event
        - `timestamp` string, required: Event timestamp in RFC 3339 format (e.g., '2025-01-17T21:06:20+00:00')

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `500`: Internal Server Error

---

[API](https://skmtc.dev/verkada/apis/events-api.md) - [All operations](https://skmtc.dev/verkada/apis/events-api/llms.txt) - [OpenAPI document](https://skmtc.dev/verkada/apis/events-api/revisions/c5cf02a97101?raw)
