Cisco Meraki Camera API

The camera API from Cisco Meraki — 29 operation(s) for camera.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cisco-meraki-camera-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cisco-meraki-camera-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Meraki Dashboard API — camera
  description: 'A RESTful API to programmatically manage and monitor Cisco Meraki networks at scale.


    > Date: 05 August, 2026

    >

    > [Recent Updates](https://meraki.io/whats-new/)


    ---


    [API Documentation](https://meraki.io/api)


    [Community Support](https://meraki.io/community)


    [Meraki Homepage](https://www.meraki.com)

    '
  contact:
    name: Meraki Developer Community
    url: https://meraki.io/community
  version: 1.73.0
  x-provenance:
    method: harvested
    authored_by: Cisco Meraki
    harvested_by: API Evangelist
    harvested_on: '2026-08-19'
    first_party: true
    note: Published by Cisco. Retrieved unmodified except for this x-provenance block.
    provider_published: true
    derived_view: Per-first-tag view of the source document, tag 'camera'. Operations and schemas are the provider's, unmodified.
  x-evidence:
  - type: source
    url: https://github.com/meraki/openapi/blob/master/openapi/spec3.json
  - type: raw
    url: https://raw.githubusercontent.com/meraki/openapi/master/openapi/spec3.json
  - type: alternate
    url: https://api.meraki.com/api/v1/openapiSpec
servers:
- url: https://api.meraki.com/{basePath}
  variables:
    basePath:
      default: api/v1
security:
- meraki_api_key: []
- bearerAuth: []
tags:
- name: camera
paths:
  /devices/{serial}/camera/analytics/live:
    get:
      deprecated: true
      description: Returns live state from camera analytics zones
      operationId: getDeviceCameraAnalyticsLive
      parameters:
      - name: serial
        in: path
        description: Serial
        schema:
          type: string
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  ts:
                    type: string
                    description: The current time
                  zones:
                    type: object
                    properties:
                      zoneId:
                        type: object
                        properties:
                          person:
                            type: integer
                            description: The count per type, dynamic
                        description: The zone state, dynamic
                    description: The zones state
              example:
                ts: '2018-08-15T18:32:38.123Z'
                zones:
                  zoneId:
                    person: 0
      summary: Returns live state from camera analytics zones
      tags:
      - camera
      - monitor
      - analytics
      - live
      x-deprecation-notice: 'Deprecated: This operation has been marked as deprecated. For more information, visit the <a
        href=''https://developer.cisco.com/meraki/api-v1/deprecated-operations/''>deprecated operations page</a>'
  /devices/{serial}/camera/analytics/overview:
    get:
      deprecated: true
      description: Returns an overview of aggregate analytics data for a timespan
      operationId: getDeviceCameraAnalyticsOverview
      parameters:
      - name: serial
        in: path
        description: Serial
        schema:
          type: string
        required: true
      - name: t0
        in: query
        description: The beginning of the timespan for the data. The maximum lookback period is 365 days from today.
        schema:
          type: string
      - name: t1
        in: query
        description: The end of the timespan for the data. t1 can be a maximum of 7 days after t0.
        schema:
          type: string
      - name: timespan
        in: query
        description: The timespan for which the information will be fetched. If specifying timespan, do not specify parameters
          t0 and t1. The value must be in seconds and be less than or equal to 7 days. The default is 1 hour.
        schema:
          type: number
          format: float
          maximum: 604800
      - name: objectType
        in: query
        description: '[optional] The object type for which analytics will be retrieved. The default object type is person.
          The available types are [person, vehicle].'
        schema:
          type: string
          enum:
          - person
          - vehicle
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    startTs:
                      type: string
                      format: date-time
                      description: The start time
                    endTs:
                      type: string
                      format: date-time
                      description: The end time
                    zoneId:
                      type: integer
                      description: The zone id
                    entrances:
                      type: integer
                      description: The number of sentrances
                    averageCount:
                      type: number
                      format: float
                      description: The average count
              example:
              - startTs: '2018-08-15T18:32:38.123Z'
                endTs: '2018-08-15T18:33:38.123Z'
                zoneId: 0
                entrances: 254
                averageCount: 5.0
      summary: Returns an overview of aggregate analytics data for a timespan
      tags:
      - camera
      - monitor
      - analytics
      - overview
      x-deprecation-notice: 'Deprecated: This operation has been marked as deprecated. For more information, visit the <a
        href=''https://developer.cisco.com/meraki/api-v1/deprecated-operations/''>deprecated operations page</a>'
  /devices/{serial}/camera/analytics/recent:
    get:
      deprecated: true
      description: Returns most recent record for analytics zones
      operationId: getDeviceCameraAnalyticsRecent
      parameters:
      - name: serial
        in: path
        description: Serial
        schema:
          type: string
        required: true
      - name: objectType
        in: query
        description: '[optional] The object type for which analytics will be retrieved. The default object type is person.
          The available types are [person, vehicle].'
        schema:
          type: string
          enum:
          - person
          - vehicle
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    startTs:
                      type: string
                      format: date-time
                      description: The start time
                    endTs:
                      type: string
                      format: date-time
                      description: The end time
                    zoneId:
                      type: integer
                      description: The zone id
                    entrances:
                      type: integer
                      description: The number of entrances
                    averageCount:
                      type: number
                      format: float
                      description: The average count
              example:
              - startTs: '2018-08-15T18:32:38.123Z'
                endTs: '2018-08-15T18:33:38.123Z'
                zoneId: 0
                entrances: 10
                averageCount: 2.54
      summary: Returns most recent record for analytics zones
      tags:
      - camera
      - monitor
      - analytics
      - recent
      x-deprecation-notice: 'Deprecated: This operation has been marked as deprecated. For more information, visit the <a
        href=''https://developer.cisco.com/meraki/api-v1/deprecated-operations/''>deprecated operations page</a>'
  /devices/{serial}/camera/analytics/zones:
    get:
      deprecated: true
      description: Returns all configured analytic zones for this camera
      operationId: getDeviceCameraAnalyticsZones
      parameters:
      - name: serial
        in: path
        description: Serial
        schema:
          type: string
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      description: The zone ID
                    type:
                      type: string
                      description: The zone type
                    label:
                      type: string
                      description: The zone label
                    regionOfInterest:
                      type: object
                      properties:
                        x0:
                          type: string
                          description: The x0 coordinate
                        y0:
                          type: string
                          description: The y0 coordinate
                        x1:
                          type: string
                          description: The x1 coordinate
                        y1:
                          type: string
                          description: The y1 coordinate
                      description: The region of interest
              example:
              - id: '0'
                type: occupancy
                label: Full Frame
                regionOfInterest:
                  x0: '0.00'
                  y0: '0.00'
                  x1: '1.00'
                  y1: '1.00'
      security:
      - oauth2:
        - camera:config:read
      summary: Returns all configured analytic zones for this camera
      tags:
      - camera
      - monitor
      - analytics
      - zones
      x-deprecation-notice: 'Deprecated: This operation has been marked as deprecated. For more information, visit the <a
        href=''https://developer.cisco.com/meraki/api-v1/deprecated-operations/''>deprecated operations page</a>'
  /devices/{serial}/camera/analytics/zones/{zoneId}/history:
    get:
      deprecated: true
      description: Return historical records for analytic zones
      operationId: getDeviceCameraAnalyticsZoneHistory
      parameters:
      - name: serial
        in: path
        description: Serial
        schema:
          type: string
        required: true
      - name: zoneId
        in: path
        description: Zone ID
        schema:
          type: string
        required: true
      - name: t0
        in: query
        description: The beginning of the timespan for the data. The maximum lookback period is 365 days from today.
        schema:
          type: string
      - name: t1
        in: query
        description: The end of the timespan for the data. t1 can be a maximum of 14 hours after t0.
        schema:
          type: string
      - name: timespan
        in: query
        description: The timespan for which the information will be fetched. If specifying timespan, do not specify parameters
          t0 and t1. The value must be in seconds and be less than or equal to 14 hours. The default is 1 hour.
        schema:
          type: number
          format: float
          maximum: 50400
      - name: resolution
        in: query
        description: 'The time resolution in seconds for returned data. The valid resolutions are: 60. The default is 60.'
        schema:
          type: integer
      - name: objectType
        in: query
        description: '[optional] The object type for which analytics will be retrieved. The default object type is person.
          The available types are [person, vehicle].'
        schema:
          type: string
          enum:
          - person
          - vehicle
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    startTs:
                      type: string
                      format: date-time
                      description: The start time
                    endTs:
                      type: string
                      format: date-time
                      description: The end time
                    entrances:
                      type: integer
                      description: The number of entrances
                    averageCount:
                      type: number
                      format: float
                      description: The average count
              example:
              - startTs: '2018-08-15T18:32:38.123Z'
                endTs: '2018-08-15T18:33:38.123Z'
                entrances: 5
                averageCount: 1.5
      summary: Return historical records for analytic zones
      tags:
      - camera
      - monitor
      - analytics
      - zones
      - history
      x-deprecation-notice: 'Deprecated: This operation has been marked as deprecated. For more information, visit the <a
        href=''https://developer.cisco.com/meraki/api-v1/deprecated-operations/''>deprecated operations page</a>'
  /devices/{serial}/camera/clip:
    get:
      description: Generate a video clip of up to 5 minutes long.
      operationId: clipDeviceCamera
      parameters:
      - name: serial
        in: path
        description: Serial
        schema:
          type: string
        required: true
      - name: startTimestamp
        in: query
        required: true
        description: The start time for the clip. The timestamp is expected to be in ISO 8601 format.
        schema:
          type: string
          format: date-time
      - name: endTimestamp
        in: query
        required: true
        description: The end time for the clip. The timestamp is expected to be in ISO 8601 format.
        schema:
          type: string
          format: date-time
      - name: imagerId
        in: query
        description: The imager ID to query. Required for multi-imager cameras (must be between 1 and the imager count). For
          single-imager cameras, must be omitted or set to 0.
        schema:
          type: integer
      responses:
        '202':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  url:
                    type: string
                    description: Url for the snapshot
                  expiry:
                    type: string
                    description: Expiration details for snapshot image access
              example:
                url: https://spn4.meraki.com/stream/jpeg/snapshot/b2d123asdf423qd22d2
                expiry: Access to the image will expire at 2018-12-11T03:12:39Z.
      security:
      - oauth2:
        - camera:telemetry:write
      summary: Generate a video clip of up to 5 minutes long.
      tags:
      - camera
      - monitor
  /devices/{serial}/camera/customAnalytics:
    get:
      description: Return custom analytics settings for a camera
      operationId: getDeviceCameraCustomAnalytics
      parameters:
      - name: serial
        in: path
        description: Serial
        schema:
          type: string
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  enabled:
                    type: boolean
                    description: Whether custom analytics is enabled
                  artifactId:
                    type: string
                    description: Custom analytics artifact ID
                  parameters:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          description: Name of the parameter
                        value:
                          type: number
                          format: float
                          description: Value of the parameter
                    description: Parameters for the custom analytics workload
              example:
                enabled: true
                artifactId: '1'
                parameters:
                - name: detection_threshold
                  value: 0.5
      security:
      - oauth2:
        - camera:config:read
      summary: Return custom analytics settings for a camera
      tags:
      - camera
      - configure
      - customAnalytics
    put:
      description: Update custom analytics settings for a camera
      operationId: updateDeviceCameraCustomAnalytics
      parameters:
      - name: serial
        in: path
        description: Serial
        schema:
          type: string
        required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                enabled:
                  type: boolean
                  description: Enable custom analytics
                artifactId:
                  type: string
                  description: The ID of the custom analytics artifact
                parameters:
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        description: Name of the parameter
                      value:
                        type: string
                        description: Value of the parameter
                    required:
                    - name
                    - value
                  description: Parameters for the custom analytics workload
              example:
                enabled: true
                artifactId: '1'
                parameters:
                - name: detection_threshold
                  value: '0.5'
        required: false
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  enabled:
                    type: boolean
                    description: Whether custom analytics is enabled
                  artifactId:
                    type: string
                    description: Custom analytics artifact ID
                  parameters:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          description: Name of the parameter
                        value:
                          type: number
                          format: float
                          description: Value of the parameter
                    description: Parameters for the custom analytics workload
              example:
                enabled: true
                artifactId: '1'
                parameters:
                - name: detection_threshold
                  value: 0.5
      security:
      - oauth2:
        - camera:config:write
      summary: Update custom analytics settings for a camera
      tags:
      - camera
      - configure
      - customAnalytics
  /devices/{serial}/camera/generateSnapshot:
    post:
      description: Generate a snapshot of what the camera sees at the specified time and return a link to that image.
      operationId: generateDeviceCameraSnapshot
      parameters:
      - name: serial
        in: path
        description: Serial
        schema:
          type: string
        required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                timestamp:
                  type: string
                  format: date-time
                  description: '[optional] The snapshot will be taken from this time on the camera. The timestamp is expected
                    to be in ISO 8601 format. If no timestamp is specified, we will assume current time.'
                fullframe:
                  type: boolean
                  description: '[optional] If set to "true" the snapshot will be taken at full sensor resolution. This will
                    error if used with timestamp.'
              example:
                timestamp: '2021-04-30T15:18:08Z'
                fullframe: false
        required: false
      responses:
        '202':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  url:
                    type: string
                    description: Url for the snapshot
                  expiry:
                    type: string
                    description: Expiration details for snapshot image access
              example:
                url: https://spn4.meraki.com/stream/jpeg/snapshot/b2d123asdf423qd22d2
                expiry: Access to the image will expire at 2018-12-11T03:12:39Z.
      security:
      - oauth2:
        - camera:telemetry:write
      summary: Generate a snapshot of what the camera sees at the specified time and return a link to that image.
      tags:
      - camera
      - monitor
  /devices/{serial}/camera/qualityAndRetention:
    get:
      description: Returns quality and retention settings for the given camera
      operationId: getDeviceCameraQualityAndRetention
      parameters:
      - name: serial
        in: path
        description: Serial
        schema:
          type: string
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  profileId:
                    type: string
                    description: Quality and retention profile ID; null if not using a profile
                    nullable: true
                  motionBasedRetentionEnabled:
                    type: boolean
                    description: Whether motion-based retention is enabled
                  audioRecordingEnabled:
                    type: boolean
                    description: Whether audio recording is enabled
                  restrictedBandwidthModeEnabled:
                    type: boolean
                    description: Whether restricted bandwidth mode is enabled
                  quality:
                    type: string
                    description: Video quality; null when the camera's stored configuration cannot be decoded into a documented
                      quality value
                    nullable: true
                  resolution:
                    type: string
                    description: Video resolution; null when the camera's stored configuration cannot be decoded into a documented
                      resolution value
                    nullable: true
                  motionDetectorVersion:
                    type: integer
                    description: Motion detector version
              example:
                profileId: '1234'
                motionBasedRetentionEnabled: false
                audioRecordingEnabled: false
                restrictedBandwidthModeEnabled: false
                quality: Standard
                resolution: 1280x720
                motionDetectorVersion: 2
      security:
      - oauth2:
        - camera:config:read
      summary: Returns quality and retention settings for the given camera
      tags:
      - camera
      - configure
      - qualityAndRetention
    put:
      description: Update quality and retention settings for the given camera
      operationId: updateDeviceCameraQualityAndRetention
      parameters:
      - name: serial
        in: path
        description: Serial
        schema:
          type: string
        required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                profileId:
                  type: string
                  nullable: true
                  description: The ID of a quality and retention profile to assign to the camera. The profile's settings will
                    override all of the per-camera quality and retention settings. If the value of this parameter is null,
                    any existing profile will be unassigned from the camera.
                motionBasedRetentionEnabled:
                  type: boolean
                  description: Boolean indicating if motion-based retention is enabled(true) or disabled(false) on the camera.
                audioRecordingEnabled:
                  type: boolean
                  description: Boolean indicating if audio recording is enabled(true) or disabled(false) on the camera
                restrictedBandwidthModeEnabled:
                  type: boolean
                  description: Boolean indicating if restricted bandwidth is enabled(true) or disabled(false) on the camera.
                    This setting does not apply to MV2 cameras.
                quality:
                  type: string
                  enum:
                  - Enhanced
                  - High
                  - Standard
                  - Ultra
                  description: Quality of the camera. Can be one of 'Standard', 'High', 'Enhanced' or 'Ultra'. Not all qualities
                    are supported by every camera model.
                resolution:
                  type: string
                  enum:
                  - 1080x1080
                  - 1280x720
                  - 1920x1080
                  - 2112x2112
                  - 2688x1512
                  - 2880x2880
                  - 3840x2160
                  description: Resolution of the camera. Can be one of '1280x720', '1920x1080', '1080x1080', '2112x2112',
                    '2880x2880', '2688x1512' or '3840x2160'.Not all resolutions are supported by every camera model.
                motionDetectorVersion:
                  type: integer
                  enum:
                  - 1
                  - 2
                  description: The version of the motion detector that will be used by the camera. Only applies to Gen 2 cameras.
                    Defaults to v2.
              example:
                profileId: '1234'
                motionBasedRetentionEnabled: false
                audioRecordingEnabled: false
                restrictedBandwidthModeEnabled: false
                quality: Standard
                resolution: 1280x720
                motionDetectorVersion: 2
        required: false
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  profileId:
                    type: string
                    description: Quality and retention profile ID; null if not using a profile
                    nullable: true
                  motionBasedRetentionEnabled:
                    type: boolean
                    description: Whether motion-based retention is enabled
                  audioRecordingEnabled:
                    type: boolean
                    description: Whether audio recording is enabled
                  restrictedBandwidthModeEnabled:
                    type: boolean
                    description: Whether restricted bandwidth mode is enabled
                  quality:
                    type: string
                    description: Video quality; null when the camera's stored configuration cannot be decoded into a documented
                      quality value
                    nullable: true
                  resolution:
                    type: string
                    description: Video resolution; null when the camera's stored configuration cannot be decoded into a documented
                      resolution value
                    nullable: true
                  motionDetectorVersion:
                    type: integer
                    description: Motion detector version
              example:
                profileId: '1234'
                motionBasedRetentionEnabled: false
                audioRecordingEnabled: false
                restrictedBandwidthModeEnabled: false
                quality: Standard
                resolution: 1280x720
                motionDetectorVersion: 2
      security:
      - oauth2:
        - camera:config:write
      summary: Update quality and retention settings for the given camera
      tags:
      - camera
      - configure
      - qualityAndRetention
  /devices/{serial}/camera/sense:
    get:
      description: Returns sense settings for a given camera
      operationId: getDeviceCameraSense
      parameters:
      - name: serial
        in: path
        description: Serial
        schema:
          type: string
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  senseEnabled:
                    type: boolean
                    description: Whether MV Sense is enabled on the camera
                  mqttBrokerId:
                    type: string
                    description: ID of the MQTT broker; null if MQTT is disabled
                    nullable: true
                  mqttTopics:
                    type: array
                    items:
                      type: string
                    description: MQTT topics the camera publishes to
                  audioDetection:
                    type: object
                    properties:
                      enabled:
                        type: boolean
                        description: Whether audio detection is enabled
                    description: Audio detection configuration
                  detectionModelId:
                    type: string
                    description: ID of the object detection model
                    nullable: true
              example:
                senseEnabled: true
                mqttBrokerId: '1234'
                mqttTopics:
                - /merakimv/Q2AA-AAAA-1111/raw_detections
                - /merakimv/Q2AA-AAAA-1111/light
                audioDetection:
                  enabled: false
                detectionModelId: '1234'
      security:
      - oauth2:
        - camera:config:read
      summary: Returns sense settings for a given camera
      tags:
      - camera
      - configure
      - sense
    put:
      description: Update sense settings for the given camera
      operationId: updateDeviceCameraSense
      parameters:
      - name: serial
        in: path
        description: Serial
        schema:
          type: string
        required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                senseEnabled:
                  type: boolean
                  description: Boolean indicating if sense(license) is enabled(true) or disabled(false) on the camera
                mqttBrokerId:
                  type: string
                  nullable: true
                  description: The ID of the MQTT broker to be enabled on the camera. A value of null will disable MQTT on
                    the camera
                audioDetection:
                  type: object
                  properties:
                    enabled:
                      type: boolean
                      description: Boolean indicating if audio detection is enabled(true) or disabled(false) on the camera
                  description: The details of the audio detection config.
                detectionModelId:
                  type: string
                  description: The ID 

# --- truncated at 32 KB (175 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cisco-meraki/refs/heads/main/openapi/cisco-meraki-camera-api-openapi.yml