About Verkada

Verkada is a cloud-managed physical security platform that provides comprehensive surveillance, access control, and environmental monitoring solutions. Connecting Verkada to Serval enables automated security management, user provisioning, access control workflows, and incident response directly from your service desk.

What the Verkada integration enables

CapabilityDescription
Access ManagementCreate, update, and manage users and their access permissions
Security AutomationAutomate camera alerts, access events, and security workflows
User ProvisioningStreamline employee onboarding with automatic Verkada account creation
Event MonitoringAccess real-time security events and alerts for incident response
Anything defined in the Verkada API can be accessed through Serval.

Prerequisites

  • You must have admin permissions in your Verkada Command platform
  • Access to Verkada’s API key management section
  • Organization admin privileges to create and manage API keys

Create an API Key

Verkada uses a two-step authentication process with API keys and temporary access tokens.
  1. In Verkada Command, navigate to your Admin / Org Settings
  2. Go to the API & Integrations tab
  3. Click ”+ Add”
  4. Configure your API key:
    • Name: Enter “ServalIntegration” or another descriptive name
    • Endpoints: Select the specific API endpoints that you want Serval to be able to access.
    • Permission Scope: Choose between Read-Only or Read/Write based on your needs:
      • Read-Only: For retrieving data (recommended for most use cases)
      • Read/Write: For creating/modifying data
  5. Set the Expiration
  6. Click “Generate API”
  7. Important: Copy the API key immediately - it will only be displayed once
For detailed API documentation, see Verkada’s Quick Start Guide.

Service Regions

Verkada operates in different geographic regions. Make sure to use the correct API domain for your Verkada org:
  • Default Region (United States): https://api.verkada.com
  • Europe Region: https://api.eu.verkada.com
  • Australia: https://api.au.verkada.com
  • GovCloud Organizations: http://api.verkadagov.com
For more information, see Verkada Service Regions.

Serval Configuration

  1. In Serval go to Apps → Available → Verkada → Connect
  2. Enter the following information:
    FieldDescription
    Integration NameA friendly name for this integration (e.g., “Verkada Security Platform”)
    API KeyThe API key generated from Verkada Command
    API DomainYour Verkada API domain / Service region
    Organization IDYour Verkada organization ID (found in Command settings)
  3. Click Save
The integration will automatically handle token exchange and refresh, so you don’t need to manage authentication tokens manually.

Available Workflows

Create Verkada User

Automatically provisions new users in Verkada with their basic information and external ID mapping. Inputs:
  • Email address
  • First name
  • Last name
  • External ID (for system integration)
  • Employee ID (optional)
Use cases:
  • Employee onboarding automation
  • Contractor access provisioning
  • Automated user lifecycle management

Security & Authentication

The Verkada integration uses Verkada’s secure token-based authentication:
  1. API Key Exchange: Your API key is exchanged for a temporary access token (valid for 30 minutes)
  2. Automatic Refresh: Tokens are automatically refreshed before expiration
  3. Secure Storage: API keys are encrypted and securely stored in Serval
  4. Regional Compliance: Supports both US and EU data residency requirements
All API communications use HTTPS with proper authentication headers.

Usage Examples

Basic User Management

import * as verkada from "serval/integrations/verkada";

// Create a new user
const newUser = await verkada.common.createUser(
  {
    email: "john.doe@company.com",
    firstName: "John",
    lastName: "Doe",
    externalId: "EMP001",
    employeeId: "12345",
  },
  ctx
);

Access Control Operations

// List access points
const accessPoints = await verkada.apiRequest(
  {
    path: "/access/v1/access_points",
    method: "GET",
  },
  ctx
);

// Search for users
const users = await verkada.apiRequest(
  {
    path: "/access/v1/user/search",
    method: "GET",
    query: { query: "john.doe@company.com" },
  },
  ctx
);

Camera and Device Management

// Get camera information
const cameras = await verkada.apiRequest(
  {
    path: "/cameras/v1/devices",
    method: "GET",
  },
  ctx
);

// Retrieve camera alerts
const alerts = await verkada.apiRequest(
  {
    path: "/cameras/v1/alerts",
    method: "GET",
  },
  ctx
);

Troubleshooting

Common Issues

“Invalid API Key” Error
  • Verify your API key is correct and hasn’t expired
  • Ensure the API key has the appropriate permissions (Read/Write for user creation)
  • Check that you’re using the correct regional domain
“Token Expired” Error
  • The integration automatically handles token refresh - this error should resolve itself
  • If persistent, try reconnecting the integration
“Region Mismatch” Error
  • Verify you’re using the correct API domain for your Verkada region
  • US customers: https://api.verkada.com
  • EU customers: https://api.eu.verkada.com
  • Australia customers: https://api.au.verkada.com
  • GovCloud organizations: http://api.verkadagov.com
Permission Errors
  • Ensure your API key has the necessary permissions for the operations you’re trying to perform
  • Organization admins can modify API key permissions in Verkada Command

Need help? Contact support@serval.com for assistance with your Verkada integration.