LVT

LVT Live Units API

Operations on LiveUnits

Operations 9

GET /liveUnits This endpoint returns all the live units accessible by the specified client. #
GET /liveUnits/{liveUnitId} Details for the specified live unit. #
GET /liveUnits/{liveUnitId}/callInfo Get information on how to make a call to the live unit #
GET /liveUnits/{liveUnitId}/cameras List of user accessible cameras hosted by the given liveUnit. #
GET /liveUnits/{liveUnitId}/sounds List of quick sounds that can be played by the live unit #
POST /liveUnits/{liveUnitId}:call Initiate a speaker talk-down call #
POST /liveUnits/{liveUnitId}/sounds/{soundId}:play Play a quick sound from a live unit #
GET /liveUnits/{liveUnitId}/lights List of lights on the live unit #
POST /liveUnits/{liveUnitId}/lights/{lightId}:toggle Toggle the status of a light on a live unit #

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/lvt-liveunits-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

lvt-liveunits-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: LVT Live Units API
  description: Public REST API
  version: 1.0.1
servers:
- url: https://api.lvt.com/v1
  description: Production beta version
security:
- OAuth2: []
tags:
- name: LiveUnits
  description: Operations on LiveUnits
paths:
  /liveUnits:
    get:
      operationId: GetLiveUnits
      security:
      - OAuth2:
        - account.liveUnits.manage
      tags:
      - LiveUnits
      summary: This endpoint returns all the live units accessible by the specified client.
      description: '**Phase 1**: List of liveUnits for the user''s client

        '
      parameters:
      - $ref: '#/components/parameters/count'
      - $ref: '#/components/parameters/cursor'
      responses:
        '200':
          description: A list of liveUnits.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/liveUnits'
        '403':
          $ref: '#/components/responses/403'
        '500':
          $ref: '#/components/responses/500'
        default:
          $ref: '#/components/responses/defaultError'
  /liveUnits/{liveUnitId}:
    parameters:
    - name: liveUnitId
      in: path
      description: Specified live unit.
      required: true
      schema:
        type: string
    get:
      operationId: GetLiveUnit
      security:
      - OAuth2:
        - account.liveUnits.manage
      tags:
      - LiveUnits
      summary: Details for the specified live unit.
      description: '**Phase 1**: Details for the specified live unit.

        '
      responses:
        '200':
          description: A live unit instance.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/liveUnit'
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
        default:
          $ref: '#/components/responses/defaultError'
  /liveUnits/{liveUnitId}/callInfo:
    parameters:
    - name: liveUnitId
      in: path
      description: Specified live unit.
      required: true
      schema:
        type: string
    get:
      operationId: GetLiveUnitCallInfo
      tags:
      - LiveUnits
      summary: Get information on how to make a call to the live unit
      description: '**Phase 2**:  Get information on how to make a call to the live unit

        '
      responses:
        '200':
          description: Call information for a live unit
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/callInfo'
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
        default:
          $ref: '#/components/responses/defaultError'
  /liveUnits/{liveUnitId}/cameras:
    get:
      operationId: GetLiveUnitCameras
      security:
      - OAuth2:
        - account.cameras.manage
      tags:
      - LiveUnits
      summary: List of user accessible cameras hosted by the given liveUnit.
      parameters:
      - name: liveUnitId
        in: path
        description: Filter results by liveUnitId.
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/count'
      - $ref: '#/components/parameters/cursor'
      responses:
        '200':
          description: A list of cameras.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cameras'
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
        default:
          $ref: '#/components/responses/defaultError'
  /liveUnits/{liveUnitId}/sounds:
    get:
      operationId: GetLiveUnitSounds
      tags:
      - LiveUnits
      summary: List of quick sounds that can be played by the live unit
      description: '**Phase 3**: List of quick sounds that can be played by the live unit

        '
      parameters:
      - name: liveUnitId
        in: path
        description: Filter results by liveUnitId.
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/count'
      - $ref: '#/components/parameters/cursor'
      responses:
        '200':
          description: A list of sounds.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/sounds'
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/403'
        '500':
          $ref: '#/components/responses/500'
        default:
          $ref: '#/components/responses/defaultError'
  /liveUnits/{liveUnitId}:call:
    post:
      operationId: TalkDownStart
      tags:
      - LiveUnits
      summary: Initiate a speaker talk-down call
      description: 'Initiate a speaker talk-down call with the live unit.

        '
      parameters:
      - name: liveUnitId
        in: path
        description: Filter results by liveUnitId.
        required: true
        schema:
          type: string
      - name: securityAlertId
        in: query
        description: ID of an alert that prompted the talkdown action
        schema:
          type: string
      responses:
        '200':
          description: An object containing a WebSocket URL for initiating a talkdown session.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/talkDownData'
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/403'
        '500':
          $ref: '#/components/responses/500'
        default:
          $ref: '#/components/responses/defaultError'
  /liveUnits/{liveUnitId}/sounds/{soundId}:play:
    post:
      operationId: PlayLiveUnitSound
      tags:
      - LiveUnits
      summary: Play a quick sound from a live unit
      description: '**Phase 3**: Play a quick sound from a live unit

        '
      parameters:
      - name: liveUnitId
        in: path
        description: Filter results by liveUnitId.
        required: true
        schema:
          type: string
      - name: soundId
        in: path
        description: The sound ID
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Success
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          $ref: '#/components/responses/409'
        '500':
          $ref: '#/components/responses/500'
        default:
          $ref: '#/components/responses/defaultError'
  /liveUnits/{liveUnitId}/lights:
    get:
      operationId: GetLiveUnitLights
      tags:
      - LiveUnits
      summary: List of lights on the live unit
      description: '**Phase 3**: List of lights on the live unit

        '
      parameters:
      - name: liveUnitId
        in: path
        description: Filter results by liveUnitId.
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/count'
      - $ref: '#/components/parameters/cursor'
      responses:
        '200':
          description: A list of lights.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/lights'
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/403'
        '500':
          $ref: '#/components/responses/500'
        default:
          $ref: '#/components/responses/defaultError'
  /liveUnits/{liveUnitId}/lights/{lightId}:toggle:
    post:
      operationId: ToggleLiveUnitLight
      tags:
      - LiveUnits
      summary: Toggle the status of a light on a live unit
      description: '**Phase 3**: Toggle the status of a light on a live unit

        '
      parameters:
      - name: liveUnitId
        in: path
        description: Filter results by liveUnitId.
        required: true
        schema:
          type: string
      - name: lightId
        in: path
        description: The light ID
        required: true
        schema:
          type: string
      requestBody:
        $ref: '#/components/requestBodies/updateLiveUnitLight'
      responses:
        '200':
          description: toggle response
          content:
            application/json:
              schema:
                type: object
                required:
                - resetTime
                - state
                properties:
                  resetTime:
                    type: number
                    description: Milliseconds until the light will revert to its previous state. If 0, it will remain indefinitely.
                    example: 60000
                  state:
                    $ref: '#/components/schemas/lightState'
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          $ref: '#/components/responses/409'
        '500':
          $ref: '#/components/responses/500'
        default:
          $ref: '#/components/responses/defaultError'
