# Verkada MCP connector

The Verkada connector brings your cameras, alerts, occupancy trends, license plate reads, and Helix events into Claude, ChatGPT, Cursor, and the Elaichi Agent, so your team can ask about what happened on site and log events without opening Verkada Command.

Source: https://elaichi.ai/connectors/verkada/

## Facts

| | |
| --- | --- |
| Application | Verkada |
| Category | Device Management |
| AI tools | 135 |
| Authentication | Connects with an API key |
| Needs your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. 135 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once Verkada is connected

- Summarize camera alerts from the warehouse cameras this week.
- Create a helix event for the loading dock incident.
- Show max object counts by camera for yesterday.

## Connect Verkada in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Verkada.
2. Optionally set Share with, then press Connect.
3. Paste a Verkada API key. One person generates a token in Verkada and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Verkada tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Verkada to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Verkada to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Verkada to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Verkada to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Verkada tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Verkada through Elaichi

### Review overnight camera alerts by site

Security. Ask for every camera alert from the loading dock cameras since closing, and get a plain summary of what fired and when so the morning shift knows where to look first.

### Check how busy a building really is

Facilities. Pull occupancy trends and people counts for the lobby, the cafeteria, or a whole floor over the past month, and see which spaces are over capacity and which sit empty.

### Watch for a vehicle of interest

Loss Prevention. Add a plate to the license plates of interest list after an incident, then ask whether it has appeared at any lot since, pulling the matching plate images for the report.

### Log a point-of-sale event against footage

Operations. Create Helix events for register voids, deliveries, or door props so each one is stamped on the camera timeline, then search those events later by type or time window.

### Compare foot traffic across stores

Retail. Ask for peak object counts at each store entrance for the last two weeks and compare locations side by side to plan staffing and opening hours.

### Keep Helix event types and feeds tidy

IT. List and update Helix event types in bulk, check the settings that stream Verkada data to other systems, and confirm a batch job finished without clicking through every page in Command.

## Frequently asked questions

### How do I connect Verkada to Claude?

First, connect Verkada in Elaichi by pasting a Verkada API key from your Verkada Command admin settings. There is no OAuth application to register and no client ID or secret to generate. Then in Claude, open Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. Sign in as yourself and Verkada is available in the chat.

### Does Verkada work with ChatGPT and Cursor as well as Claude?

Yes. Once Verkada is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client, and the Elaichi Agent. You connect Verkada once and every client your team uses can reach it.

### What can an AI agent actually do with my Verkada data?

With Verkada connected, an agent can list recent camera alerts, report people and vehicle counts from a camera, show occupancy trends for a space, pull license plate images, and manage your list of license plates of interest. It can also create and search Helix events so incidents land on the camera timeline. Because Verkada has a lot of capabilities, short concrete asks such as "camera alerts at the warehouse since 6pm" work better than long paragraphs.

### Does connecting Verkada give the AI access to every camera and site?

No. An agent working through Verkada in Elaichi only sees the cameras, sites, and events that the Verkada API key used to connect is allowed to see, and each person still signs in to Elaichi as themselves. An Elaichi administrator can narrow that further, for example limiting a toolbox to reading alerts and occupancy, but Elaichi can never grant more than Verkada already allows.

### Can my team share one Verkada connection?

Yes. One person connects Verkada in Elaichi and shares it with a team, and nobody else ever handles or sees the API key. Each teammate still signs in to Elaichi as themselves, so every camera alert they check or Helix event they create is recorded under their own name in the audit log.

### Can I stop an agent from deleting or changing things in Verkada?

Yes. Restrictions in Elaichi work per action, so you can allow reading Verkada camera alerts and occupancy trends while blocking the creation or deletion of Helix events or license plates of interest. A blocked action is never shown to Claude, ChatGPT, or any other client, so no prompt can reach it.

### What happens to a Verkada connection when someone leaves?

When a person is offboarded in Elaichi, their access to Verkada through every client ends at once. A Verkada connection shared with a team keeps working for everyone else, and if the person who connected it leaves, an administrator can reassign it. Disconnecting Verkada once in Elaichi removes it from Claude, ChatGPT, Cursor, and every other client at the same time.

## All 135 Verkada tools

