Skip to main content

 

Cisco Meraki Documentation

Video Clip API

Applies to: MV Gen 2 and Gen 3 Cameras (firmware 7.2+)


Overview

The Video Clip API allows you to programmatically retrieve specific video segments from your MV cameras using timestamps. Instead of continuous streaming, you can request precise clips on-demand—perfect for integrating camera footage with security events, access control systems, analytics alerts, and custom applications.

Key Benefits

  • Event-Driven: Request clips only when you need them (after an alert, incident, or detection event)
  • Precise Timestamps: Retrieve exact time windows down to the second
  • Simple REST API: Use your existing Meraki Dashboard API key
  • Flexible Duration: Request clips from 1 second to 5 minutes

Common Use Cases

Organizations use the Video Clip API to:

  • Capture video evidence when security systems trigger alerts
  • Link video footage to badge-in/badge-out events from access control systems
  • Retrieve clips when License Plate Recognition (LPR) detects specific vehicles
  • Document point-of-sale transactions for loss prevention
  • Build custom investigation and timeline tools
  • Correlate video with IoT sensor events (door sensors, temperature alarms, etc.)

Requirements

Camera Requirements

  • Model: MV Gen 2 or Gen 3 camera
    • Gen 2: MV12, MV22, MV32, MV52, MV72
    • Gen 3: MV2, MV12W, MV22X, MV32, MV52, MV63, MV63X, MV72X, MV93, MV93X
  • Firmware: Version 7.2 or higher

To check camera firmware:

  1. Navigate to Cameras > [Camera Name] > Settings
  2. View the Firmware field under Camera Information

To upgrade firmware:

  1. Navigate to Cameras > Monitor > Cameras
  2. Select camera(s) and click Upgrade

API Access

You'll need:

  • Dashboard API access enabled for your organization
  • A valid API key with read access to the camera's organization

To enable API access and generate a key:

  1. Navigate to Organization > Settings
  2. Enable Dashboard API access
  3. Go to API Keys and click Generate new API key
  4. Securely store your API key (shown only once)

How It Works

Basic Workflow

  1. Determine the time window for your clip (start and end timestamps in UTC)
  2. Make an API request with the camera serial number and timestamps
  3. Receive a temporary URL to download the video clip
  4. Download the clip immediately (URLs expire after a few minutes)

API Request Format

GET https://api.meraki.com/api/v1/devices/{serial}/camera/clip

Parameters:

  • serial: Camera serial number (e.g., Q2XX-XXXX-XXXX)
  • startTimestamp: Start time in ISO8601 UTC format (e.g., 2026-03-23T14:30:00.000Z)
  • endTimestamp: End time in ISO8601 UTC format (max 5 minutes after start)

Headers:

  • Authorization: Bearer {YOUR_API_KEY}
  • Accept: application/json

Response:

{
  "url": "https://spn49.meraki.com/stream/jpeg/snapshot/v2/..."
}

The url field contains a temporary link to download the video clip in MPEG-TS (.ts) format.

Simple Example (cURL)

curl --request GET \
  --url 'https://api.meraki.com/api/v1/devices/Q2XX-XXXX-XXXX/camera/clip?startTimestamp=2026-03-23T14:30:00.000Z&endTimestamp=2026-03-23T14:32:00.000Z' \
  --header 'Authorization: Bearer YOUR_API_KEY'

Important Considerations

Timing and Latency

Allow some lag: There's a delay between live video and when clips become available due to encoding and cloud upload. Always request clips for times that are at least 20 seconds in the past.

Add buffer time: For event-triggered clips, add 30 seconds before and after the event for full context (pre-roll and post-roll).

Clip Duration

  • Minimum: 1 second
  • Maximum: 5 minutes per request
  • For longer periods, chain multiple requests back-to-back

Retention Period

Clips can only be retrieved for footage within your camera's retention period. Requests outside this window will fail.

Check retention: Cameras > [Camera Name] > Settings > Video Settings

Video Format

The API returns video in MPEG-TS (.ts) format, which:

  • Works with VLC, QuickTime, and most players
  • Can be played in browsers using HLS.js
  • Can be converted to MP4 using FFmpeg if needed

Rate Limits

Standard Dashboard API rate limits apply: 5 requests per second per organization. Implement retry logic with exponential backoff if you hit rate limits (429 errors).

Security

Never expose API keys in client-side code. Use a backend service to proxy requests to the Meraki API and keep your keys secure.


Common Integration Patterns

Pattern 1: Event Alert → Video Clip

When your security system triggers an alert:

  1. Receive alert with timestamp
  2. Request clip with 30s pre-roll and 30s post-roll
  3. Download and store clip with incident record

Pattern 2: LPR Detection → Video Clip

When LPR detects a license plate:

  1. Receive LPR MQTT event with plate number and timestamp
  2. Request 30-second clip centered on detection time
  3. Send video clip link to security team via Webex/email

See also: MV License Plate Recognition Documentation

Pattern 3: Access Control → Video Clip

When someone badges in:

  1. Receive badge-in event from access control system
  2. Request clip: 10s before badge, 20s after
  3. Store clip in employee access log for audit purposes

Pattern 4: Multi-Camera Timeline

For incident investigation:

  1. Request clips from multiple cameras for the same time window
  2. Download all clips in parallel (respecting rate limits)
  3. Build timeline view for investigators

Troubleshooting

400 Bad Request

  • Check timestamp format: must be YYYY-MM-DDTHH:MM:SS.000Z (UTC)
  • Ensure duration is 5 minutes or less
  • Verify endTimestamp is after startTimestamp

404 Not Found

  • Verify camera serial number
  • Ensure API key has access to the camera's organization
  • Confirm camera is an MV model (not MS, MR, etc.)

422 Unprocessable Entity

  • Timestamps may be outside retention period
  • Timestamps may be too recent (within 60-second latency window)
  • Camera may have been offline during requested time

429 Rate Limit Exceeded

  • Implement exponential backoff
  • Spread requests over time
  • Use the Retry-After header value

Video Won't Play

  • MPEG-TS has limited browser support—use HLS.js or convert to MP4
  • Ensure file downloaded completely (check file size)

Next Steps

Ready to start building? Check out these resources:

For Developers

For Integration Use Cases

Community and Support


Questions or feedback? Visit the Meraki Community Forums or contact Meraki Support.

  • Was this article helpful?