Skip to content

Device Management · Beta

Verkada
API integration

Ship Device Management features without building the integration. Full Verkada API access via Proxy and 130+ MCP-ready tools for AI agents — extend models and mappings to fit your product.

Built for specific customer use cases. Issues are resolved quickly.

Talk to us
Verkada

Use Cases

Why integrate with Verkada

Common scenarios for SaaS companies building Verkada integrations for their customers.

01

Overlay SaaS events onto Verkada video with Helix

Retail, manufacturing, and support platforms can push their own transactional or operational events into Verkada Command, making video footage searchable by business context like POS voids, machine faults, or ticket IDs.

02

Automate visitor and workforce access provisioning

HRIS, IdP, and visitor management platforms can create Verkada users, assign entry codes, activate BLE credentials, and revoke access on offboarding — eliminating manual keycard workflows for facilities teams.

03

Power space utilization analytics with real occupancy data

Workplace and real estate SaaS platforms can pull camera-based people counts and occupancy trends from Verkada to give customers objective utilization data across their portfolio.

04

Automate yard and gate management with LPR

Logistics and fleet platforms can consume Verkada LPR zone records to log truck arrivals and dwell times, then trigger gate unlocks programmatically when authorized plates are detected.

05

Centralize GSOC dispatch and emergency response

Public safety and mass notification platforms can pull camera alerts, sensor alerts, and access events from Verkada — and programmatically activate lockdown or evacuation scenarios during incidents.

What You Can Build

Ship these features with Truto + Verkada

Concrete product features your team can ship faster by leveraging Truto’s Verkada integration instead of building from scratch.

01

Bi-directional Helix event sync

Push, search, update, and delete custom events in Verkada Command so your platform's data becomes a native filter inside the customer's video timeline.

02

Automated credential lifecycle management

Provision Verkada access users, assign entry codes, activate/deactivate BLE and remote unlock, issue access cards, and enroll Face Unlock — all triggered by lifecycle events in your product.

03

Programmatic door and scenario control

Ship a remote unlock feature and one-click emergency lockdown by wiring your UI to Verkada's door unlock and access scenario activation endpoints.

04

Real-time occupancy and environmental dashboards

Embed live people counts, occupancy trends, and sensor readings (temperature, PM2.5, CO2, vape index, noise) from Verkada cameras and sensors directly inside your product.

05

LPR-driven automation workflows

Manage plates of interest, read LPR zone records with dwell times, and pull plate images to build automated yard, parking, and fleet workflows.

06

Unified physical security audit feed

Stream access events, guest visits, camera alerts, sensor alerts, and audit logs into your platform to give compliance and security teams a single source of truth.

SuperAI

Verkada AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

create_a_verkada_helix_event

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 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 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

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 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 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 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 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 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 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 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 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 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 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 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 Verkada cameras that have Occupancy Trends enabled in Command. Returns: camera_id, name.

verkada_dashboard_widgets_query_trends

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 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

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 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 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 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 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 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

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 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 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 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 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 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 the audio status (enabled or disabled) for a Verkada camera. Returns: camera_id, enabled. Required: camera_id, enabled.

list_all_verkada_camera_audio

Get the audio status for a Verkada camera. Returns: camera_id, enabled. Required: camera_id.

verkada_cloud_backup_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

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 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 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 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

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 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 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 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 all Persons of Interest active in a Verkada Command organization. Returns: person_id, label.

create_a_verkada_persons_of_interest

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 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 the label of a Verkada Person of Interest. Returns: person_id, label. Required: person_id, label.

list_all_verkada_access_groups

List Verkada access groups. Returns: group_id, name, external_id.

get_single_verkada_access_group_by_id

Get a Verkada access group by group_id. Returns: name, door_status, weekday. Required: group_id.

create_a_verkada_access_group

Create a new access group in Verkada. Returns: name, door_status, weekday. Required: name.

