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.
| Endpoint | Figures |
|---|---|
GET /reports/event-statistics | Events 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-count | The incidents Manifold added, per day and incident type |
GET /reports/event-risk-count | Events 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
| Parameter | Type | Required | Description |
|---|---|---|---|
from | date | Yes | First day of the range, for example 2026-07-01 |
to | date | Yes | Last day of the range, inclusive |
connectionId | UUID | No | Restricts the figures to one of your connections. Without it the figures cover all your live connections |
providerId | UUID | No | manifold-event-count and event-risk-count only: restricts the figures to your connections of one provider |
incidentTypes | array | No | manifold-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
}| Field | Description |
|---|---|
dateRange | The first and last day of the figures |
totalEventsReceived | Events received from your telematics providers |
totalEventsWithVideo | Of those, the events that have video |
validatedEvents | Events Manifold validated |
eventsWithAccurateIncident | Validated events with at least one incident rated Accurate |
totalReportedIncidents | Incidents reported on the events |
totalRatedIncidents | Of those, the incidents rated Accurate or Inaccurate |
dailyValidatedEvents | The 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.
eventCountis 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
| Status | Meaning |
|---|---|
400 | The range is invalid or over 120 days, or the connectionId is not one of yours |
403 | The Validation Engine feature is not enabled for your account |
429 | Rate limited |
Updated about 3 hours ago