Accidents

Accidents give you the same report the Manifold portal shows on its Losses and Accident Report pages: where and when the accident happened, who was involved, how severe it was, the cost estimate, the reconstruction map, and a PDF of the report. Minor collisions are listed next to accidents.

All four endpoints need the Connection-Id header of one of your connections, together with your x-api-key. Property names are the labels the portal uses, in camel case.

EndpointPurpose
GET /accidentsLists the accidents and minor collisions of a connection, newest first
GET /accidents/{id}One accident with every section of the report
GET /accidents/{id}/reconstruction-mapThe reconstruction map as an image
GET /accidents/{id}/report.pdfThe accident report as a PDF document

See the API Reference for every field.

List accidents

GET /accidents

Returns the accidents and minor collisions of one connection, newest first. A minor collision has no report and no severity: it comes back with isReportReady set to false, and only the fields of the list.

Query parameters

ParameterTypeRequiredDescription
fromdateYesFirst day of the range, for example 2026-09-01
todateYesLast day of the range, inclusive: the whole last day counts
vehicleIdsarray of UUIDNoOnly accidents of these vehicles. Repeat the parameter for each id
driverIdsarray of UUIDNoOnly accidents of these drivers
incidentTypesarrayNoAccident and/or Minor Collision. Both when left out
severityarray of integerNoOnly accidents with these severities (1 to 5). Minor collisions are left out
driverAtFaultbooleanNotrue or false. Minor collisions are left out
limitintegerNoItems per page: 50 by default, at most 500
cursorstringNoThe next value of the previous page

The range may cover at most 120 days; a longer range answers 400.

Paging

When more accidents follow, the response carries a next value. Pass it as cursor to read the next page, and repeat until next is null. Do not build or change a cursor yourself.

Example request

curl --request GET \
  --url "https://api.analytics.autos/accidents?from=2026-10-01&to=2026-10-31&limit=1" \
  --header 'x-api-key: YOUR-API-KEY' \
  --header 'Connection-Id: YOUR-CONNECTION-ID'

Example response

The request asks for October 2026 with limit=1, so the response holds one accident and a next value for the page after it. Each item of the list has this shape. GET /accidents/{id} returns the same fields plus the report sections below.

{
  "status": 200,
  "message": null,
  "data": [
    {
      "id": "3d7c9feb-89f3-4eff-b8c8-32a408c12d43",
      "safetyEventId": "0a8749a0-d1b5-4d86-b8e1-5167904ad986",
      "accidentId": 34,
      "incidentType": "Accident",
      "connectionId": "4c540ad6-3e76-427c-95e8-72ce794b34de",
      "connection": "Fleet A",
      "provider": "Geotab",
      "isReportReady": true,
      "accidentSeverity": 2,
      "driverAtFault": false,
      "damageValue": 1651.0,
      "providerEventData": {
        "dateAndTime": "2026-10-19T10:40:00Z",
        "duration": 299,
        "minSpeed": 0.0,
        "maxSpeed": 49.94
      },
      "vehicleAndDriverInformation": {
        "vehicleId": "b7bad301-7572-4b8a-991b-65240d9d5784",
        "vehicleName": "Unit 14 (ABC1234)",
        "vin": "1HGCM82633A004352",
        "vehicleType": "TRUCK",
        "make": "NISSAN",
        "model": "Frontier",
        "modelYear": 2022,
        "bodyClass": "Pickup",
        "groups": ["Toronto depot", "Pickup trucks"],
        "driverId": "f5f0710e-f6de-4241-8653-ca27dea862b1",
        "driverName": "Alex Morgan",
        "driversLn": "M1234-56789-01234",
        "licenseState": "ON",
        "phoneNumber": "+1 416 555 0123"
      },
      "locationOfAccident": {
        "locationAddress": {
          "state": "Ontario",
          "isoCode": "CA-ON",
          "country": "Canada",
          "countryCode": "ca"
        },
        "gpsCoordinates": { "latitude": 43.6532, "longitude": -79.3832 }
      },
      "environmentalData": {
        "weatherCondition": { "status": "Clear", "temperature": 3.6 },
        "dayNight": "Night",
        "trafficCongestion": true,
        "visibilityImpact": false
      },
      "eventVideo": [
        {
          "videoType": "in",
          "mediaType": "Video",
          "url": "/safety-events/0a8749a0-d1b5-4d86-b8e1-5167904ad986/videos/in",
          "thumbnailUrl": "/safety-events/0a8749a0-d1b5-4d86-b8e1-5167904ad986/thumbnails/in?format=img"
        },
        {
          "videoType": "ex",
          "mediaType": "Video",
          "url": "/safety-events/0a8749a0-d1b5-4d86-b8e1-5167904ad986/videos/ex",
          "thumbnailUrl": "/safety-events/0a8749a0-d1b5-4d86-b8e1-5167904ad986/thumbnails/ex?format=img"
        },
        {
          "videoType": "reex",
          "mediaType": "Video",
          "url": "/safety-events/0a8749a0-d1b5-4d86-b8e1-5167904ad986/videos/reex",
          "thumbnailUrl": "/safety-events/0a8749a0-d1b5-4d86-b8e1-5167904ad986/thumbnails/reex?format=img"
        }
      ]
    }
  ],
  "next": "eyJyZWZlcmVuY2VUaW1lIjoiMjAyNi0xMC0xOVQxMDo0MDowMFoiLCJpZCI6IjNkN2M5ZmViLTg5ZjMtNGVmZi1iOGM4LTMyYTQwOGMxMmQ0MyJ9"
}

