Validation Engine Reports

The Validation Engine reports give you the figures of the portal's Validation Engine page: how many events Manifold received and validated, how many incidents Manifold identified itself, and how the validated events are spread over risk levels. All figures are per day.

EndpointFigures
GET /reports/event-statisticsEvents received, events with video, validated events, events with an accurate incident, and the incidents reported and rated; plus the validated events per day
GET /reports/manifold-event-countThe incidents Manifold added, per day and incident type
GET /reports/event-risk-countEvents by event risk (Very Low, Low, Medium, High, Critical), per day and incident type

All three need your x-api-key and the Validation Engine feature on your account; without it they answer 403. They do not use the Connection-Id header.

Query parameters

ParameterTypeRequiredDescription
fromdateYesFirst day of the range, for example 2026-07-01
todateYesLast day of the range, inclusive
connectionIdUUIDNoRestricts the figures to one of your connections. Without it the figures cover all your live connections
providerIdUUIDNomanifold-event-count and event-risk-count only: restricts the figures to your connections of one provider
incidentTypesarrayNomanifold-event-count and event-risk-count only: only these incident types

The range may cover at most 120 days; a longer range answers 400. Days are UTC dates (yyyy-MM-dd).

Validation summary

GET /reports/event-statistics

curl --request GET \
  --url "https://api.analytics.autos/reports/event-statistics?from=2026-10-15&to=2026-10-21" \
  --header 'x-api-key: YOUR-API-KEY'
{
  "status": 200,
  "message": null,
  "data": {
    "dateRange": { "from": "2026-10-15", "to": "2026-10-21" },
    "totalEventsReceived": 18054,
    "totalEventsWithVideo": 16801,
    "validatedEvents": 15753,
    "eventsWithAccurateIncident": 5899,
    "totalReportedIncidents": 24052,
    "totalRatedIncidents": 17676,
    "dailyValidatedEvents": [
      { "date": "2026-10-15", "count": 4503 },
      { "date": "2026-10-16", "count": 4299 },
      { "date": "2026-10-17", "count": 845 },
      { "date": "2026-10-18", "count": 312 },
      { "date": "2026-10-19", "count": 1596 },
      { "date": "2026-10-20", "count": 2150 },
      { "date": "2026-10-21", "count": 2048 }
    ]
  },
  "next": null
}
FieldDescription
dateRangeThe first and last day of the figures
totalEventsReceivedEvents received from your telematics providers
totalEventsWithVideoOf those, the events that have video
validatedEventsEvents Manifold validated
eventsWithAccurateIncidentValidated events with at least one incident rated Accurate
totalReportedIncidentsIncidents reported on the events
totalRatedIncidentsOf those, the incidents rated Accurate or Inaccurate
dailyValidatedEventsThe validated events of each day that has any. Added up, the days equal validatedEvents (in the example 4503 + 4299 + 845 + 312 + 1596 + 2150 + 2048 = 15,753). The response lists every day of the range that has validated events

Manifold added incidents

GET /reports/manifold-event-count

The incidents Manifold added, for exactly the days you ask for. One item per day and incident type that has any. The example is shortened to three items; a real response lists every day and incident type of the range that has a count.

{
  "status": 200,
  "message": null,
  "data": {
    "dateRange": { "from": "2026-10-15", "to": "2026-10-21" },
    "items": [
      { "date": "2026-10-15", "incidentType": "Accident", "count": 2 },
      { "date": "2026-10-15", "incidentType": "Distracted Driving", "count": 257 },
      { "date": "2026-10-15", "incidentType": "Driver Missing", "count": 195 }
    ]
  },
  "next": null
}

Overall event risk

GET /reports/event-risk-count

Events by event risk, per day and incident type. Events without a risk are not listed. The example is shortened to four items; a real response lists every day, incident type and risk that has a count.

How the counts work

  • An event is counted under an incident type when it has at least one confirmed accurate incident of that type: an incident the provider reported and Manifold rated Accurate, or one Manifold identified. Incidents of the type "General Incident" are not counted.
  • eventCount is the number of such events whose risk is that level, on that day (the day of the event, UTC).
  • One event can have several incident types, and then it is counted once under each of them. An event with a Distracted Driving and a Lane Departure incident appears in both rows. For this reason counts of different incident types must not be added together: the sum is larger than the number of events. Counts of the same type can be added over days and over risk levels (in the example, Distracted Driving had 250 + 113 + 3 = 366 events on 2026-10-15).
  • To count each event once, use GET /safety-events/counts, which counts events by risk band without splitting them by type.
  • The counts are of events, so they are not comparable with manifold-event-count, which counts incidents Manifold added.
{
  "status": 200,
  "message": null,
  "data": {
    "dateRange": { "from": "2026-10-15", "to": "2026-10-21" },
    "items": [
      { "date": "2026-10-15", "incidentType": "Accident", "risk": "Critical", "eventCount": 2 },
      { "date": "2026-10-15", "incidentType": "Distracted Driving", "risk": "Very Low", "eventCount": 250 },
      { "date": "2026-10-15", "incidentType": "Distracted Driving", "risk": "Low", "eventCount": 113 },
      { "date": "2026-10-15", "incidentType": "Distracted Driving", "risk": "Medium", "eventCount": 3 }
    ]
  },
  "next": null
}

risk is one of Very Low, Low, Medium, High or Critical.

Errors

StatusMeaning
400The range is invalid or over 120 days, or the connectionId is not one of yours
403The Validation Engine feature is not enabled for your account
429Rate limited

Did this page help you?