---
title: "Create Accident"
method: POST
path: "/accidents"
tags: ["Accidents"]
---

# Create Accident

`POST /accidents`

## Request

- Base URL: `https://secure.fleetio.com/api`
- URL: `https://secure.fleetio.com/api/accidents`
- Auth: API key in header `Authorization` and API key in header `Account-Token`
- TypeScript: <https://skmtc.dev/fleetio/apis/fleetio-developer-api/docs/accidents/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates a new Accident

## Request body

- object
  - `vehicle_id` integer, required: The id of the `Vehicle` involved in the Accident. Required when creating an Accident.
  - `driver_id` integer, required: The id of the `Contact` who was driving. Required when creating an Accident.
  - `occurred_at` string, date-time, required: The date and time at which the Accident occurred. Required when creating an Accident. We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
  - `street_address` string, nullable: The street address where the Accident occurred.
  - `street_address_line_2` string, nullable: The second line of the street address.
  - `city` string, required: The city where the Accident occurred. Required when creating an Accident.
  - `region` string, required: The state, province, or territory where the Accident occurred. Required when creating an Accident.
  - `postal_code` string, nullable: The postal code where the Accident occurred.
  - `country` string, nullable: The country where the Accident occurred. This is free text. Send an ISO 3166-1 alpha-2 code such as US to match the Fleetio web app.
  - `latitude` number, nullable: The latitude where the Accident occurred.
  - `longitude` number, nullable: The longitude where the Accident occurred.
  - `detection_source` 'telematics_crash_detection' | 'driver_self_report' | 'dashcam_safety_event' | 'third_party_report' | 'customer_report' | 'insurance_notification', nullable: How the Accident was detected or reported.
  - `weather` 'clear' | 'rain' | 'snow' | 'fog' | 'sleet' | 'other', nullable: The weather conditions at the time of the Accident.
  - `road_condition` 'dry' | 'wet' | 'icy' | 'snow_covered' | 'debris' | 'other', nullable: The road conditions at the time of the Accident.
  - `accident_type` 'rear_end' | 'side_impact' | 'head_on' | 'single_vehicle' | 'backing' | 'parking_lot' | 'hit_and_run' | 'weather_natural_event' | 'vandalism_theft' | 'jobsite_damage' | 'other', required: The type of Accident. Required when creating an Accident.
  - `damage_description` string, required: A description of the damage. Required when creating an Accident.
  - `driver_statement` string, nullable: The driver's statement about the Accident.
  - `injuries_reported` 'no_injuries' | 'minor' | 'serious' | 'fatal', required: The most serious level of injury reported. Required when creating an Accident.
  - `police_report_number` string, nullable: The police report number.
  - `other_party_name` string, nullable: The name of the other party involved.
  - `other_party_phone` string, nullable: The phone number of the other party involved.
  - `other_party_insurance` string, nullable: The insurance details of the other party involved.
  - `other_party_vehicle` string, nullable: The vehicle of the other party involved.
  - `witness_name` string, nullable: The name of a witness.
  - `witness_contact` string, nullable: The contact details of a witness.
  - `additional_notes` string, nullable: Additional notes about the Accident.
  - `insurance_claim_number` string, nullable: The insurance claim number.
  - `units_involved` integer, nullable: The number of units involved in the Accident.
  - `total_injured` integer, nullable: The total number of people injured. It must be blank or 0 when injuries_reported is no_injuries.
  - `driver_at_fault` boolean, nullable: Whether the driver was at fault.
  - `total_loss` boolean: Whether the vehicle was a total loss.
  - `vehicle_operable` boolean, nullable: Whether the vehicle was operable after the Accident.
  - `external_id` string, nullable: An identifier from an external system, such as the integration that reported the Accident. It is not unique, so creating twice with the same value creates two Accidents. It can be set when creating an Accident and is ignored when updating one.
  - `assigned_contact_ids` integer[]: An array of ids of `Contacts` assigned to the Accident. The values passed in this array will overwrite any existing assignments.
  - `custom_fields` CustomFields, nullable: *Full details on working with Custom Fields [here](/docs/overview/custom-fields).

## Response `201`

Created

