---
title: "Approve Motor Pool Reservation"
method: PATCH
path: "/motor_pool_reservations/{id}/approve"
tags: ["Motor Pool Reservations"]
---

# Approve Motor Pool Reservation

`PATCH /motor_pool_reservations/{id}/approve`

## Request

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

Approve a Motor Pool Reservation, assigning it a Vehicle. Only valid while
the reservation's `status` is `requested`.

## Path parameters

- `id` string, required

## Request body

- object
  - `vehicle_id` integer, required
  - `reason_for_trip` string, nullable: The purpose or justification for the vehicle reservation.
  - `pick_up_at` string, date-time: The date and time when the vehicle is picked up from the motor pool.
  - `drop_off_at` string, date-time: The date and time when the vehicle is dropped off at the motor pool.
  - `custom_fields` CustomFields, nullable: *Full details on working with Custom Fields [here](/docs/overview/custom-fields).
  - `motor_pool_reservation_line_items_attributes` object[]
    - `id` integer, nullable: The ID of an existing line item to update. Omit to add a new one.
    - `title` string: The label shown for this line item.
    - `kind` 'duration' | 'meter' | 'flat': The kind of charge this line item represents.
    - `unit` 'mi' | 'km' | 'hr' | 'hour' | 'day' | 'week' | 'month' | 'year' | 'item': The unit this line item is rated by. Which units are valid depends on `kind`.
    - `unit_rate_cents` integer: The rate for this line item, in cents.
    - `quantity` number: The quantity of `unit`s charged for this line item.
    - `position` integer: The display order of this line item relative to the others.
    - `flat_fee_id` integer, nullable: The ID of the Flat Fee this line item was generated from, if any.
    - `rate_table_line_item_id` integer, nullable: The ID of the Rate Table Line Item this line item was resolved from, if any.
    - `overridden` boolean: Whether this line item's rate has been manually overridden from its resolved Rate Table value.
    - `_destroy` boolean: Set to `true` to remove this line item.

## Response `200`

OK

- MotorPoolReservation, nullable: A Motor Pool Reservation
  - `id` integer, required
  - `created_at` string, date-time: The date and time at which this record was created.
  - `updated_at` string, date-time: The date and time at which this record was most recently updated.
  - `vehicle_type_ids` Id[]: The IDs of any Vehicle types associated with this Motor Pool Reservation.
  - `motor_pool_id` integer
  - `vehicle_assignment_id` integer, nullable
  - `contact_id` integer
  - `number` integer
  - `reason_for_trip` string, nullable: The purpose or justification for the vehicle reservation.
  - `pick_up_at` string, date-time: The date and time when the vehicle is picked up from the motor pool.
  - `drop_off_at` string, date-time, nullable: The date and time when the vehicle is dropped off at the motor pool.
  - `approved_at` string, date-time, nullable: The date and time when the reservation was approved.
  - `checked_out_at` string, date-time, nullable: The date and time when the reservation was checked out.
  - `returned_at` string, date-time, nullable: The date and time when the reservation was returned.
  - `completed_at` string, date-time, nullable: The date and time when the reservation was completed.
  - `canceled_at` string, date-time, nullable: The date and time when the reservation was canceled.
  - `canceled_reason` string, nullable: The reason for cancelation.
  - `denied_at` string, date-time, nullable: The date and time when the reservation was denied.
  - `denied_reason` string, nullable: The reason for denial.
  - `status` 'requested' | 'approved' | 'checked_out' | 'returned' | 'completed' | 'denied' | 'canceled': The Motor Pool Reservation status.
  - `vehicle_types` VehicleType[]
    - `id` integer
    - `created_at` string, date-time: The date and time at which this record was created.
    - `updated_at` string, date-time: The date and time at which this record was most recently updated.
    - `account_id` integer, required
    - `name` string, required: The name of the Vehicle Type.
    - `default` boolean, required: Whether this Vehicle Type is the default applied to new `Vehicles`.
    - `unarchived_vehicles_count` integer, required: The number of unarchived `Vehicles` that are of this Vehicle Type.
    - `vehicles_count` integer, required: The total number of `Vehicles` that are of this Vehicle Type.
  - `motor_pool` MotorPoolMini, nullable: A Motor Pool
    - `id` integer, required
    - `created_at` string, date-time: The date and time at which this record was created.
    - `updated_at` string, date-time: The date and time at which this record was most recently updated.
    - `account_id` integer
    - `name` string: The name of the Motor Pool.
    - `reason_for_trip_required` boolean: Whether the `reason_for_trip` field is required when booking a reservation in this Motor Pool.
  - `vehicle_assignment` MotorPoolVehicleAssignment, nullable: A Motor Pool Vehicle Assignment
    - `id` integer
    - `vehicle_id` integer: The id of the vehicle associated with this Vehicle Assignment.
    - `contact_id` integer: The id of the contact associated with this Vehicle Assignment.
    - `started_at` string, date-time, nullable: The date and time of this Vehicle Assignment. Dates in the future are accepted. We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
    - `ended_at` string, date-time, nullable: The date and time of this Vehicle Assignment ending. We recommend using [ISO-8601](/docs/overview/date-formatting) formatted dates to avoid ambiguity.
    - `starting_meter_entry_value` string, nullable: The meter value at the start of this Vehicle Assignment.
    - `ending_meter_entry_value` string, nullable: The meter value at the end of this Vehicle Assignment.
    - `contact` 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.
    - `custom_fields` CustomFields, nullable: *Full details on working with Custom Fields [here](/docs/overview/custom-fields).
    - `vehicle` object: 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.
      - `vehicle_type_id` integer: The ID of the vehicle type.
      - `vehicle_type_name` string: The name of the vehicle type.
  - `custom_fields` CustomFields, nullable: *Full details on working with Custom Fields [here](/docs/overview/custom-fields).

## Other responses

- `400`: The format or parameters of the request was invalid
- `401`: Request could not be authenticated
- `403`: Insufficient permission to perform this operation
- `404`: The requested resource could not be located
- `422`: Unprocessable Entity
- `500`: Something unexpected happened

## Changes

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

[Operation history](https://skmtc.dev/fleetio/apis/fleetio-developer-api/changes/motor_pool_reservations/:id/approve/patch.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)