components:
  schemas:
    cameras:
      allOf:
      - $ref: '#/components/schemas/paginated'
      - type: object
        required:
        - cameras
        properties:
          items:
            type: array
            maxItems: 20
            items:
              $ref: '#/components/schemas/camera'
    lights:
      allOf:
      - $ref: '#/components/schemas/paginated'
      - type: object
        required:
        - items
        properties:
          items:
            type: array
            items:
              $ref: '#/components/schemas/light'
    error:
      type: object
      required:
      - errorCode
      - errorSummary
      - errorId
      - errorCause
      properties:
        errorCode:
          type: string
          description: A code that is associated with this error type
          example: E0000001
        errorSummary:
          type: string
          description: A natural language explanation of the error
          example: Api validation failed
        errorId:
          type: string
          description: 'An ID that identifies this request.  These IDs are mapped to the internal error on the server side to assist in troubleshooting.

            '
          example: oaeHfmOAx1iRLa0H10DeMz5fQ
        errorCauses:
          type: array
          description: Further information about what caused this error. Should be empty array if no causes given.
          items:
            type: string
            example: 'login: An object with this field already exists in the current organization'
    liveUnit:
      type: object
      required:
      - id
      - clientId
      - gpsLocation
      - locationId
      - name
      properties:
        id:
          type: string
          format: uuid
          description: The id of the live unit
        clientId:
          type: string
          format: uuid
          description: The id of the client that owns the live unit
        gpsLocation:
          $ref: '#/components/schemas/gpsCoordinates'
        locationId:
          type: string
          format: uuid
          description: The id of the location this live unit is associated with
        name:
          type: string
          description: User assigned name for the live unit
    light:
      type: object
      description: A light on a live unit.
      required:
      - id
      - type
      - state
      properties:
        id:
          type: string
          format: uuid
          description: The ID of the light.
        type:
          type: string
          description: The type of light
          enum:
          - strobe
          - flood
          - camera
        state:
          $ref: '#/components/schemas/lightState'
        name:
          type: string
          description: Optional name to describe the light beyond the type
    sounds:
      allOf:
      - $ref: '#/components/schemas/paginated'
      - type: object
        required:
        - items
        properties:
          items:
            type: array
            items:
              $ref: '#/components/schemas/sound'
    camera:
      type: object
      required:
      - id
      - liveUnitId
      - placement
      - mountPosition
      - thermal
      - name
      - viewType
      - streamSlot
      - capabilities
      properties:
        id:
          type: string
          format: uuid
          description: Id of the camera
        liveUnitId:
          type: string
          format: uuid
          description: The live unit hosting this camera
        placement:
          $ref: '#/components/schemas/placement'
        serialNumber:
          type: string
          description: Serial number of the camera
          example: LVT0000001
          deprecated: true
        manufacturer:
          type: string
          description: Manufacturer of the camera
          example: Axis
          deprecated: true
        model:
          type: string
          description: Model of the camera
          example: Q6135-LE
          deprecated: true
        mountPosition:
          $ref: '#/components/schemas/cameraMountPosition'
        name:
          type: string
          description: Name of the camera
          example: Primary
        thermal:
          type: boolean
          description: If the camera streams thermal video
        viewType:
          type: string
          description: View type of the camera
          enum:
          - single
          - panoramic
          - quadView
          - multi
        streamSlot:
          type: integer
          description: The slot of the stream on any given camera. For all single stream cameras, this will be 1. Multi-Sensor Panoramic cameras have 4 stream slots.
          minimum: 1
          maximum: 4
        capabilities:
          type: object
          description: Capabilities which the camera supports
          required:
          - position
          properties:
            position:
              type: boolean
              description: If the camera supports positional ptzf commands
    mountUnit:
      type: object
      required:
      - id
      - type
      - gpsLocation
      description: Describes form of camera mount
      properties:
        id:
          type: string
          description: The id of the mount unit
        type:
          type: string
          description: Type of mount the camera is on
          enum:
          - liveUnit
          - liveUnitSurroundHead
        gpsLocation:
          $ref: '#/components/schemas/gpsCoordinates'
    lightState:
      type: string
      enum:
      - 'on'
      - 'off'
      - unavailable
    liveUnits:
      allOf:
      - $ref: '#/components/schemas/paginated'
      - type: object
        required:
        - items
        properties:
          items:
            type: array
            maxItems: 20
            items:
              $ref: '#/components/schemas/liveUnit'
    sound:
      type: object
      description: The information about a quick sound a live unit can play.
      required:
      - id
      - name
      properties:
        id:
          type: string
          format: uuid
          description: The ID of the sound.
        name:
          type: string
          description: The human readable name of the sound.
          example: Trespassing
    cameraMountPosition:
      type: string
      description: The position of the camera on the live unit
      enum:
      - center
      - left
      - right
      - unassigned
      example: center
    placement:
      type: object
      required:
      - position
      - mountUnit
      description: Describes form and position of camera mount
      properties:
        position:
          $ref: '#/components/schemas/cameraMountPosition'
        mountUnit:
          $ref: '#/components/schemas/mountUnit'
    callInfo:
      type: object
      description: Information required to call a live unit
      required:
      - phoneNumber
      - extension
      - passcode
      properties:
        phoneNumber:
          type: string
          format: phone
          description: The phone number to call in with
          example: +1 (111) 111-1111
        extension:
          type: string
          description: The extension to dial after calling in
          example: 1234
        passcode:
          type: string
          description: The passcode to enter when prompted
          example: 1234
    talkDownData:
      type: object
      description: Data required to initiate a talkdown session
      required:
      - wssUrl
      - callId
      properties:
        wssUrl:
          type: string
          format: uri
          description: 'The WebSocket url. Send audio as byte arrays of mono, Mulaw-encoded audio packets with a sample rate of 8KHz. Close the socket to end the talkdown session.

            '
          example: wss://talkdown.api.lvt.com?callId=456
        callId:
          type: string
          description: A unique identifier for the talkdown session
    gpsCoordinates:
      type: object
      required:
      - latitude
      - longitude
      properties:
        latitude:
          type: number
          format: float
          minimum: -90.0
          maximum: 90.0
          description: GPS Decimal Degrees Latitude
          example: 40.123456
        longitude:
          type: number
          format: float
          minimum: -180.0
          maximum: 180.0
          description: GPS Decimal Degrees Longitude
          example: -111.789
    paginated:
      type: object
      required:
      - itemsPerPage
      - nextCursorUri
      - totalResults
      properties:
        itemsCount:
          type: integer
          format: int32
          minimum: 0
          description: Number of items returned in the response
          example: 24
        nextCursorUri:
          type:
          - string
          - 'null'
          format: uri
          description: Full URL to fetch the values of the next page
          example: https://api.lvt.com/v1/liveUnits?cursor=eyJhZnRlciI6IjQyIn0=
        totalResults:
          type: integer
          description: Total number of items in the collection being iterated
          example: 1234
  responses:
    '409':
      description: The current state of the server does not allow for the operation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    '403':
      description: Is returned when the requested resource is not currently accessible with the provided authorization token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    '404':
      description: Is returned when the specified resource can not be located.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    '500':
      description: Is returned when processing encounters an error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    defaultError:
      description: Unexpected error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    '400':
      description: Is returned when the request is formatted improperly.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
  parameters:
    count:
      name: limit
      in: query
      description: Limit reply list page size.
      schema:
        type: integer
        format: int32
        minimum: 1
        maximum: 100
    cursor:
      name: cursor
      in: query
      description: Used to populate a paged response. Do not provide on initial request. Reserved for use by backend to paginate.
      schema:
        type: string
  requestBodies:
    updateLiveUnitLight:
      content:
        application/json:
          schema:
            type: object
            required:
            - state
            properties:
              state:
                $ref: '#/components/schemas/lightState'
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.lvt.com/oauth2/v1/token
          scopes:
            account.liveUnits.manage: Edit a live units data
            account.cameras.manage: Edit a cameras data
            account.locations.manage: Edit a locations data