Fields of the list

FieldDescription
idThe accident id. Use it in the other accident endpoints
safetyEventIdThe id of the same incident in the /safety-events endpoints. The media links are built from it
accidentIdThe accident number Manifold gave the accident when it was confirmed, unique within your account. null when none was given
incidentTypeAccident or Minor Collision
isReportReadyWhether the accident has a report (false for a minor collision)
accidentSeverityHow severe the collision was, from 1 to 5: 1 Minor, 2 Moderate, 3 Severe, 4 Major, 5 Catastrophic. It is the intensity the Validation Engine gives the accident after analysing the footage, shown as the needle of the portal's severity gauge. It is not an insurance or legal classification. null when no severity has been determined
driverAtFaultWhether the driver of your vehicle was at fault. true means the driver was at fault and false means the accident was not the driver's fault. null means fault has not been determined for this accident, which is not the same as false
damageValueThe estimated cost of the damage to the vehicle, in dollars. It is your own estimate when you entered one in the portal (on the accident report, Damage Assessment, Your Estimated Price; you can edit or clear it there), otherwise Manifold's estimate. It is an estimate, not a repair invoice or an insurer's assessment. null when there is no estimate. The detail response shows both values (yourEstimatedPrice and annotatedValue)
providerEventDataWhat the telematics provider recorded for the event. dateAndTime is the time the provider's incident started, in UTC: the provider's own event timestamp, which is the best available time of the accident, but it can differ by a few seconds from the moment of impact. duration is in seconds, and minSpeed and maxSpeed are the lowest and highest speed of the event, in km/h
vehicleAndDriverInformationThe vehicle, its groups and the driver
locationOfAccidentThe address and GPS coordinates. An accident whose location is unknown has coordinates 0, 0 and no address
environmentalDataWeather (temperature in °C), day or night, traffic and visibility
eventVideoThe camera media of the incident. videoType is the camera position to use in the media routes: in (interior), ex (exterior) or reex (rear exterior). url and thumbnailUrl are routes of the /safety-events media endpoints, for the same Connection-Id

Speeds are in km/h. Times are UTC.

Get one accident

GET /accidents/{id}

Returns the fields of the list plus the sections of the portal's accident report. For a minor collision these sections are empty.

