VSP Events

VSP Events

This API returns events related to License Plate Recognition (LPR) and Fleet Code Recognition. By default, the API returns only LPR events (een.lprPlateReadEvent.v1). You can customize both the type of events returned and the data included in the response using query parameters.

Event Types

LPR Event

A License Plate Recognition (LPR) event contains details about the detected vehicle.

In addition to detection metadata, the LPR event may also include:

  • Associated vehicle entry data from the vehicle list (e.g., access type, user-data)
  • Insights generated for the current event
  • Associated vehicle lists that contain the plate associated with the event

Fleet Code Event

A Fleet Code Recognition event will have information like the DOT number, truck number, trailer number, and additional text recognized from the vehicle.

API Endpoints

VSP Search /lprEvents

The API allows a user to search for vehicle events based on the license plate or by using other attributes of the vehicle like the Make, Color, and Body types, or Direction of travel.

The search can also be defined by a set of cameras, locations, or by a specific time range.

Filter by Event Type to get LPR and Fleet code Events

Use the type__in query parameter to filter events based on their type.

Examples:

  • type__in=een.lprPlateReadEvent.v1 → Returns only LPR events
  • type__in=een.fleetCodeRecognitionEvent.v1 → Returns only fleet code events
  • type__in=een.lprPlateReadEvent.v1,een.fleetCodeRecognitionEvent.v1 → Returns both event types

Customize Response with include Query Parameter

Use the include query parameter to request additional details in the response. You can pass one or more comma-separated values.

Core include values:

ValueDescription
data.een.vehicleAttributes.v1Attributes such as vehicle color, make, body type, and year etc.
data.een.fullFrameImageUrl.v1URL to the full-frame image associated with the event.
data.een.croppedFrameImageUrl.v1URL to the cropped image associated with the event.
data.een.userData.v1Custom user-defined metadata in the associated vehicle entry (if available).
data.een.lprAccessType.v1Access type configured in the associated vehicle entry (if available).

Additional include values:

For a complete list including fleet code data, detection details, insights, and related events, see the API reference.

Related Events

LPR events and fleet code events can have parent-child relationships. If relatedEvents or relatedEvents.event is included in the include query parameter, the API will return related events in the response.

Related events will be available under the relatedEvents field and will include information such as the relationship type and related event ID. If relatedEvents.event is used, full event details for related events will also be included.

Example with related events:

{
  "id": "nINlL0YuoRAnv9QcHKXi",
  "type": "een.lprPlateReadEvent.v1",
  "data": [...],
  "relatedEvents": [
    {
      "id": "nINlL0YuoRAnv9QcHKXa",
      "rel": "child",
      "event": {
        "id": "nINlL0YuoRAnv9QcHKXa",
        "type": "een.fleetCodeRecognitionEvent.v1",
        "data": [
          {
            "type": "een.dotNumberRecognition.v1",
            "regNumber": "123456",
            "regNumberConfidence": 0.99
          }
        ]
      }
    }
  ]
}

Core Query Parameters

Query ParameterDescriptionSupported Operators
timestampFilter events based on timestamp using ISO-8601 format.__gte, __lte
plateFilter by license plate.__eq, __contains, __fuzzy
directionFilter by direction of the vehicle.__in
colorFilter by detected vehicle color.__in
makeFilter by detected vehicle make.__in
bodyTypeFilter by detected vehicle body type.__in
data.een.userData.v1Filter events using custom user-defined fields from the vehicle entry. Use the prefix data.een.userData.v1.

Example: To filter by apartmentNum = 12A, use: data.een.userData.v1.apartmentNum=12A
__eq
pageSizeNumber of events to return per page.__eq

Additional Parameters

For a complete parameter reference including fleet code filtering, advanced search options, and pagination tokens, see the API reference.

VSP Summary /lprEvents:Summary

The VSP Summary shows the camera-level event count summary for the last hour, yesterday, today, the last 7 days, and the last 30 days.

The event count can be presented for the whole account or listed per camera.

Response Structure

The API returns event count summaries organized by time periods:

{
  "totalSize": 1,
  "results": [
    {
      "hourly": { "count": 15 },
      "daily": { "count": 120 },
      "weekly": { "count": 450 },
      "monthly": { "count": 1800 }
    }
  ]
}

Response Examples

LPR Event Response

{
  "totalSize": 1,
  "results": [
    {
      "id": "nINlL0YuoRAnv9QcHKXi",
      "startTimestamp": "2021-04-22T00:00:00.000+00:00",
      "type": "een.lprPlateReadEvent.v1",
      "actorId": "100d4c41",
      "data": [
        {
          "type": "een.lprDetection.v1",
          "plate": "ABC1234",
          "plateConfidence": 0.99,
          "direction": "exit"
        },
        {
          "type": "een.vehicleAttributes.v1",
          "color": "yellow",
          "make": "Toyota",
          "bodyType": "car"
        },
        {
          "type": "een.userData.v1",
          "apartmentNum": "105A"
        },
        {
          "type": "een.fullFrameImageUrl.v1",
          "httpsUrl": "https://media.c001.eagleeyenetworks.com/assets/events/..."
        }
      ]
    }
  ]
}

Fleet Code Event Response