Every tool below is callable through https://api.elaichi.ai/mcp once Verkada is connected, subject to the toolbox it is in and the restrictions on the caller.

- **Create a Verkada helix event** (Create). Create a new Helix event in Verkada Command by specifying attribute values for a previously defined Event Type. Returns: attribute_filters, keywords. Required: camera_id, event_type_uid, time_ms. Not all attribute keys tied to the Event Type need to be provided.
- **Verkada helix events search** (Search). Search for Helix events in Verkada Command by camera, event type, time range, keywords, or attribute filters. Returns matching events with camera_id, event_type_uid, time_ms, attributes, and flagged for each result. No required parameters beyond authentication.
- **Verkada helix events bulk create** (Create). Create multiple Helix events in a single asynchronous batch request in Verkada Command. Returns: attribute_filters, keywords. Required: items. Maximum 1,000 events per batch; events are processed asynchronously and the 202 response signals the job is queued, not completed.
- **List all Verkada helix events** (List). Retrieve a single Verkada Helix Event posted to Command by specifying its camera, event type, and exact event timestamp. Returns: attribute_filters, keywords. Required: camera_id, time_ms, event_type_uid.
- **Verkada helix events bulk delete** (Delete). Delete a Helix event from Verkada Command. Returns an empty 200 response on success. Required: camera_id, time_ms, event_type_uid.
- **Verkada helix events bulk update** (Update). Update an existing Helix event in Verkada Command, useful for adding or changing attribute keys and values on a posted event. Returns: attribute_filters, keywords. Required: camera_id, time_ms, event_type_uid.
- **List all Verkada helix event types** (List). List all Verkada Helix Event Types in a Command organization, optionally filtered by event type UID or name. Returns: event_type_uid, name, event_schema.
- **Create a Verkada helix event type** (Create). Create a new Verkada Helix Event Type by defining its name and event schema. This is the required first step for using Verkada Helix. Returns: attribute_filters, keywords. Required: name, event_schema.
- **Verkada helix event types bulk delete** (Delete). Delete a Verkada Helix Event Type from Command by event_type_uid. All Helix Events linked to that Event Type UID are also deleted from Command. Returns an empty 200 response on success. Required: event_type_uid.
- **Verkada helix event types bulk update** (Update). Update a Verkada Helix Event Type — add attribute keys to the event schema or change its name. Returns: attribute_filters, keywords. Required: event_type_uid.
- **Get single Verkada batch job by ID** (Get). Get the status of an asynchronous Verkada Helix batch job by id. Returns: status, failed_items, failure_file_url. Required: id.
- **List all Verkada camera alerts** (List). List Verkada camera alert notifications (events) generated within a Command organization, ordered by time. Returns: camera_id, created, crowd_threshold, image_url, notification_type, objects, person_label, video_url. Optional filters: start_time, end_time, notification_type, include_image_url. Default time range is the last hour; max page_size is 200.
- **Verkada camera analytics get max object counts** (Get). Get the maximum concurrent people and vehicle detection counts for a Verkada camera at a specific timestamp or over a time range. Returns: time, people_count, vehicle_count. Required: camera_id. Only supported for 2nd and 3rd generation Verkada cameras.
- **Verkada camera analytics get object counts** (Get). Get time-stamped people and vehicle detection counts for a Verkada camera over a time range. Returns: time, people_count, vehicle_count. Required: camera_id. Counts are derived from periodic thumbnails and may under-represent actual counts in high-traffic areas.
- **List all Verkada occupancy trends** (List). List Verkada occupancy trend data points for a specific camera and preset. Returns: time, count. Required: camera_id, preset_id. The camera must have Occupancy Trends enabled in Command. The type parameter is deprecated; use preset_id instead.
- **Verkada occupancy trends list cameras** (List). List Verkada cameras that have Occupancy Trends enabled in Command. Returns: camera_id, name.
- **Verkada dashboard widgets query trends** (Search). Query Verkada operational dashboard widget trends by dashboard id with optional time range, interval, site, and widget filters. Returns: data. Required: dashboard_id.
- **Verkada mqtt configs set** (Set). Set the MQTT broker configuration for a Verkada camera to publish real-time Object Position Events (people and vehicle detections) to an MQTT server. Returns: camera_id, broker_host_port, broker_cert, client_username. Required: broker_cert, broker_host_port, camera_id. Only ports 443, 123, and 53 are supported.
- **List all Verkada mqtt configs** (List). Get the MQTT broker configuration currently set for a Verkada camera's Object Position Events. Returns: camera_id, broker_host_port, broker_cert, client_username. Required: camera_id. The configured password is never returned in the response.
- **List all Verkada lpr images** (List). List detected license plate numbers, timestamps, and images from a Verkada LPR camera. Returns: camera_id, created, detected, license_plate_number, confidence, crop, image_url, license_plate_state. Required: camera_id. Max page_size is 200 (defaults to 100); retrieval is limited to one camera per request.
- **Delete a Verkada license plates of interest by ID** (Delete). Delete a License Plate of Interest (LPOI) from a Verkada Command organization. The `license_plate` value must be an exact match of the LPOI profile in Command, otherwise the plate will not be deleted. Required: license_plate. Returns an empty 200 response on success.
- **List all Verkada license plates of interest** (List). List all active License Plates of Interest (LPOI) in a Verkada Command organization. Returns: license_plate, description, created_at. Deleted LPOI profiles are excluded from the response.
- **Create a Verkada license plates of interest** (Create). Create a License Plate of Interest (LPOI) in Verkada Command by providing the exact license plate number and a description. Returns: license_plate, description, created_at. Required: license_plate, description.
- **Verkada license plates of interest bulk delete** (Delete). Delete multiple License Plates of Interest (LPOI) in Verkada Command by uploading a CSV file containing the license plates to remove. The CSV file must include a "License Plate" column header. Returns an empty 200 response on success. Required: file.
- **Verkada license plates of interest bulk create** (Create). Bulk create License Plates of Interest in Verkada by uploading a CSV file. The CSV column headers must be "License Plate" and "Name" for creating LPOIs. Returns a 200 OK response on success. Required: file.
- **Verkada license plates of interest bulk update** (Update). Update the description of an existing License Plate of Interest (LPOI) in Verkada Command. Returns: license_plate, description. Required: license_plate, description.
- **List all Verkada lpr timestamps** (List). List detection timestamps for a specific license plate on a single Verkada LPR camera. Returns an array of Unix timestamps, one per detection of the requested plate. Required: camera_id, license_plate. Only one camera can be queried per request.
- **List all Verkada lpr zones** (List). List all LPR Zones in your Verkada Command organization. Returns: zone_id, zone_name, created_at, updated_at, preview_camera_id.
- **Verkada lpr zones get metrics** (Get). Get top-level metrics for a Verkada LPR Zone within a specified time range. Returns: occupancy, entries, exits, unique_visitors, median_time_in_zone, max_time_in_zone, avg_time_in_zone. Required: zone_id, start_time, end_time.
- **Verkada lpr zones list records** (List). List all visit records for a Verkada LPR Zone within a specified time range. Returns: license_plate, entry_time, entry_camera_id, exit_time, exit_camera_id, dwell_time, vehicle_status, plate_thumbnail_url, vehicle_thumbnail_url, invalid. Required: zone_id. Defaults to the last 24 hours if no time range is specified.
- **Verkada camera audio set** (Set). Set the audio status (enabled or disabled) for a Verkada camera. Returns: camera_id, enabled. Required: camera_id, enabled.
- **List all Verkada camera audio** (List). Get the audio status for a Verkada camera. Returns: camera_id, enabled. Required: camera_id.
- **Verkada cloud backup set** (Set). Configure cloud backup settings for a Verkada camera, including upload schedule, retention days, video quality, and footage type. Returns: camera_id, days_to_preserve, enabled, time_to_preserve, upload_timeslot, video_quality, video_to_upload. Required: camera_id, days_to_preserve, enabled, time_to_preserve, upload_timeslot, video_quality, video_to_upload.
- **List all Verkada cloud backup** (List). Get cloud backup settings for a Verkada camera. Returns: camera_id, days_to_preserve, enabled, time_to_preserve, upload_timeslot, video_quality, video_to_upload. Required: camera_id.
- **List all Verkada cameras** (List). List all cameras in your Verkada Command organization. Returns: camera_id, cloud_retention, date_added, device_retention, firmware, firmware_update_schedule, last_online, local_ip, location, location_angle, location_lat, location_lon, mac, model, name, people_history_enabled, serial, site, site_id, status, timezone, vehicle_history_enabled. Supports pagination (max 200 per page, defaults to 100).
- **Verkada footage get link** (Get). Get a Verkada footage viewing link for a specific camera. If no timestamp is provided, a live link is returned; otherwise a historical footage link is returned. Returns: url. Required: camera_id. The link expires after 30 days.
- **Verkada footage get token** (Get). Get a Verkada streaming token for viewing live or historical camera footage. Returns: jwt, accessibleCameras, accessibleSites. The accessibleCameras and accessibleSites fields can be omitted from the response via the exclude_accessible_resources parameter.
- **Verkada footage stream** (Action). Stream live or historical Verkada camera footage. Returns the HLS playlist or video segment binary stream. Required: stream_id, org_id, camera_id, jwt. For live footage, set start_time and end_time to 0; for historical footage, the time range must not exceed 3600 seconds.
- **Verkada thumbnails get image** (Get). Get a thumbnail image from a Verkada camera at an approximate timestamp, retrieved from the cloud-based cache. Returns the raw binary data of a JPEG image for the closest available thumbnail. Required: camera_id. High-resolution thumbnails are only generated for cameras that have the timelapse feature enabled in Command.
- **Verkada thumbnails get latest** (Get). Get the most recent thumbnail image captured by a Verkada camera, automatically retrieved from the cloud backend. Returns the raw binary data of a JPEG image for the latest available thumbnail. Required: camera_id.
- **Verkada thumbnails get link** (Get). Get a time-limited link to a Verkada camera thumbnail at an approximate timestamp, retrieved from the cloud backend. Returns: url. Required: camera_id. The returned link corresponds to the closest available thumbnail, with up to a 5-minute variance when no motion is detected.
- **List all Verkada persons of interest** (List). List all Persons of Interest active in a Verkada Command organization. Returns: person_id, label.
- **Create a Verkada persons of interest** (Create). Create a new Verkada Person of Interest from a base64-encoded face image. Returns: person_id, label. Required: base64_image, label.
- **Verkada persons of interest bulk delete** (Delete). Delete a Verkada Person of Interest by person_id. Returns an empty 204 response on success. Required: person_id.
- **Verkada persons of interest bulk update** (Update). Update the label of a Verkada Person of Interest. Returns: person_id, label. Required: person_id, label.
- **List all Verkada access groups** (List). List Verkada access groups. Returns: group_id, name, external_id.
- **Get single Verkada access group by ID** (Get). Get a Verkada access group by group_id. Returns: name, door_status, weekday. Required: group_id.
- **Create a Verkada access group** (Create). Create a new access group in Verkada. Returns: name, door_status, weekday. Required: name.
- **Verkada access groups remove user** (Delete). Remove a user from a Verkada access group. Returns an empty 200 response on success. Required: group_id.
- **Verkada access groups add user** (Add). Add a user to a Verkada access group by providing the group identifier and either the Verkada user_id or an external_id. Returns an empty 200 response on success. Required: group_id. Either user_id or external_id must be supplied to identify the user.
- **Verkada access groups bulk delete** (Delete). Delete a Verkada access group by group_id. Returns an empty 204 response on success. Required: group_id.
- **List all Verkada access users** (List). List Verkada access users (members) for the organization. Returns each user with user_id, email, first_name, last_name, middle_name, phone, external_id, employee_id, company_name, department, department_id, employee_title, employee_type, and name. Set include_visitors to true to include visitor users in the response.
- **Get single Verkada access user by ID** (Get). Get a single Verkada access user by user_id, external_id, email, or employee_id. Returns: user_id, email, first_name, last_name, name, phone, door_status, weekday.
- **Verkada access users activate ble** (Activate). Activate Bluetooth Low Energy (BLE) access for a Verkada access user. The user must be identified by providing one of user_id, external_id, email, or employee_id. Returns a 200 OK response on success.
- **Verkada access users deactivate ble** (Deactivate). Deactivate the BLE (Bluetooth) access method for a Verkada access user. Returns a 200 OK response on success. Identify the target user with one of user_id, external_id, email, or employee_id.
- **Verkada access users set end date** (Set). Set the end date controlling when a Verkada access user's credentials become inactive. The target user is identified by one of user_id, external_id, email, or employee_id. Required: end_date (Unix timestamp in seconds). Returns an empty 200 response on success.
- **Verkada access users delete entry code** (Delete). Delete the keypad entry code (PIN) for a Verkada access user identified by one of user_id, external_id, email, or employee_id. Returns an empty 200 response on success.
- **Verkada access users set entry code** (Set). Set the keypad entry code (PIN) for a Verkada access user identified by one of user_id, external_id, email, or employee_id. The entry_code must be a string of 4–16 digits unique within the organization. Returns an empty 200 response on success. Required: entry_code.
- **Verkada access users send pass invite** (Send). Send a Verkada Pass app invite to an access user identified by one of user_id, external_id, email, or employee_id. Returns an empty 200 response on success.
- **Verkada access users activate remote unlock** (Activate). Activate remote unlock for a Verkada access user identified by one of user_id, external_id, email, or employee_id, enabling them to unlock doors remotely via the Pass app. Returns an empty 200 response on success.
- **Verkada access users deactivate remote unlock** (Deactivate). Deactivate remote unlock for a Verkada access user identified by one of user_id, external_id, email, or employee_id, disabling their ability to unlock doors remotely via the Pass app. Returns an empty 200 response on success.
- **Verkada access users set start date** (Set). Set the start date for a Verkada access user, controlling when the user's credentials become active. Identify the user by providing one of user_id, external_id, email, or employee_id. Returns an empty 200 response on success. Required: start_date (Unix timestamp in seconds).
- **Verkada access profile photos upload** (Upload). Upload a profile photo for a Verkada access user identified by user_id or external_id. Set overwrite to true to replace an existing photo. Returns an empty 200 response on success. Required: file.
- **List all Verkada access profile photos** (List). Get the profile photo for a Verkada access user identified by user_id or external_id. Set original to true to retrieve the original uncropped image instead of the cropped version. Returns the profile photo image data (binary response).
- **Verkada access profile photos bulk delete** (Delete). Delete the profile photo for a Verkada access user identified by user_id or external_id. Returns an empty 200 response on success.
- **Create a Verkada access card** (Create). Create a new Verkada access card credential for a user with a specified card type and encoding parameters. Returns: door_status, weekday. Required: type.
- **Verkada access cards activate** (Activate). Activate a Verkada access card credential by setting its active status to true. Returns: door_status, weekday. Required: card_id.
- **Verkada access cards deactivate** (Deactivate). Deactivate a Verkada access card credential by setting its active status to false. Returns: door_status, weekday. Required: card_id.
- **Verkada access cards bulk delete** (Delete). Delete a Verkada access card credential. Returns an empty 200 response on success. Required: card_id.
- **Create a Verkada access license plate** (Create). Create a Verkada license plate credential for a user. Returns the created credential including license_plate_number, active, external_id, user_id, and name. Required: license_plate_number.
- **Verkada access license plates activate** (Activate). Activate a Verkada license plate credential. Returns the updated credential including license_plate_number, active, and user_id. Required: license_plate_number.
- **Verkada access license plates deactivate** (Deactivate). Deactivate a Verkada license plate credential. Returns the updated credential including license_plate_number, active, and user_id. Required: license_plate_number.
- **Verkada access license plates bulk delete** (Delete). Delete a Verkada license plate credential. Returns an empty 200 response on success. Required: license_plate_number.
- **Create a Verkada access MFA code** (Create). Create an MFA code credential for a Verkada access user. Returns a 200 OK response on success with no documented response body. Required: code. Provide external_id or user_id to identify the user.
- **Verkada access MFA codes bulk delete** (Delete). Delete an MFA code credential for a Verkada access user. Returns a 200 OK response on success with no documented response body. Required: code. Provide external_id or user_id to identify the user.
- **Verkada face unlock external users disable** (Disable). Disable face unlock for a Verkada external access user. Returns: org_id, webhook_type, created_at, webhook_id, data. Required: external_id.
- **Verkada face unlock external users enable with photo** (Enable). Enable face unlock for a Verkada external access user by copying their profile photo as the face credential. Returns: org_id, webhook_type, created_at, webhook_id, data. Required: external_id.
- **Verkada face unlock external users invite** (Invite). Send a face unlock invitation to a Verkada external access user via email and/or SMS. Returns: org_id, webhook_type, created_at, webhook_id, data. Required: external_id.
- **Verkada face unlock external users upload photo** (Upload). Upload a photo to create a face unlock credential for a Verkada external access user. Returns: org_id, webhook_type, created_at, webhook_id, data. Required: external_id.
- **Verkada face unlock users disable** (Disable). Disable face unlock for a Verkada access user by removing their face credential. Returns an empty 200 response on success. Required: user_id.
- **Verkada face unlock users enable with photo** (Enable). Enable face unlock for a Verkada access user by copying their existing profile photo as the face credential. Returns an empty 201 response on success. Required: user_id.
- **Verkada face unlock users invite** (Invite). Send a face unlock invitation to a Verkada access user through email and/or SMS. Returns an empty 201 response on success. Required: user_id.
- **Verkada face unlock users upload photo** (Upload). Upload a photo to create a face unlock credential for a Verkada access user. Returns an empty 201 response on success. Required: user_id.
- **List all Verkada access levels** (List). List Verkada Access Levels for the organization. Returns: access_level_id, name, access_groups, access_schedule_events, doors, sites.
- **Create a Verkada access level** (Create). Create a new Verkada Access Level granting door access to specified Access Groups across designated sites and doors. Returns: name, door_status, weekday. Required: name, access_groups, access_schedule_events, doors, sites.
- **Delete a Verkada access level by ID** (Delete). Delete a Verkada access level by id. Returns an empty response on success. Required: id.
- **Get single Verkada access level by ID** (Get). Get a specific Verkada access level by id. Returns the access level detail including access_level_id, name, access_groups, doors, sites, and access_schedule_events. Required: id.
- **Update a Verkada access level by ID** (Update). Update a Verkada door access level by id. Returns the updated access level including its name, access_groups, doors, sites, and access_schedule_events. Required: id, name, access_groups, access_schedule_events, doors, sites.
- **Create a Verkada access schedule event** (Create). Create a Verkada access schedule event for a door access level, specifying the weekday and time window during which access is granted. Returns: door_status, weekday. Required: access_level_id, start_time, end_time, weekday.
- **Delete a Verkada access schedule event by ID** (Delete). Delete a Verkada access schedule event by id within a door access level. Returns an empty 204 response on success. Required: access_level_id, id.
- **Get single Verkada access schedule event by ID** (Get). Get a single Verkada access schedule event by id within a door access level. Returns: door_status, weekday. Required: access_level_id, id.
- **Update a Verkada access schedule event by ID** (Update). Update a Verkada access schedule event by id within a door access level, modifying the weekday, time window, or door status. Returns: door_status, weekday. Required: access_level_id, id, start_time, end_time, weekday.
- **Verkada doors admin unlock** (Action). Admin-unlock a Verkada door by providing its door UUID. No user information is required in the request body. Required: door_id. Returns an empty 200 response on success.
- **Verkada doors user unlock** (Action). Unlock a Verkada door on behalf of a specific user, evaluating that user's permission to unlock the door. Required: door_id, and either user_id or external_id to identify the user. Returns an empty 200 response on success.
- **List all Verkada doors** (List). List Verkada doors, optionally filtered by specific door IDs or site IDs. Returns each door with its door_id, name, acu_name, acu_id, site, api_control_enabled, and camera_info.
- **List all Verkada door exception calendars** (List). List Verkada door exception calendars, optionally filtered by last update time. Returns: calendar_id, name, doors, exceptions, last_updated_at.
- **Create a Verkada door exception calendar** (Create). Create a new Verkada door exception calendar with a name, applied door IDs, and door exceptions. Returns: name, door_status, weekday. Required: name.
- **Delete a Verkada door exception calendar by ID** (Delete). Delete a Verkada door exception calendar by id. Returns an empty 200 response on success. Required: id.
- **Get single Verkada door exception calendar by ID** (Get). Get a Verkada door exception calendar by id. Returns the calendar object including calendar_id, name, doors (door IDs the calendar's exceptions apply to), and exceptions (door exception entries with date, door_status, start_time, end_time, all_day_default, double_badge, and first_person_in settings). Required: id.
- **Update a Verkada door exception calendar by ID** (Update). Update a Verkada door exception calendar by id, replacing its name, applied doors, and door exceptions. Returns: name, door_status, weekday. Required: id, name.
- **Create a Verkada door exception** (Create). Create a door exception in a Verkada exception calendar. Returns: id, all_day_default, door_status, double_badge, first_person_in. Required: calendar_id, date, start_time, end_time. If all_day_default is TRUE, door_status must be access_controlled and start_time/end_time are auto-set to 00:00:00 and 23:59:59.
- **Delete a Verkada door exception by ID** (Delete). Delete a door exception from a Verkada exception calendar by id. Returns an empty 204 response on success. Required: calendar_id, id.
- **Get single Verkada door exception by ID** (Get). Get a specific Verkada door exception by id within an exception calendar. Returns: id, all_day_default, door_status, double_badge, first_person_in. Required: calendar_id, id.
- **Update a Verkada door exception by ID** (Update). Update a Verkada door exception by id within an exception calendar. Returns: id, all_day_default, door_status, double_badge, first_person_in. Required: calendar_id, id, date, start_time, end_time.
- **List all Verkada access events** (List). List Verkada access control events within a configurable time range, filterable by event type, site, device, or user. Returns: event_id, notification_type, device_id, created, device_type, door_id, direction, input_value, aux_info, user_info, lockdown_info, door_info. Max 200 per page.
- **List all Verkada access scenarios** (List). List Verkada access scenarios with optional filtering by scenario IDs, site IDs, and scenario types. Returns: scenario_id, scenario_type, site_id. The types parameter is deprecated; use scenario_types instead.
- **Verkada access scenarios activate** (Activate). Activate a Verkada access scenario by scenario_id, triggering the scenario (e.g., lockdown or evacuate) across its scoped sites. Returns an empty 200 response on success. Required: scenario_id.
- **Verkada access scenarios release** (Action). Release an access scenario in Verkada to trigger a door unlock. Returns an empty 200 response on success. Required: scenario_id.
- **List all Verkada audit logs** (List). List Verkada audit logs within a specified time range. Returns: timestamp, processed_timestamp. Supports filtering by start_time and end_time as Unix timestamps in seconds, with an option to filter by processed_timestamp instead of timestamp for regular polling. Max 200 items per page.
- **Create a Verkada user** (Create). Create a new Verkada user with profile and organizational attributes. Returns: user_id, external_id, name, email, first_name, middle_name, last_name, phone, company_name, department, department_id, employee_id, employee_title, employee_type.
- **List all Verkada users** (List). List Verkada users, optionally filtered to a specific user by user_id or external_id. Returns: user_id, external_id, name, email, first_name, middle_name, last_name, phone, company_name, department, department_id, employee_id, employee_title, employee_type.
- **Verkada users bulk delete** (Delete). Delete a Verkada user identified by user_id or external_id. Returns an empty 200 response on success. At least one of user_id or external_id must be provided.
- **Verkada users bulk update** (Update). Update an existing Verkada user's profile and organizational attributes. Returns: user_id, external_id, name, email, first_name, middle_name, last_name, phone, company_name, department, department_id, employee_id, employee_title, employee_type. Identify the user with user_id or external_id; at least one must be provided.
- **List all Verkada sensor alerts** (List). List Verkada sensor alert events for specified sensor devices within a time range. Returns alert event records with id and attributes containing sensor-type-specific alert fields. Required: device_ids. Max 200 per page.
- **List all Verkada sensor data** (List). List Verkada environment sensor data readings for a device within a specified time range. Returns: time, humidity, motion, noise_level, pm_2_5, pm_4_0, pm_1_0_0, tamper, temperature, tvoc, usa_air_quality_index, vape_index, carbon_dioxide, carbon_monoxide, barometric_pressure, formaldehyde, ambient_light, tvoc_index, heat_index. Required: device_id. Max 200 per page; data stored at 1s intervals…
- **List all Verkada guest events** (List). List Verkada guest events for a site within a specified time range. Returns: id, event_name, event_address, event_description, event_times, guest_type_id, host_id, invitees, rsvp_enabled, site_id, walk_in_enabled. Required: site_id, start_time, end_time. Max 200 per page.
- **Create a Verkada guest event** (Create). Create a new Verkada guest event with specified times, host, and guest type. Returns: id, event_name, event_times, rsvp_enabled, walk_in_enabled. Required: site_id, event_times, guest_type_id, host_id. Up to 30 event time spans allowed, must be within 1 year in the future.
- **Delete a Verkada guest event by ID** (Delete). Delete a Verkada guest event by id. Returns an empty 200 response on success. Required: id.
- **Get single Verkada guest event by ID** (Get). Get a single Verkada guest event by id. Returns: id, event_name, event_times, rsvp_enabled, walk_in_enabled. Required: id.
- **List all Verkada guest hosts** (List). List Guest hosts for a Verkada Guest site, optionally filtered by email. Returns: host_id, full_name, email, student_id, student_number. Required: site_id. Maximum 200 hosts per page.
- **List all Verkada approved lists** (List). List Verkada guest approved lists, optionally filtered by site. Returns: approved_list_id, site_id. Max 1000 per page.
- **Verkada approved lists add people** (Add). Add people to one or more Verkada guest approved lists. Returns the people array with each person's approved_list_ids, full_name, email, and person_id. Required: people. Max 100 people per request, up to 10 approved list IDs per person.
- **Verkada approved lists remove people** (Delete). Remove people from Verkada guest approved lists by person_id or external_id. Returns the people array with approved_list_ids. Required: people. Max 100 people per request.
- **Verkada approved lists get members** (Get). List members of a Verkada guest approved list. Returns: person_id, full_name, email, address, date_of_birth, phone_number, external_id, expiration_timestamp, approved_list_ids. Required: approved_list_id.
- **Verkada approved lists reset** (Action). Reset a Verkada guest approved list, removing all its members. Returns: approved_list_id. Required: approved_list_id.
- **Create a Verkada guest deny list** (Create). Create or replace the deny list for a Verkada Guest site by uploading a base64-encoded CSV. Returns a 200 OK response on success with no documented response body fields. Required: site_id, base64_ascii_deny_list_csv.
- **Verkada guest deny lists bulk delete** (Delete). Delete the deny list for a Verkada Guest site. Returns an empty 204 response on success. Required: site_id.
- **List all Verkada guest sites** (List). List Guest sites in Verkada. Returns each site's site_id and name. No required parameters.
- **List all Verkada guest visits** (List). List Verkada Guest visits within a time range for a specific site. Returns: visit_id, visit_type, checked_in_time, full_name, email, phone_number, hosts, device_name, is_contactless, site_id. Required: site_id, start_time, end_time. start_time and end_time must be at most one day apart.
- **List all Verkada guest types** (List). List guest types for a Verkada Guest site. Returns: guest_type_id. Required: site_id. Max 200 per page.
- **List all Verkada alarm devices** (List). List Verkada Classic Alarm devices for a site. Returns: device_id, device_type, device_name, site_id, site_name, partition_id, partition_name. Required: site_id. Only supported for Classic Alarm devices.
- **List all Verkada alarm sites** (List). List Verkada Classic Alarm sites, optionally filtered by a comma-delimited set of site IDs. Returns: site_id, site_name. Only supported for Classic Alarm sites.
- **List all Verkada viewing station devices** (List). List all viewing station devices in Verkada. Returns a collection of viewing station device records from the organization's Command platform. No required parameters.
- **List all Verkada events** (List). List Verkada events across camera and access control products within a configurable time range. Returns items with event_id, device_id, created, notification_type, and device_type. Filter by product_types, device_ids, event_types, and site_ids. Defaults to the last hour if no time range is specified. Max 200 per page.
- **List all Verkada API token** (List). Generate a short-lived Verkada API token using the configured API key. Returns: token. The token is valid for 30 minutes and is used to authenticate subsequent Verkada API calls.