SectionContent
reconstructionMapimageUrl (the route of the image) and data, the canvas the portal draws: the map centre and zoom and the vehicles and other elements placed on it
speedGraphhighestSpeed, collisionSpeed, postedSpeedLimit and the graph points (time, speed, and whether the point lies within the accident)
impactpointOfImpact: Front Left, Front, Front Right, Left, Right, Rear Left, Rear or Rear Right; and accelerationForce in G
damageAssessmentnewVehiclePrice, presentVehiclePrice and vehicleDamage. Each has the value the portal shows, your own estimate in yourEstimatedPrice, and annotatedValue
damageToVehiclepercentageToWriteOff: the damage as a share of the present price, in whole percent
vehiclePreAccidentScoreThe vehicle's risk score over the three months before the accident (preAccidentScore, and range in months). Only for accounts with the Analytics feature
objectsStruckWhat the vehicle struck, for example Car or Guardrail
injuryInformationOne entry per party. party is Driver, Passenger, Pedestrian or Cyclist. probabilityOfInjury is the Validation Engine's estimate, from the footage, of how likely it is that this party was injured: Low, High or Critical (an injury is likely to be serious). It is an estimate, not a medical report. The list is empty when nothing has been entered
incidentDetailsoverallEventRisk (Very Low to Critical) and the incidents of the event: incidentType, provider (the provider's name, or Manifold) and accuracy
reportPdfUrlThe route of the PDF
curl --request GET \
  --url "https://api.analytics.autos/accidents/3d7c9feb-89f3-4eff-b8c8-32a408c12d43" \
  --header 'x-api-key: YOUR-API-KEY' \
  --header 'Connection-Id: YOUR-CONNECTION-ID'
{
  "status": 200,
  "message": null,
  "data": {
    "id": "3d7c9feb-89f3-4eff-b8c8-32a408c12d43",
    "accidentId": 34,
    "incidentType": "Accident",
    "isReportReady": true,
    "accidentSeverity": 2,
    "driverAtFault": false,
    "damageValue": 1651.0,
    "reconstructionMap": {
      "imageUrl": "/accidents/3d7c9feb-89f3-4eff-b8c8-32a408c12d43/reconstruction-map",
      "data": {
        "version": "1.0",
        "canvas": { "width": 780, "height": 620 },
        "map": { "center": { "latitude": 43.6532, "longitude": -79.3832 }, "zoom": 20, "style": "google-roadmap" },
        "elements": [
          { "id": "6", "category": "insured", "variantIndex": 6, "isInsured": true,
            "position": { "x": 451.7, "y": 361.7 },
            "transform": { "rotation": -63.3, "scaleX": 0.8, "scaleY": 0.8, "flipX": false, "flipY": false },
            "dimensions": { "width": 37, "height": 89 }, "zIndex": 2 },
          { "id": "3", "category": "other-party", "variantIndex": 0, "isInsured": false,
            "position": { "x": 408.6, "y": 320.5 },
            "transform": { "rotation": -83.6, "scaleX": 0.9, "scaleY": 0.9, "flipX": false, "flipY": false },
            "dimensions": { "width": 37, "height": 74 }, "zIndex": 0 }
        ],
        "metadata": { "createdAt": "2026-10-19T14:02:11Z", "updatedAt": "2026-10-19T14:05:40Z" },
        "image": { "url": "https://cdn.example.com/reconstruction-maps/84e32ed8.png", "capturedAt": "2026-10-19T14:05:41Z" }
      }
    },
    "speedGraph": {
      "highestSpeed": 49.94,
      "collisionSpeed": 25.4,
      "postedSpeedLimit": 80,
      "graph": [
        { "time": "2026-10-19T10:39:58Z", "speed": 48.2, "accident": false },
        { "time": "2026-10-19T10:40:00Z", "speed": 49.9, "accident": true },
        { "time": "2026-10-19T10:40:02Z", "speed": 25.4, "accident": true },
        { "time": "2026-10-19T10:40:04Z", "speed": 3.1, "accident": false }
      ]
    },
    "impact": { "pointOfImpact": ["Front Right"], "accelerationForce": 0.64 },
    "damageAssessment": {
      "newVehiclePrice": { "value": 31205.0, "annotatedValue": 31205.0, "yourEstimatedPrice": null },
      "presentVehiclePrice": { "value": 28012.99, "annotatedValue": 28012.99, "yourEstimatedPrice": null },
      "vehicleDamage": { "value": 1651.0, "annotatedValue": 1651.0, "yourEstimatedPrice": null }
    },
    "damageToVehicle": { "percentageToWriteOff": 6 },
    "vehiclePreAccidentScore": { "preAccidentScore": 54.0, "range": 3 },
    "objectsStruck": ["Car"],
    "injuryInformation": [
      { "party": "Driver", "probabilityOfInjury": "Low" },
      { "party": "Passenger", "probabilityOfInjury": "Low" }
    ],
    "incidentDetails": {
      "overallEventRisk": "Critical",
      "incidents": [
        { "incidentType": "Manual Selection", "provider": "Geotab", "accuracy": "No Video" },
        { "incidentType": "Accident", "provider": "Manifold", "accuracy": "Accurate" },
        { "incidentType": "Lane Departure", "provider": "Manifold", "accuracy": "Accurate" }
      ]
    },
    "reportPdfUrl": "/accidents/3d7c9feb-89f3-4eff-b8c8-32a408c12d43/report.pdf"
  },
  "next": null
}

The fields listed for the list (providerEventData, vehicleAndDriverInformation and so on) are part of this response too; they are left out here to keep the example short.

Reconstruction map image

GET /accidents/{id}/reconstruction-map

Answers with a temporary redirect to the image of the accident's reconstruction map. With mode=Url it answers with the address instead of redirecting. The redirect is temporary because the address of an older map expires within minutes: do not store it. An accident without a map image answers 404.

Accident report as a PDF

GET /accidents/{id}/report.pdf

Answers with the accident report as a PDF document, laid out like the PDF you download from the portal: three pages with the overview and maps, cost, connection, vehicle and driver details, environmental conditions, injuries and damage assessment. The file is named like the portal's download, for example 20261019-AC0034-ALEX_MORGAN-1HGCM82633A004352-DetailedAccidentReport.pdf.

The report holds personal data (the driver's licence number and phone number), so the response must not be cached. The API sends Cache-Control: no-store with the PDF, and with the list and the detail responses, which carry the same personal data. Do not store these responses in a shared cache or proxy. Minor collisions have no report and answer 404.

Errors

StatusMeaning
400The range is invalid or over 120 days, the cursor, limit or a filter is invalid, or the Connection-Id is missing or is not one of yours
401The x-api-key is missing or expired
404No accident with this id on the connection (or no map image, or no report)
429Rate limited

Did this page help you?