verkada_access_groups_remove_user

Remove a user from a Verkada access group. Returns an empty 200 response on success. Required: group_id.

verkada_access_groups_add_user

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 a Verkada access group by group_id. Returns an empty 204 response on success. Required: group_id.

list_all_verkada_access_users

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 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 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 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 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 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 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 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 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 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 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 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

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 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 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 a Verkada access card credential by setting its active status to true. Returns: door_status, weekday. Required: card_id.

verkada_access_cards_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 a Verkada access card credential. Returns an empty 200 response on success. Required: card_id.

create_a_verkada_access_license_plate

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 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 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 a Verkada license plate credential. Returns an empty 200 response on success. Required: license_plate_number.

create_a_verkada_access_mfa_code

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 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 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 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

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 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 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 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

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 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 Verkada Access Levels for the organization. Returns: access_level_id, name, access_groups, access_schedule_events, doors, sites.

create_a_verkada_access_level

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 a Verkada access level by id. Returns an empty response on success. Required: id.

get_single_verkada_access_level_by_id

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 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 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 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 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 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

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

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 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 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 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 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 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 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 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 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 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 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 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 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 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

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 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 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 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 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 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 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 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 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 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 a Verkada guest event by id. Returns an empty 200 response on success. Required: id.

get_single_verkada_guest_event_by_id

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 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 Verkada guest approved lists, optionally filtered by site. Returns: approved_list_id, site_id. Max 1000 per page.

verkada_approved_lists_add_people

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

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

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

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 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 the deny list for a Verkada Guest site. Returns an empty 204 response on success. Required: site_id.

list_all_verkada_guest_sites

List Guest sites in Verkada. Returns each site's site_id and name. No required parameters.

list_all_verkada_guest_visits

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 guest types for a Verkada Guest site. Returns: guest_type_id. Required: site_id. Max 200 per page.

list_all_verkada_alarm_devices

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 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 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 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

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.

Why Truto

Why use Truto’s MCP server for Verkada

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 650+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

How It Works

From zero to integrated

Go live with Verkada in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Verkada account

Use Truto’s frontend SDK to connect your customer’s Verkada account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Verkada

Truto’s Proxy API is a 1-to-1 mapping of the Verkada API. You call us, we call Verkada, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Verkada’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Verkada on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

How does authentication work for Verkada through Truto?

Verkada uses API key authentication scoped per organization. Your end users provide their Verkada API key during the connection flow in Truto, and Truto handles token exchange, storage, and rotation so you never touch raw credentials.

Which Verkada products are covered by the available tools?

The integration covers Verkada Command across Cameras (footage, thumbnails, analytics, alerts), Access Control (users, credentials, doors, schedules, scenarios), Helix (custom events), Guest, Alarms, Sensors, LPR, Viewing Stations, and Audit Logs.

Can I push custom event data into Verkada video timelines?

Yes. Using the Helix event tools you can create single or bulk events, define custom event types with your own fields, and update or delete them later — enabling searchable overlays on Verkada footage.

How fresh is the data I can pull — is it real-time or polled?

Most Verkada endpoints are REST-based and polled on your schedule (access events, LPR records, sensor data, occupancy trends). For lower-latency device state, Verkada also supports MQTT configuration, which is exposed via the MQTT config tools.

How does Truto handle pagination and rate limits for Verkada?

Truto normalizes Verkada's cursor-based pagination across list endpoints and manages retries and backoff when Verkada's per-endpoint rate limits are hit, so you receive complete result sets without writing that logic yourself.

Can I retrieve live video or just metadata?

Both. In addition to metadata (events, alerts, analytics), you can retrieve footage streaming URLs, generate footage tokens and shareable links, and fetch camera thumbnails or the latest thumbnail image on demand.

Verkada

Get Verkada integrated into your app

Our team understands what it takes to make a Verkada integration successful. A short, crisp 30 minute call with folks who understand the problem.