- Accident: An Accident
  - `id` integer, required: The unique identifier of the Accident.
  - `state` 'open' | 'closed', required: Whether the Accident is open or closed.
  - `vehicle_id` integer, required: The id of the Vehicle involved in the Accident.
  - `driver_id` integer, nullable: The id of the Contact who was driving.
  - `occurred_at` string, date-time, nullable: The date and time at which the Accident occurred.
  - `opened_at` string, date-time, nullable: The date and time at which the Accident was opened.
  - `closed_at` string, date-time, nullable: The date and time at which the Accident was closed.
  - `closed_by_id` integer, nullable: The id of the User who closed the Accident.
  - `closed_note` string, nullable: The note recorded when the Accident was closed.
  - `created_by_id` integer, nullable: The id of the User who created the Accident.
  - `street_address` string, nullable: The street address where the Accident occurred.
  - `street_address_line_2` string, nullable: The second line of the street address.
  - `city` string, nullable: The city where the Accident occurred.
  - `region` string, nullable: The state, province, or territory where the Accident occurred.
  - `postal_code` string, nullable: The postal code where the Accident occurred.
  - `country` string, nullable: The country where the Accident occurred.
  - `latitude` number, nullable: The latitude where the Accident occurred.
  - `longitude` number, nullable: The longitude where the Accident occurred.
  - `detection_source` 'telematics_crash_detection' | 'driver_self_report' | 'dashcam_safety_event' | 'third_party_report' | 'customer_report' | 'insurance_notification', nullable: How the Accident was detected or reported.
  - `weather` 'clear' | 'rain' | 'snow' | 'fog' | 'sleet' | 'other', nullable: The weather conditions at the time of the Accident.
  - `road_condition` 'dry' | 'wet' | 'icy' | 'snow_covered' | 'debris' | 'other', nullable: The road conditions at the time of the Accident.
  - `accident_type` 'rear_end' | 'side_impact' | 'head_on' | 'single_vehicle' | 'backing' | 'parking_lot' | 'hit_and_run' | 'weather_natural_event' | 'vandalism_theft' | 'jobsite_damage' | 'other', nullable: The type of Accident.
  - `damage_description` string, nullable: A description of the damage.
  - `driver_statement` string, nullable: The driver's statement about the Accident.
  - `injuries_reported` 'no_injuries' | 'minor' | 'serious' | 'fatal', nullable: The most serious level of injury reported.
  - `police_report_number` string, nullable: The police report number.
  - `other_party_name` string, nullable: The name of the other party involved.
  - `other_party_phone` string, nullable: The phone number of the other party involved.
  - `other_party_insurance` string, nullable: The insurance details of the other party involved.
  - `other_party_vehicle` string, nullable: The vehicle of the other party involved.
  - `witness_name` string, nullable: The name of a witness.
  - `witness_contact` string, nullable: The contact details of a witness.
  - `additional_notes` string, nullable: Additional notes about the Accident.
  - `insurance_claim_number` string, nullable: The insurance claim number.
  - `units_involved` integer, nullable: The number of units involved in the Accident.
  - `total_injured` integer, nullable: The total number of people injured.
  - `driver_at_fault` boolean, nullable: Whether the driver was at fault.
  - `total_loss` boolean: Whether the vehicle was a total loss.
  - `vehicle_operable` boolean, nullable: Whether the vehicle was operable after the Accident.
  - `external_id` string, nullable: An identifier from an external system. It is set by the API caller and is not unique.
  - `comments_count` integer: The count of comments on the Accident.
  - `documents_count` integer: The count of documents on the Accident.
  - `images_count` integer: The count of images on the Accident.
  - `vehicle_archived_at` string, date-time, nullable: The date and time at which the Accident's Vehicle was archived.
  - `created_at` string, date-time: The date and time at which the Accident was created.
  - `updated_at` string, date-time: The date and time at which the Accident was last updated.
  - `work_order_id` integer, nullable: The id of the linked Work Order. Null when none is linked or the caller cannot read it.
  - `service_entry_id` integer, nullable: The id of the linked Service Entry. Null when none is linked or the caller cannot read it.
  - `assigned_contact_ids` integer[]: The ids of the Contacts assigned to the Accident.
  - `custom_fields` CustomFields, nullable: *Full details on working with Custom Fields [here](/docs/overview/custom-fields).
  - `vehicle` VehicleMini: A Vehicle
    - `id` integer, required
    - `name` string, required: This vehicle's name.
    - `color` string, nullable: The color of this Vehicle.
    - `license_plate` string, nullable: The license plate number of this Vehicle.
    - `vin` string, nullable: The Vehicle Identification Number of this Vehicle.
    - `year` string, nullable: This Vehicle's model year.
    - `make` string, nullable: The name of this Vehicle's manufacturer.
    - `model` string, nullable: The name of the model of this Vehicle.
    - `trim` string, nullable: The trim level of this Vehicle.
    - `registration_expiration_month` integer, nullable: The month in which this Vehicle's registration expires.
    - `registration_state` string, nullable: The state, province, or territory in which this Vehicle is registered.
    - `default_image_url_small` string, nullable: The URL of a small-sized version of the default image for this Vehicle.
  - `driver` ContactMini, nullable: A Contact
    - `id` integer
    - `email` string, nullable: The Contact's email address.
    - `name` string, nullable: The Contact's full name.
    - `group_id` integer, nullable: If this Contact belongs to a [Group](/docs/api/groups), this will be the Fleetio ID of that `Group`.
    - `employee` boolean, nullable: Whether or not the Contact is an employee.
    - `employee_number` string, nullable: The employee number of the Contact.
    - `default_image_url` string, nullable: The URL of the Contact's default image/profile photo, if any.
  - `assigned_contacts` ContactMini[]: The Contacts assigned to the Accident. The email and employee of each are omitted when the caller's role cannot view basic contact info, and the employee_number of each is omitted when it cannot view contact and personal info.
    - `id` integer
    - `email` string, nullable: The Contact's email address.
    - `name` string, nullable: The Contact's full name.
    - `group_id` integer, nullable: If this Contact belongs to a [Group](/docs/api/groups), this will be the Fleetio ID of that `Group`.
    - `employee` boolean, nullable: Whether or not the Contact is an employee.
    - `employee_number` string, nullable: The employee number of the Contact.
    - `default_image_url` string, nullable: The URL of the Contact's default image/profile photo, if any.

## Other responses

- `401`: Request could not be authenticated
- `403`: Insufficient permission to perform this operation
- `422`: Unprocessable Entity. Each key in `errors` is the name of the request parameter that failed validation, for example `driver_id` or `city`, except `base` for errors that belong to no single parameter, and `custom_fields.<key>` for a failing custom field.
- `500`: Something unexpected happened

## Changes

- **2026-11-06** `49558d744bd7`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/fleetio/apis/fleetio-developer-api/changes/accidents/post.md)

---

[API](https://skmtc.dev/fleetio/apis/fleetio-developer-api.md) - [All operations](https://skmtc.dev/fleetio/apis/fleetio-developer-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fleetio/apis/fleetio-developer-api/revisions/49558d744bd7?raw)