{
  "id": "nINlL0YuoRAnv9QcHYUn1",
  "type": "een.fleetCodeRecognitionEvent.v1",
  "data": [
    {
      "type": "een.truckNumberRecognition.v1",
      "regNumber": "123321",
      "regNumberConfidence": 0.99
    },
    {
      "type": "een.fullFrameImageUrl.v1",
      "httpsUrl": "https://media.c001.eagleeyenetworks.com/assets/events/..."
    }
  ]
}

Example API Calls

Basic LPR Event Search

curl --request GET \
     --url 'https://api.cxxx.eagleeyenetworks.com/api/v3.0/lprEvents?plate__contains=ABC&type__in=een.lprPlateReadEvent.v1' \
     --header 'accept: application/json'
import requests

url = "https://api.cxxx.eagleeyenetworks.com/api/v3.0/lprEvents?plate__contains=ABC&type__in=een.lprPlateReadEvent.v1"

headers = {"accept": "application/json"}

response = requests.get(url, headers=headers)

print(response.text)
using RestSharp;


var options = new RestClientOptions("https://api.cxxx.eagleeyenetworks.com/api/v3.0/lprEvents?plate__contains=ABC&type__in=een.lprPlateReadEvent.v1");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
var response = await client.GetAsync(request);

Console.WriteLine("{0}", response.Content);

const url = 'https://api.cxxx.eagleeyenetworks.com/api/v3.0/lprEvents?plate__contains=ABC&type__in=een.lprPlateReadEvent.v1';
const options = {method: 'GET', headers: {accept: 'application/json'}};

fetch(url, options)
  .then(res => res.json())
  .then(json => console.log(json))
  .catch(err => console.error(err));

Fleet Code Events with Images

curl --request GET \
     --url 'https://api.cxxx.eagleeyenetworks.com/api/v3.0/lprEvents?type__in=een.fleetCodeRecognitionEvent.v1&include=data.een.fullFrameImageUrl.v1,data.een.croppedFrameImageUrl.v1' \
     --header 'accept: application/json'
import requests

url = "https://api.cxxx.eagleeyenetworks.com/api/v3.0/lprEvents?type__in=een.fleetCodeRecognitionEvent.v1&include=data.een.fullFrameImageUrl.v1,data.een.croppedFrameImageUrl.v1"

headers = {"accept": "application/json"}

response = requests.get(url, headers=headers)

print(response.text)
using RestSharp;


var options = new RestClientOptions("https://api.cxxx.eagleeyenetworks.com/api/v3.0/lprEvents?type__in=een.fleetCodeRecognitionEvent.v1&include=data.een.fullFrameImageUrl.v1,data.een.croppedFrameImageUrl.v1");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
var response = await client.GetAsync(request);

Console.WriteLine("{0}", response.Content);

const url = 'https://api.cxxx.eagleeyenetworks.com/api/v3.0/lprEvents?type__in=een.fleetCodeRecognitionEvent.v1&include=data.een.fullFrameImageUrl.v1,data.een.croppedFrameImageUrl.v1';
const options = {method: 'GET', headers: {accept: 'application/json'}};

fetch(url, options)
  .then(res => res.json())
  .then(json => console.log(json))
  .catch(err => console.error(err));

Time Range Search with User Data

curl --request GET \
     --url 'https://api.cxxx.eagleeyenetworks.com/api/v3.0/lprEvents?timestamp__gte=2021-04-22T00%3A00%3A00.000Z&timestamp__lte=2021-04-23T00%3A00%3A00.000Z&type__in=een.fleetCodeRecognitionEvent.v1&apartmentNum=105A&include=' \
     --header 'accept: application/json'
import requests

url = "https://api.cxxx.eagleeyenetworks.com/api/v3.0/lprEvents?timestamp__gte=2021-04-22T00%3A00%3A00.000Z&timestamp__lte=2021-04-23T00%3A00%3A00.000Z&type__in=een.fleetCodeRecognitionEvent.v1&apartmentNum=105A&include="

headers = {"accept": "application/json"}

response = requests.get(url, headers=headers)

print(response.text)
using RestSharp;


var options = new RestClientOptions("https://api.cxxx.eagleeyenetworks.com/api/v3.0/lprEvents?timestamp__gte=2021-04-22T00%3A00%3A00.000Z&timestamp__lte=2021-04-23T00%3A00%3A00.000Z&type__in=een.fleetCodeRecognitionEvent.v1&apartmentNum=105A&include=");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
var response = await client.GetAsync(request);

Console.WriteLine("{0}", response.Content);

const url = 'https://api.cxxx.eagleeyenetworks.com/api/v3.0/lprEvents?timestamp__gte=2021-04-22T00%3A00%3A00.000Z&timestamp__lte=2021-04-23T00%3A00%3A00.000Z&type__in=een.fleetCodeRecognitionEvent.v1&apartmentNum=105A&include=';
const options = {method: 'GET', headers: {accept: 'application/json'}};

fetch(url, options)
  .then(res => res.json())
  .then(json => console.log(json))
  .catch(err => console.error(err));

Pagination

Use pageToken and pageSize parameters for large result sets. The response includes nextPageToken and prevPageToken for navigation between pages of results.