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/lytx-video-drivecam-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 form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Lytx Video (DriveCam) API
version: '1.0'
description: 'Operations tagged Video (DriveCam) across 2 of this provider''s published API definitions: lytx-legacy.videoplatform-openapi.yml, lytx-video-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://lytx-api.prod2.ph.lytx.com/video
- url: https://lytx-api.prod5.ph.lytx.com/video
- url: https://lytx-api.prod6.lv.lytx.com/video
- url: https://lytx-api.prod7.lv.lytx.com/video
- url: https://lytx-api.prod8.lv.lytx.com/video
- url: https://api.lytx.com/v0/video
tags:
- name: Video (DriveCam)
description: Legacy API to retrieve LVS vehicle data, LVS events or image data from a device. Uses obsolete X-APIKey authentication.
paths:
/vehicles:
get:
tags:
- Video (DriveCam)
summary: Return all Vehicles for the Specified Query Terms
operationId: Vehicle_GetVehicles
parameters:
- name: GroupId
in: query
description: An identifier to filter by a group.
schema:
type:
- string
- 'null'
format: guid
x-position: 1
- name: PageNumber
in: query
description: The page number of the list of vehicles. Default value is 1.
schema:
type: integer
format: int32
maximum: 2147483647
minimum: 1
x-position: 2
- name: PageSize
in: query
description: The number of vehicles to return per page. Default value is 50.
schema:
type: integer
format: int32
maximum: 2147483647
minimum: 1
x-position: 3
- name: VehicleName
in: query
description: An identifier to filter by a vehicle's name.
schema:
type:
- string
- 'null'
x-position: 4
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/GetVehiclesResponse'
'400':
description: The parameters given in the request are invalid.
content:
application/json:
schema:
type: string
'401':
description: Access is denied. This can occur from an invalid key or invalid pod.
security:
- APIKey: []
servers:
- url: https://lytx-api.prod2.ph.lytx.com/video
- url: https://lytx-api.prod5.ph.lytx.com/video
- url: https://lytx-api.prod6.lv.lytx.com/video
- url: https://lytx-api.prod7.lv.lytx.com/video
- url: https://lytx-api.prod8.lv.lytx.com/video
/vehicles/{vehicleId}/timeline:
get:
tags:
- Video (DriveCam)
summary: Return Timelines That Represent When Video is Available for Specified Vehicle
operationId: Vehicle_GetVehicleTimeline
parameters:
- name: vehicleId
in: path
required: true
description: The primary identifier of the vehicle.
schema:
type: integer
format: int64
maximum: 9223372036854780000
minimum: 1
x-position: 1
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/GetVehicleTimelineResponse'
'400':
description: The parameters given in the request are invalid.
content:
application/json:
schema:
type: string
'401':
description: Access is denied. This can occur from an invalid key or invalid pod.
'403':
description: Access is denied for this vehicle. The given API key's context does not have the proper permissions.
'404':
description: The specified vehicle cannot be found.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
security:
- APIKey: []
servers:
- url: https://lytx-api.prod2.ph.lytx.com/video
- url: https://lytx-api.prod5.ph.lytx.com/video
- url: https://lytx-api.prod6.lv.lytx.com/video
- url: https://lytx-api.prod7.lv.lytx.com/video
- url: https://lytx-api.prod8.lv.lytx.com/video
/vehicles/{vehicleIdentifier}:
get:
tags:
- Video (DriveCam)
summary: Return Vehicle Specified by ID or Device Serial Number
operationId: Vehicle_GetVehicleByIdentifier
parameters:
- name: vehicleIdentifier
in: path
required: true
description: The primary identifier of the vehicle or the device serial number associated to the vehicle.
schema:
oneOf:
- type: integer
format: int64
maximum: 9223372036854780000
minimum: 1
description: The primary identifier of the vehicle.
- type:
- string
- 'null'
description: The device serial number associated to the vehicle.
x-position: 1
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/Vehicle'
'400':
description: The parameters given in the request are invalid.
content:
application/json:
schema:
type: string
'401':
description: Access is denied. This can occur from an invalid key or invalid pod.
'403':
description: Access is denied for this vehicle. The given API key's context does not have the proper permissions.
'404':
description: The specified vehicle cannot be found.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
security:
- APIKey: []
servers:
- url: https://lytx-api.prod2.ph.lytx.com/video
- url: https://lytx-api.prod5.ph.lytx.com/video
- url: https://lytx-api.prod6.lv.lytx.com/video
- url: https://lytx-api.prod7.lv.lytx.com/video
- url: https://lytx-api.prod8.lv.lytx.com/video
/events:
post:
tags:
- Video (DriveCam)
summary: Creates New Event and Return ID
operationId: Event_CreateEvent
requestBody:
x-name: createEventRequest
content:
application/json:
schema:
$ref: '#/components/schemas/CreateEventRequest'
required: true
x-position: 1
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/CreateEventResponse'
'400':
description: The parameters given in the request are invalid.
content:
application/json:
schema:
type: string
'401':
description: Access is denied. This can occur from an invalid key or invalid pod.
'403':
description: Access is denied to create an event. The given API key's context does not have the proper permissions.
security:
- APIKey: []
get:
tags:
- Video (DriveCam)
summary: Return All Events Specified by Query Terms
operationId: Event_SearchEvents
parameters:
- name: GroupId
in: query
description: Group identifier associated to event.
schema:
type:
- string
- 'null'
format: guid
x-position: 1
- name: StartDate
in: query
required: true
description: Events that occurred after this date. (Inclusive).
schema:
type: string
format: date-time
x-position: 2
- name: EndDate
in: query
required: true
description: Events that occurred before this date. (Inclusive).
schema:
type: string
format: date-time
x-position: 3
- name: PageNumber
in: query
description: The page number of the list of events. Default value is 1.
schema:
type: integer
format: int32
maximum: 2147483647
minimum: 1
x-position: 4
- name: PageSize
in: query
description: The number of events to return per page. Default value is 100.
schema:
type: integer
format: int32
maximum: 2147483647
minimum: 1
x-position: 5
- name: LabelSearch
in: query
description: Label associated to event.
schema:
type:
- string
- 'null'
x-position: 6
- name: VehicleName
in: query
description: Vehicle name associated to event.
schema:
type:
- string
- 'null'
x-position: 7
- name: IncludeVideoEvents
in: query
description: Include events with video. Default value is true.
schema:
type: boolean
x-position: 8
- name: IncludeNoVideoEvents
in: query
description: Include events with no video. Default value is true.
schema:
type: boolean
x-position: 9
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/EventCollection'
'400':
description: The parameters given in the request are invalid.
content:
application/json:
schema:
type: string
'401':
description: Access is denied. This can occur from an invalid key or invalid pod.
security:
- APIKey: []
servers:
- url: https://lytx-api.prod2.ph.lytx.com/video
- url: https://lytx-api.prod5.ph.lytx.com/video
- url: https://lytx-api.prod6.lv.lytx.com/video
- url: https://lytx-api.prod7.lv.lytx.com/video
- url: https://lytx-api.prod8.lv.lytx.com/video
/events/{eventId}/views/{deviceViewId}/medias/{mediaType}:
get:
tags:
- Video (DriveCam)
summary: Return Media Resource URL for Specified Event's View
operationId: Event_GetEventViewMedia
parameters:
- name: eventId
in: path
required: true
description: Primary event identifier.
schema:
type: integer
format: int64
maximum: 9223372036854780000
minimum: 1
x-position: 1
- name: deviceViewId
in: path
required: true
description: Primary identifier of a device's view.
schema:
type: integer
format: int64
maximum: 9223372036854780000
minimum: 1
x-position: 2
- name: mediaType
in: path
required: true
description: 'Media file type. Supported values: "mp4" or "dce".'
schema:
type:
- string
- 'null'
x-position: 3
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/GetEventViewMediaResponse'
'400':
description: The parameters given in the request are invalid.
content:
application/json:
schema:
type: string
'401':
description: Access is denied. This can occur from an invalid key or invalid pod.
'403':
description: Access is denied for this event. The given API key's context does not have the proper permissions.
'404':
description: The specified event or its device view cannot be found.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
security:
- APIKey: []
servers:
- url: https://lytx-api.prod2.ph.lytx.com/video
- url: https://lytx-api.prod5.ph.lytx.com/video
- url: https://lytx-api.prod6.lv.lytx.com/video
- url: https://lytx-api.prod7.lv.lytx.com/video
- url: https://lytx-api.prod8.lv.lytx.com/video
/events/{eventId}:
get:
tags:
- Video (DriveCam)
summary: Return Event Specified by its ID
operationId: Event_GetEventById
parameters:
- name: eventId
in: path
required: true
description: The primary event identifier.
schema:
type: integer
format: int64
maximum: 9223372036854780000
minimum: 1
x-position: 1
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/Event'
'400':
description: The parameters given in the request are invalid.
content:
application/json:
schema:
type: string
'401':
description: Access is denied. This can occur from an invalid key or invalid pod.
'403':
description: Access is denied for this event. The given API key's context does not have the proper permissions.
'404':
description: The specified event cannot be found.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
security:
- APIKey: []
servers:
- url: https://lytx-api.prod2.ph.lytx.com/video
- url: https://lytx-api.prod5.ph.lytx.com/video
- url: https://lytx-api.prod6.lv.lytx.com/video
- url: https://lytx-api.prod7.lv.lytx.com/video
- url: https://lytx-api.prod8.lv.lytx.com/video
/deviceViews/{deviceViewId}/snapshot:
get:
tags:
- Video (DriveCam)
summary: Retrieve Image (snapshot) from a Device's View at the Specified Time
operationId: DeviceView_GetDeviceViewSnapshot
parameters:
- name: deviceViewId
in: path
required: true
description: The primary device view identifier.
schema:
type: integer
format: int64
maximum: 9223372036854780000
minimum: 1
x-position: 1
- name: time
in: query
required: true
schema:
type: string
format: date-time
x-position: 2
responses:
'200':
description: ''
content:
application/octet-stream:
schema:
type: string
format: binary
'401':
description: Access is denied. This can occur from an invalid key or invalid pod.
'403':
description: Access is denied to retrieve a snapshot. The given API key's context does not have the proper permissions.
'404':
description: A snapshot cannot be found at the specified time or device view.
content:
application/json:
schema:
type: string
'422':
description: The device is not online to return a snapshot.
content:
application/json:
schema:
type: string
'502':
description: Communication with the device has timed out.
content:
application/json:
schema:
type: string
security:
- APIKey: []
servers:
- url: https://lytx-api.prod2.ph.lytx.com/video
- url: https://lytx-api.prod5.ph.lytx.com/video
- url: https://lytx-api.prod6.lv.lytx.com/video
- url: https://lytx-api.prod7.lv.lytx.com/video
- url: https://lytx-api.prod8.lv.lytx.com/video
components:
schemas:
Device:
type: object
additionalProperties: false
properties:
id:
type: integer
description: Primary device identifier.
format: int64
serialNumber:
type:
- string
- 'null'
description: Physical device identifier.
lastCommunication:
type:
- string
- 'null'
description: Date last communicated with the device.
format: date-time
onlineStatus:
type:
- integer
- 'null'
description: 'The current device connectivity status.
Possible values:
3 (LoggedOut - Unknown),
4 (LoggedOut - Disabled),
5 (LoggedOut - PowerFail),
8 (LoggedOut - Hibernate - Wake disabled),
10 (LoggedOut - Hibernate - Wake enabled),
11 (LostCommunication),
14 (LostCommunication - Long term), or
16 (MQTTOnline).'
format: int32
views:
type:
- array
- 'null'
description: List of camera views associate to the device.
items:
$ref: '#/components/schemas/DeviceView'
roleId:
type: integer
description: 'The device role. Possible values: 0 (follower) or 1 (leader).'
format: int32
DeviceViewTimeline:
type: object
additionalProperties: false
properties:
deviceView:
type:
- object
- 'null'
oneOf:
- $ref: '#/components/schemas/DeviceView'
available:
type: boolean
description: Whether the device view has any timeline intervals.
timeline:
type:
- array
- 'null'
description: A list of intervals with video for this device's view.
items:
$ref: '#/components/schemas/DeviceViewTimelineInterval'
DeviceViewTimelineInterval:
type: object
additionalProperties: false
properties:
startDate:
type: string
description: Start date of interval.
format: date-time
endDate:
type: string
description: End date of interval.
format: date-time
Vehicle:
type: object
additionalProperties: false
properties:
id:
type: integer
description: Primary vehicle identifier.
format: int64
groupId:
type: string
description: The group identifier of the vehicle.
format: guid
name:
type:
- string
- 'null'
description: The name of the vehicle.
status:
type:
- integer
- 'null'
description: 'The current vehicle connectivity status.
Possible values:
3 (LoggedOut - Unknown),
4 (LoggedOut - Disabled),
5 (LoggedOut - PowerFail),
8 (LoggedOut - Hibernate - Wake disabled),
10 (LoggedOut - Hibernate - Wake enabled),
11 (LostCommunication),
14 (LostCommunication - Long term), or
16 (MQTTOnline).'
format: int32
lastCommunication:
type:
- string
- 'null'
description: Date last communicated with vehicle.
format: date-time
devices:
type:
- array
- 'null'
description: List of devices associated to vehicle.
items:
$ref: '#/components/schemas/Device'
GetEventViewMediaResponse:
type: object
additionalProperties: false
properties:
url:
type:
- string
- 'null'
Event:
type: object
additionalProperties: false
properties:
id:
type: integer
description: Primary event identifier.
format: int64
eventTime:
type: string
description: Time of event. The EventTime is typically the RequestStartTime when an event is a clip. When the event is a tag, EventTime is the point of interest.
format: date-time
dateCreated:
type: string
description: Date when event was created.
format: date-time
mediaStatus:
type: integer
description: 'Indicates the event media upload progress.
Common values:
"1" (Not Uploaded),
"2" (Upload Request Queued.),
"3" (Uploading),
"4" (Upload Complete),
"5" (Upload Cancelled),
or "6" (Upload Error.).'
format: int32
vehicleId:
type: integer
description: 'Vehicle identifier associated to event. '
format: int64
eventType:
type: integer
description: 'Indicates the type of event. Possible values: 4 (for clip) or 7 (for tags).'
format: int32
eventSubType:
type:
- integer
- 'null'
description: 'Indicates the type of tag. Used only when the event type is a tag. Possible values: 3 (Custom) or null when EventType is not a tag.'
format: int32
vehicleName:
type:
- string
- 'null'
description: Name of vehicle associated to event.
groupId:
type: string
description: Group identifier associated to event.
format: guid
requestedStartTime:
type: string
description: Event start time.
format: date-time
requestedEndTime:
type: string
description: Event end time.
format: date-time
label:
type:
- string
- 'null'
description: User defined event identifier or description.
deviceViews:
type:
- array
- 'null'
description: List of a device's view associated to event.
items:
$ref: '#/components/schemas/EventDeviceView'
GetVehicleTimelineResponse:
type: object
additionalProperties: false
properties:
viewTimelines:
type:
- array
- 'null'
description: 'List of the device''s camera views and the view''s timelines of available video. '
items:
$ref: '#/components/schemas/DeviceViewTimeline'
vehicleName:
type:
- string
- 'null'
description: Name of Vehicle.
groupId:
type: string
description: Group identifier associated to vehicle.
format: guid
DeviceView:
type: object
additionalProperties: false
properties:
id:
type: integer
description: Primary device view identifier.
format: int64
name:
type:
- string
- 'null'
description: 'Type of device view that corresponds to a physical camera. Possible values: "FORWARD", "REAR", "ANALOG_AUX_1", "ANALOG_AUX_2", "ANALOG_AUX_3", or "ANALOG_AUX_4".'
label:
type:
- string
- 'null'
description: User defined label of the device's view.
CreateEventResponse:
type: object
additionalProperties: false
properties:
id:
type: integer
description: Primary identifier of the newly created event.
format: int64
ErrorMessage:
type: object
additionalProperties: false
properties:
error:
type:
- string
- 'null'
GetVehiclesResponse:
type: object
additionalProperties: false
properties:
totalCount:
type: integer
description: The total number of vehicles that matches the query, ignoring pagination.
format: int32
vehicles:
type:
- array
- 'null'
description: List of paginated vehicles that matches the query.
items:
$ref: '#/components/schemas/Vehicle'
EventDeviceView:
type: object
additionalProperties: false
properties:
id:
type: integer
description: Primary device's view identifier for the event.
format: int64
name:
type:
- string
- 'null'
description: 'Type of device view that corresponds to a physical camera. Possible values: "FORWARD", "REAR", "ANALOG_AUX_1", "ANALOG_AUX_2", "ANALOG_AUX_3", or "ANALOG_AUX_4".'
label:
type:
- string
- 'null'
description: User defined label of the device's view.
status:
type:
- integer
- 'null'
description: 'Indicates the event media upload progress for this specific view.
Common values:
"1" (Not Uploaded),
"2" (Upload Request Queued.),
"3" (Uploading),
"4" (Upload Complete),
"5" (Upload Cancelled),
or "6" (Upload Error.).'
format: int32
currentBytes:
type:
- integer
- 'null'
description: Number of bytes uploaded.
format: int64
progress:
type: number
description: Number to indicate upload progress. Value ranges from 0 to 1, where 1 is when the upload has been completed.
format: double
CreateEventRequest:
type: object
additionalProperties: false
properties:
vehicleId:
type: integer
description: Vehicle identifier associated to event.
format: int64
maximum: 9223372036854780000
minimum: 1
deviceViewIds:
type:
- array
- 'null'
description: 'List of device view identifiers associated with event. '
items:
type: integer
format: int64
requestedStartDate:
type:
- string
- 'null'
description: 'Event start time. '
format: date-time
requestedEndDate:
type:
- string
- 'null'
description: Event end time.
format: date-time
label:
type:
- string
- 'null'
description: User defined event identifier or description. Typically used to give events a user-friendly name.
typeId:
type: integer
description: 'Indicates the type of event. Possible values: 4 (for clip) or 7 (for tags). Default value is 4.'
format: int32
maximum: 10
minimum: 1
example: 4
subTypeId:
type:
- integer
- 'null'
description: 'Indicates the type of tag. Used only when the event type is a tag. Possible values: 3 (Custom) or leave parameter unpopulated when not creating a tag event.'
format: int32
example: null
eventTime:
type: string
description: Time of event. The EventTime should be the same as RequestStartTime when an event is a clip. When the event is a tag, EventTime is the point of interest.
format: date-time
EventCollection:
type: object
additionalProperties: false
properties:
totalCount:
type: integer
description: The total number of events that matches the query, ignoring pagination.
format: int32
events:
type:
- array
- 'null'
description: List of paginated events that matches the query.
items:
$ref: '#/components/schemas/Event'
Device_2:
type: object
additionalProperties: false
properties:
id:
type: integer
description: Primary device identifier.
format: int64
serialNumber:
type:
- string
- 'null'
description: Physical device identifier.
lastCommunication:
type:
- string
- 'null'
description: Date last communicated with the device.
format: date-time
onlineStatus:
type:
- integer
- 'null'
description: 'The current device connectivity status.
Possible values:
3 (LoggedOut - Unknown) or
16 (MQTTOnline).'
format: int32
views:
type:
- array
- 'null'
description: List of camera views associated to the device.
items:
$ref: '#/components/schemas/DeviceView'
capabilities:
type:
- array
- 'null'
description: "List of capabilities supported by the device. \n [\n \"Dvr\",\n \"LiveStream\",\n \"Gps\",\n \"WakeOnSms\"\n ]"
roleId:
type: integer
description: 'The device role. Possible values: 0 (follower) or 1 (leader).'
format: int32
supportedCommands:
type:
- array
- 'null'
description: "List of commands supported by the device. \n [\n \"alertrequestv1\",\n \"checkinv1\",\n ..... more commands .....,\n \"livestreamv2\",\n \"snapshotv2\"\n ]"
hardwarePlatform:
type:
- string
- 'null'
description: Hardware platform of the device.
Vehicle_2:
type: object
additionalProperties: false
properties:
id:
type: integer
description: Primary vehicle identifier.
format: int64
groupId:
type: string
description: The group identifier of the vehicle.
format: guid
name:
type:
- string
- 'null'
description: The name of the vehicle.
status:
type:
- integer
- 'null'
description: 'The current vehicle connectivity status.
Possible values:
3 (LoggedOut - Unknown) or
16 (MQTTOnline).'
format: int32
isWaking:
type:
- boolean
- 'null'
description: Indicates if a wake request is in progress for the vehicle.
wakeable:
type:
- boolean
- 'null'
description: Indicates if the vehicle is wakeable.
lastCommunication:
type:
- string
- 'null'
description: Date last communicated with vehicle.
format: date-time
devices:
type:
- array
- 'null'
description: List of devices associated to vehicle.
items:
$ref: '#/components/schemas/Device_2'
dcVehicleId:
type:
- string
- 'null'
description: The DC vehicle identifier.
format: guid
lastWakeAttempt:
type:
- string
- 'null'
description: Date of last wake attempt to the vehicle.
format: date-time
Event_2:
type: object
additionalProperties: false
properties:
id:
type: integer
description: Primary event identifier.
format: int64
eventTime:
type: string
description: Time of event. The EventTime is typically the RequestStartTime when an event is a clip. When the event is a tag, EventTime is the point of interest.
format: date-time
dateCreated:
type: string
description: Date when event was created.
format: date-time
mediaStatus:
type: integer
description: 'Indicates the event media upload progress.
Common values:
"1" (Not Uploaded),
"2" (Upload Request Queued.),
"3" (Uploading),
"4" (Upload Complete),
"5" (Upload Cancelled),
or "6" (Upload Error.).'
format: int32
vehicleId:
type: integer
description: 'Vehicle identifier associated to event. '
format: int64
eventType:
type: integer
description: 'Indicates the type of event. Possible values: 4 (for clip) or 7 (for tags).'
format: int32
eventSubType:
type:
- integer
- 'null'
description: 'Indicates the type of tag. Used only when the event type is a tag. Possible values: 3 (Custom) or null when EventType is not a tag.'
# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/lytx/refs/heads/main/openapi/lytx-video-drivecam-api-openapi.yml