> For the complete documentation index, see [llms.txt](https://navixy.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://navixy.com/docs/navixy-api/user-api/resources/fleet/vehicle.md).

# Vehicle

The vehicle behind a tracker, carrying its VIN, consumption figures, and other details a device cannot report.

A vehicle records what the Navixy platform knows about the thing being tracked rather than about the device tracking it: its VIN, its registration, its fuel consumption norms, and the rest.

A vehicle is linked to a [tracker](/docs/navixy-api/user-api/resources/tracking/tracker.md), and that link is what lets the platform combine the two. A track's `norm_fuel_consumed`, for example, is only calculated when a vehicle with `normAvgFuelConsumption` is attached to the tracker that produced it.

## Vehicle object

## The Vehicle object

```json
{"openapi":"3.1.0","info":{"title":"Navixy Platform API","version":"1.0.0"},"components":{"schemas":{"Vehicle":{"type":"object","description":"A vehicle in the fleet.","properties":{"id":{"type":"integer","description":"ID of the vehicle. Omit when creating."},"tracker_id":{"type":"integer","description":"ID of the tracker, also known as object_id. Must belong to the authorized user and not be blocked."},"tracker_label":{"type":"string","description":"Optional. Tracker's label."},"label":{"type":"string","description":"Vehicle's label."},"icon_color":{"type":["string","null"],"description":"Colour of the vehicle icon, as six hex digits without a leading `#`."},"status_id":{"type":["integer","null"],"description":"ID of the vehicle status currently assigned, or null when none is. Set it with `vehicle/status/*`."},"trailer_reg_number":{"type":"string","description":"Registration number of the attached trailer. Empty string when there is none."},"max_speed":{"type":["integer","null"],"description":"Maximum speed of the vehicle."},"model":{"type":"string","description":"Vehicle's model."},"type":{"type":"string","description":"Vehicle's type.","enum":["truck","car","bus","special"]},"subtype":{"type":["string","null"],"description":"Optional. Depends on `type`; null means undefined. For `car`: sedan, universal, hatchback, liftback, limousine, pickup, minivan, coupe, coupe4d, muscle, convertible, phaeton, lando, crossover, roadster, suv. For `truck`: tipper, board, covered, awning, mixer, tanker, refrigerator, transporter, container, tractor. For `bus`: city, shuttle, platform, school, intercity, sightseeing. For `special`: mobile_crane, racing, buggy, ambulance, firefighter, hearse, shop, harvester, snowplow, tractor, grader, excavator, bulldozer, armored, amphibian, boat."},"garage_id":{"type":["integer","null"],"description":"ID of a garage."},"garage_organization_name":{"type":"string","description":"Optional. Garage organization name."},"trailer":{"type":"string","description":"Optional. Information about a trailer."},"manufacture_year":{"type":["integer","null"],"description":"Optional. Manufacture year."},"color":{"type":"string","description":"Optional. Colour of the vehicle, as free text rather than RGB."},"additional_info":{"type":"string","description":"Optional. Additional info."},"reg_number":{"type":"string","description":"Registration number or licence plate."},"vin":{"type":"string","description":"VIN of the vehicle."},"chassis_number":{"type":"string","description":"Chassis number."},"frame_number":{"type":"string","description":"Optional. Frame number."},"payload_weight":{"type":["integer","null"],"description":"Payload weight in kilograms."},"payload_height":{"type":["number","null"],"description":"Payload height in millimetres."},"payload_length":{"type":["number","null"],"description":"Payload length in millimetres."},"payload_width":{"type":["number","null"],"description":"Payload width in millimetres."},"passengers":{"type":["integer","null"],"description":"Maximum number of passengers."},"gross_weight":{"type":["integer","null"],"description":"Optional. Gross weight in kilograms."},"fuel_type":{"type":["string","null"],"description":"Fuel type.","enum":["petrol","diesel","gas"]},"fuel_grade":{"type":"string","description":"Grade of fuel used."},"norm_avg_fuel_consumption":{"type":["number","null"],"description":"Normal average fuel consumption, litres per 100 km."},"fuel_tank_volume":{"type":["integer","null"],"description":"Fuel tank capacity in litres."},"fuel_cost":{"type":["number","null"],"description":"Optional. Cost of fuel per litre."},"wheel_arrangement":{"type":"string","description":"Wheel arrangement, for example `4x2`."},"tyre_size":{"type":"string","description":"Tyre size."},"tyres_number":{"type":["integer","null"],"description":"Number of tyres."},"liability_insurance_policy_number":{"type":"string","description":"Liability insurance policy number."},"liability_insurance_valid_till":{"type":["string","null"],"description":"Date the liability insurance is valid until."},"free_insurance_policy_number":{"type":"string","description":"Free insurance policy number."},"free_insurance_valid_till":{"type":["string","null"],"description":"Date the free insurance is valid until."},"icon_id":{"type":["integer","null"],"description":"ID of the icon. **Read-only here**: change it through `vehicleAvatarAssign`."},"avatar_file_name":{"type":["string","null"],"description":"File name of the uploaded avatar."},"tags":{"type":"array","description":"IDs of tags applied to the vehicle.","items":{"type":"integer"}}}}}}}
```

<details>

<summary>Subtypes</summary>

<table><thead><tr><th width="136.4000244140625">Type</th><th>Subtypes</th></tr></thead><tbody><tr><td>"car"</td><td>"sedan", "universal", "hatchback", "liftback", "limousine", "pickup", "minivan", "coupe", "coupe4d", "muscle", "convertible", "phaeton", "lando", "crossover", "roadster", "suv"</td></tr><tr><td>"truck"</td><td>"tipper", "board", "covered", "awning", "mixer", "tanker", "refrigerator", "transporter", "container", "tractor"</td></tr><tr><td>"bus"</td><td>"city", "shuttle", "platform", "school", "intercity", "sightseeing"</td></tr><tr><td>"special"</td><td>"mobile_crane", "racing", "buggy", "ambulance", "firefighter", "hearse", "shop", "harvester", "snowplow", "tractor", "grader", "excavator", "bulldozer", "armored", "amphibian", "boat"</td></tr></tbody></table>

</details>

## API actions

API base path: `/vehicle`.

Operations that list no errors of their own return only the [general error codes](/docs/navixy-api/general/errors.md#error-codes).

Creates a vehicle from a vehicle object without an `id`.

***

*Required sub-user rights:* `vehicle_update`.

## Create vehicle

> Create a vehicle. Pass a vehicle object without its \`id\`.\
> \
> Requires the \`vehicle\_update\` right.

```json
{"openapi":"3.1.0","info":{"title":"Navixy Platform API","version":"1.0.0"},"tags":[{"name":"Vehicles","description":"Vehicles in the fleet, their avatars and status list, spreadsheet import, and the service works scheduled against them. All resources under the /vehicle/ path."}],"servers":[{"url":"https://api.eu.navixy.com/v2","description":"Navixy production server on European platform"},{"url":"https://api.us.navixy.com/v2","description":"Navixy production server on American platform"},{"url":"https://api.me.navixy.com/v2","description":"Navixy production server on Middle East platform"}],"security":[{"api_key":[]}],"components":{"securitySchemes":{"api_key":{"type":"apiKey","description":"Either a user session hash or an API key, with the \"NVX \" prefix, for example \"NVX 22eac1c27af4be7b9d04da2ce1af111b\". Obtain a session hash from the userAuth operation, or create an API key from the API keys operations. A small number of operations accept a session hash only and reject an API key with error code 4; each says so in its description.","name":"Authorization","in":"header"}},"schemas":{"Vehicle":{"type":"object","description":"A vehicle in the fleet.","properties":{"id":{"type":"integer","description":"ID of the vehicle. Omit when creating."},"tracker_id":{"type":"integer","description":"ID of the tracker, also known as object_id. Must belong to the authorized user and not be blocked."},"tracker_label":{"type":"string","description":"Optional. Tracker's label."},"label":{"type":"string","description":"Vehicle's label."},"icon_color":{"type":["string","null"],"description":"Colour of the vehicle icon, as six hex digits without a leading `#`."},"status_id":{"type":["integer","null"],"description":"ID of the vehicle status currently assigned, or null when none is. Set it with `vehicle/status/*`."},"trailer_reg_number":{"type":"string","description":"Registration number of the attached trailer. Empty string when there is none."},"max_speed":{"type":["integer","null"],"description":"Maximum speed of the vehicle."},"model":{"type":"string","description":"Vehicle's model."},"type":{"type":"string","description":"Vehicle's type.","enum":["truck","car","bus","special"]},"subtype":{"type":["string","null"],"description":"Optional. Depends on `type`; null means undefined. For `car`: sedan, universal, hatchback, liftback, limousine, pickup, minivan, coupe, coupe4d, muscle, convertible, phaeton, lando, crossover, roadster, suv. For `truck`: tipper, board, covered, awning, mixer, tanker, refrigerator, transporter, container, tractor. For `bus`: city, shuttle, platform, school, intercity, sightseeing. For `special`: mobile_crane, racing, buggy, ambulance, firefighter, hearse, shop, harvester, snowplow, tractor, grader, excavator, bulldozer, armored, amphibian, boat."},"garage_id":{"type":["integer","null"],"description":"ID of a garage."},"garage_organization_name":{"type":"string","description":"Optional. Garage organization name."},"trailer":{"type":"string","description":"Optional. Information about a trailer."},"manufacture_year":{"type":["integer","null"],"description":"Optional. Manufacture year."},"color":{"type":"string","description":"Optional. Colour of the vehicle, as free text rather than RGB."},"additional_info":{"type":"string","description":"Optional. Additional info."},"reg_number":{"type":"string","description":"Registration number or licence plate."},"vin":{"type":"string","description":"VIN of the vehicle."},"chassis_number":{"type":"string","description":"Chassis number."},"frame_number":{"type":"string","description":"Optional. Frame number."},"payload_weight":{"type":["integer","null"],"description":"Payload weight in kilograms."},"payload_height":{"type":["number","null"],"description":"Payload height in millimetres."},"payload_length":{"type":["number","null"],"description":"Payload length in millimetres."},"payload_width":{"type":["number","null"],"description":"Payload width in millimetres."},"passengers":{"type":["integer","null"],"description":"Maximum number of passengers."},"gross_weight":{"type":["integer","null"],"description":"Optional. Gross weight in kilograms."},"fuel_type":{"type":["string","null"],"description":"Fuel type.","enum":["petrol","diesel","gas"]},"fuel_grade":{"type":"string","description":"Grade of fuel used."},"norm_avg_fuel_consumption":{"type":["number","null"],"description":"Normal average fuel consumption, litres per 100 km."},"fuel_tank_volume":{"type":["integer","null"],"description":"Fuel tank capacity in litres."},"fuel_cost":{"type":["number","null"],"description":"Optional. Cost of fuel per litre."},"wheel_arrangement":{"type":"string","description":"Wheel arrangement, for example `4x2`."},"tyre_size":{"type":"string","description":"Tyre size."},"tyres_number":{"type":["integer","null"],"description":"Number of tyres."},"liability_insurance_policy_number":{"type":"string","description":"Liability insurance policy number."},"liability_insurance_valid_till":{"type":["string","null"],"description":"Date the liability insurance is valid until."},"free_insurance_policy_number":{"type":"string","description":"Free insurance policy number."},"free_insurance_valid_till":{"type":["string","null"],"description":"Date the free insurance is valid until."},"icon_id":{"type":["integer","null"],"description":"ID of the icon. **Read-only here**: change it through `vehicleAvatarAssign`."},"avatar_file_name":{"type":["string","null"],"description":"File name of the uploaded avatar."},"tags":{"type":"array","description":"IDs of tags applied to the vehicle.","items":{"type":"integer"}}}}},"responses":{"ResponseError":{"description":"Error response object","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Always false."},"status":{"type":"object","description":"Error status. Present only when an error occurred.","properties":{"code":{"type":"integer","description":"An error code in this API, not an HTTP code."},"description":{"type":"string","description":"An error description."}}},"errors":{"type":"array","description":"Per-parameter detail, returned with validation failures such as error code 7. A parameter name here may be an internal field name rather than the documented parameter name.","items":{"type":"object","properties":{"parameter":{"type":"string","description":"Name of the parameter that failed validation."},"error":{"type":"string","description":"What was wrong with it."}}}}}}}}}}},"paths":{"/vehicle/create":{"post":{"tags":["Vehicles"],"summary":"Create vehicle","description":"Create a vehicle. Pass a vehicle object without its `id`.\n\nRequires the `vehicle_update` right.","operationId":"vehicleCreate","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"vehicle":{"allOf":[{"$ref":"#/components/schemas/Vehicle"}],"description":"The vehicle to create, without the `id` field."},"force_reassign":{"type":"boolean","description":"Optional. Default `true`. Reassign the device to this vehicle even if it was assigned to another one."}},"required":["vehicle"]}}}},"responses":{"200":{"description":"The created vehicle","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"`true` if request finished successfully.","readOnly":true},"id":{"type":"integer","description":"ID of the new vehicle."}}}}}},"400":{"description":"Bad request. The response body carries the API-level error code in `status.code`. Validation failures also include an `errors` array naming each offending parameter.","$ref":"#/components/responses/ResponseError"},"409":{"description":"Error 247: a device cannot be assigned, or a uniqueness constraint failed.","$ref":"#/components/responses/ResponseError"},"default":{"$ref":"#/components/responses/ResponseError"}}}}}}
```

#### Errors

These errors come in addition to the [general error codes](/docs/navixy-api/general/errors.md#error-codes):

* 247 - a device cannot be assigned, or a uniqueness constraint failed.

***

Deletes vehicles with the specified IDs. Only one of `vehicle_id` or `vehicle_ids` must be specified.

*Required sub-user rights:* `vehicle_update`.

## Delete vehicles

> Delete vehicles by ID.\
> \
> \*\*Exactly one of \`vehicle\_id\` or \`vehicle\_ids\` must be given.\*\* A request with neither reports a missing parameter named \`has\_at\_least\_one\_vehicle\_id\`, which is the internal name of the validation group enforcing that choice, not a parameter you can send.\
> \
> Also accepts GET with the same parameters as query-string values.\
> \
> Requires the \`vehicle\_update\` right.

```json
{"openapi":"3.1.0","info":{"title":"Navixy Platform API","version":"1.0.0"},"tags":[{"name":"Vehicles","description":"Vehicles in the fleet, their avatars and status list, spreadsheet import, and the service works scheduled against them. All resources under the /vehicle/ path."}],"servers":[{"url":"https://api.eu.navixy.com/v2","description":"Navixy production server on European platform"},{"url":"https://api.us.navixy.com/v2","description":"Navixy production server on American platform"},{"url":"https://api.me.navixy.com/v2","description":"Navixy production server on Middle East platform"}],"security":[{"api_key":[]}],"components":{"securitySchemes":{"api_key":{"type":"apiKey","description":"Either a user session hash or an API key, with the \"NVX \" prefix, for example \"NVX 22eac1c27af4be7b9d04da2ce1af111b\". Obtain a session hash from the userAuth operation, or create an API key from the API keys operations. A small number of operations accept a session hash only and reject an API key with error code 4; each says so in its description.","name":"Authorization","in":"header"}},"responses":{"OK":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"`true` if request finished successfully.","readOnly":true}}}}}},"ResponseError":{"description":"Error response object","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Always false."},"status":{"type":"object","description":"Error status. Present only when an error occurred.","properties":{"code":{"type":"integer","description":"An error code in this API, not an HTTP code."},"description":{"type":"string","description":"An error description."}}},"errors":{"type":"array","description":"Per-parameter detail, returned with validation failures such as error code 7. A parameter name here may be an internal field name rather than the documented parameter name.","items":{"type":"object","properties":{"parameter":{"type":"string","description":"Name of the parameter that failed validation."},"error":{"type":"string","description":"What was wrong with it."}}}}}}}}}}},"paths":{"/vehicle/delete":{"post":{"tags":["Vehicles"],"summary":"Delete vehicles","description":"Delete vehicles by ID.\n\n**Exactly one of `vehicle_id` or `vehicle_ids` must be given.** A request with neither reports a missing parameter named `has_at_least_one_vehicle_id`, which is the internal name of the validation group enforcing that choice, not a parameter you can send.\n\nAlso accepts GET with the same parameters as query-string values.\n\nRequires the `vehicle_update` right.","operationId":"vehicleDelete","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"vehicle_id":{"type":"integer","description":"ID of a single vehicle to delete. Use this or `vehicle_ids`, not both."},"vehicle_ids":{"type":"array","description":"IDs of vehicles to delete. Use this or `vehicle_id`, not both.","items":{"type":"integer"}}}}}}},"responses":{"200":{"description":"Vehicles deleted","$ref":"#/components/responses/OK"},"400":{"description":"Bad request. The response body carries the API-level error code in `status.code`. Validation failures also include an `errors` array naming each offending parameter.","$ref":"#/components/responses/ResponseError"},"default":{"$ref":"#/components/responses/ResponseError"}}}}}}
```

#### Errors

These errors come in addition to the [general error codes](/docs/navixy-api/general/errors.md#error-codes):

* 201 - Not found in the database.

***

Lists the vehicles of the current user.

## List vehicles

> List the vehicles of the current user, with pagination, sorting and a text filter.\
> \
> Callable with an empty body. Also accepts GET.

```json
{"openapi":"3.1.0","info":{"title":"Navixy Platform API","version":"1.0.0"},"tags":[{"name":"Vehicles","description":"Vehicles in the fleet, their avatars and status list, spreadsheet import, and the service works scheduled against them. All resources under the /vehicle/ path."}],"servers":[{"url":"https://api.eu.navixy.com/v2","description":"Navixy production server on European platform"},{"url":"https://api.us.navixy.com/v2","description":"Navixy production server on American platform"},{"url":"https://api.me.navixy.com/v2","description":"Navixy production server on Middle East platform"}],"security":[{"api_key":[]}],"components":{"securitySchemes":{"api_key":{"type":"apiKey","description":"Either a user session hash or an API key, with the \"NVX \" prefix, for example \"NVX 22eac1c27af4be7b9d04da2ce1af111b\". Obtain a session hash from the userAuth operation, or create an API key from the API keys operations. A small number of operations accept a session hash only and reject an API key with error code 4; each says so in its description.","name":"Authorization","in":"header"}},"schemas":{"Vehicle":{"type":"object","description":"A vehicle in the fleet.","properties":{"id":{"type":"integer","description":"ID of the vehicle. Omit when creating."},"tracker_id":{"type":"integer","description":"ID of the tracker, also known as object_id. Must belong to the authorized user and not be blocked."},"tracker_label":{"type":"string","description":"Optional. Tracker's label."},"label":{"type":"string","description":"Vehicle's label."},"icon_color":{"type":["string","null"],"description":"Colour of the vehicle icon, as six hex digits without a leading `#`."},"status_id":{"type":["integer","null"],"description":"ID of the vehicle status currently assigned, or null when none is. Set it with `vehicle/status/*`."},"trailer_reg_number":{"type":"string","description":"Registration number of the attached trailer. Empty string when there is none."},"max_speed":{"type":["integer","null"],"description":"Maximum speed of the vehicle."},"model":{"type":"string","description":"Vehicle's model."},"type":{"type":"string","description":"Vehicle's type.","enum":["truck","car","bus","special"]},"subtype":{"type":["string","null"],"description":"Optional. Depends on `type`; null means undefined. For `car`: sedan, universal, hatchback, liftback, limousine, pickup, minivan, coupe, coupe4d, muscle, convertible, phaeton, lando, crossover, roadster, suv. For `truck`: tipper, board, covered, awning, mixer, tanker, refrigerator, transporter, container, tractor. For `bus`: city, shuttle, platform, school, intercity, sightseeing. For `special`: mobile_crane, racing, buggy, ambulance, firefighter, hearse, shop, harvester, snowplow, tractor, grader, excavator, bulldozer, armored, amphibian, boat."},"garage_id":{"type":["integer","null"],"description":"ID of a garage."},"garage_organization_name":{"type":"string","description":"Optional. Garage organization name."},"trailer":{"type":"string","description":"Optional. Information about a trailer."},"manufacture_year":{"type":["integer","null"],"description":"Optional. Manufacture year."},"color":{"type":"string","description":"Optional. Colour of the vehicle, as free text rather than RGB."},"additional_info":{"type":"string","description":"Optional. Additional info."},"reg_number":{"type":"string","description":"Registration number or licence plate."},"vin":{"type":"string","description":"VIN of the vehicle."},"chassis_number":{"type":"string","description":"Chassis number."},"frame_number":{"type":"string","description":"Optional. Frame number."},"payload_weight":{"type":["integer","null"],"description":"Payload weight in kilograms."},"payload_height":{"type":["number","null"],"description":"Payload height in millimetres."},"payload_length":{"type":["number","null"],"description":"Payload length in millimetres."},"payload_width":{"type":["number","null"],"description":"Payload width in millimetres."},"passengers":{"type":["integer","null"],"description":"Maximum number of passengers."},"gross_weight":{"type":["integer","null"],"description":"Optional. Gross weight in kilograms."},"fuel_type":{"type":["string","null"],"description":"Fuel type.","enum":["petrol","diesel","gas"]},"fuel_grade":{"type":"string","description":"Grade of fuel used."},"norm_avg_fuel_consumption":{"type":["number","null"],"description":"Normal average fuel consumption, litres per 100 km."},"fuel_tank_volume":{"type":["integer","null"],"description":"Fuel tank capacity in litres."},"fuel_cost":{"type":["number","null"],"description":"Optional. Cost of fuel per litre."},"wheel_arrangement":{"type":"string","description":"Wheel arrangement, for example `4x2`."},"tyre_size":{"type":"string","description":"Tyre size."},"tyres_number":{"type":["integer","null"],"description":"Number of tyres."},"liability_insurance_policy_number":{"type":"string","description":"Liability insurance policy number."},"liability_insurance_valid_till":{"type":["string","null"],"description":"Date the liability insurance is valid until."},"free_insurance_policy_number":{"type":"string","description":"Free insurance policy number."},"free_insurance_valid_till":{"type":["string","null"],"description":"Date the free insurance is valid until."},"icon_id":{"type":["integer","null"],"description":"ID of the icon. **Read-only here**: change it through `vehicleAvatarAssign`."},"avatar_file_name":{"type":["string","null"],"description":"File name of the uploaded avatar."},"tags":{"type":"array","description":"IDs of tags applied to the vehicle.","items":{"type":"integer"}}}}},"responses":{"ResponseError":{"description":"Error response object","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Always false."},"status":{"type":"object","description":"Error status. Present only when an error occurred.","properties":{"code":{"type":"integer","description":"An error code in this API, not an HTTP code."},"description":{"type":"string","description":"An error description."}}},"errors":{"type":"array","description":"Per-parameter detail, returned with validation failures such as error code 7. A parameter name here may be an internal field name rather than the documented parameter name.","items":{"type":"object","properties":{"parameter":{"type":"string","description":"Name of the parameter that failed validation."},"error":{"type":"string","description":"What was wrong with it."}}}}}}}}}}},"paths":{"/vehicle/list":{"post":{"tags":["Vehicles"],"summary":"List vehicles","description":"List the vehicles of the current user, with pagination, sorting and a text filter.\n\nCallable with an empty body. Also accepts GET.","operationId":"vehicleList","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"limit":{"type":"integer","description":"Pagination. Maximum number of vehicle records to return."},"offset":{"type":"integer","description":"Pagination. Return vehicles starting from this offset."},"sort":{"type":"array","description":"Optional. Sort options, each a property and direction such as `type=desc`. **At most 2 options per request.** Sortable properties: `id`, `label`, `reg_number`, `model`, `type`, `garage_organization_name`, `vin`, `tracker_label`, `fuel_type`, `fuel_grade`, `norm_avg_fuel_consumption`, `fuel_tank_volume`, `payload_weight`, `chassis_number`, `subtype`, `wheel_arrangement`, `tyres_number`, `tyres_size`, `max_speed`, `passengers`.","items":{"type":"string"},"maxItems":2},"filter":{"type":"string","description":"Optional. Filter by VIN, reg_number or label. Up to 100 characters, or null.","maxLength":100}}}}}},"responses":{"200":{"description":"Matching vehicles","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"`true` if request finished successfully.","readOnly":true},"list":{"type":"array","items":{"$ref":"#/components/schemas/Vehicle"}},"count":{"type":"integer","description":"Total number of vehicles matching the request, ignoring pagination."}}}}}},"400":{"description":"Bad request. The response body carries the API-level error code in `status.code`. Validation failures also include an `errors` array naming each offending parameter.","$ref":"#/components/responses/ResponseError"},"default":{"$ref":"#/components/responses/ResponseError"}}}}}}
```

***

Reads one vehicle by ID.

## Read vehicle

> Return one vehicle by ID.\
> \
> Also accepts GET with the same parameters as query-string values.

```json
{"openapi":"3.1.0","info":{"title":"Navixy Platform API","version":"1.0.0"},"tags":[{"name":"Vehicles","description":"Vehicles in the fleet, their avatars and status list, spreadsheet import, and the service works scheduled against them. All resources under the /vehicle/ path."}],"servers":[{"url":"https://api.eu.navixy.com/v2","description":"Navixy production server on European platform"},{"url":"https://api.us.navixy.com/v2","description":"Navixy production server on American platform"},{"url":"https://api.me.navixy.com/v2","description":"Navixy production server on Middle East platform"}],"security":[{"api_key":[]}],"components":{"securitySchemes":{"api_key":{"type":"apiKey","description":"Either a user session hash or an API key, with the \"NVX \" prefix, for example \"NVX 22eac1c27af4be7b9d04da2ce1af111b\". Obtain a session hash from the userAuth operation, or create an API key from the API keys operations. A small number of operations accept a session hash only and reject an API key with error code 4; each says so in its description.","name":"Authorization","in":"header"}},"schemas":{"Vehicle":{"type":"object","description":"A vehicle in the fleet.","properties":{"id":{"type":"integer","description":"ID of the vehicle. Omit when creating."},"tracker_id":{"type":"integer","description":"ID of the tracker, also known as object_id. Must belong to the authorized user and not be blocked."},"tracker_label":{"type":"string","description":"Optional. Tracker's label."},"label":{"type":"string","description":"Vehicle's label."},"icon_color":{"type":["string","null"],"description":"Colour of the vehicle icon, as six hex digits without a leading `#`."},"status_id":{"type":["integer","null"],"description":"ID of the vehicle status currently assigned, or null when none is. Set it with `vehicle/status/*`."},"trailer_reg_number":{"type":"string","description":"Registration number of the attached trailer. Empty string when there is none."},"max_speed":{"type":["integer","null"],"description":"Maximum speed of the vehicle."},"model":{"type":"string","description":"Vehicle's model."},"type":{"type":"string","description":"Vehicle's type.","enum":["truck","car","bus","special"]},"subtype":{"type":["string","null"],"description":"Optional. Depends on `type`; null means undefined. For `car`: sedan, universal, hatchback, liftback, limousine, pickup, minivan, coupe, coupe4d, muscle, convertible, phaeton, lando, crossover, roadster, suv. For `truck`: tipper, board, covered, awning, mixer, tanker, refrigerator, transporter, container, tractor. For `bus`: city, shuttle, platform, school, intercity, sightseeing. For `special`: mobile_crane, racing, buggy, ambulance, firefighter, hearse, shop, harvester, snowplow, tractor, grader, excavator, bulldozer, armored, amphibian, boat."},"garage_id":{"type":["integer","null"],"description":"ID of a garage."},"garage_organization_name":{"type":"string","description":"Optional. Garage organization name."},"trailer":{"type":"string","description":"Optional. Information about a trailer."},"manufacture_year":{"type":["integer","null"],"description":"Optional. Manufacture year."},"color":{"type":"string","description":"Optional. Colour of the vehicle, as free text rather than RGB."},"additional_info":{"type":"string","description":"Optional. Additional info."},"reg_number":{"type":"string","description":"Registration number or licence plate."},"vin":{"type":"string","description":"VIN of the vehicle."},"chassis_number":{"type":"string","description":"Chassis number."},"frame_number":{"type":"string","description":"Optional. Frame number."},"payload_weight":{"type":["integer","null"],"description":"Payload weight in kilograms."},"payload_height":{"type":["number","null"],"description":"Payload height in millimetres."},"payload_length":{"type":["number","null"],"description":"Payload length in millimetres."},"payload_width":{"type":["number","null"],"description":"Payload width in millimetres."},"passengers":{"type":["integer","null"],"description":"Maximum number of passengers."},"gross_weight":{"type":["integer","null"],"description":"Optional. Gross weight in kilograms."},"fuel_type":{"type":["string","null"],"description":"Fuel type.","enum":["petrol","diesel","gas"]},"fuel_grade":{"type":"string","description":"Grade of fuel used."},"norm_avg_fuel_consumption":{"type":["number","null"],"description":"Normal average fuel consumption, litres per 100 km."},"fuel_tank_volume":{"type":["integer","null"],"description":"Fuel tank capacity in litres."},"fuel_cost":{"type":["number","null"],"description":"Optional. Cost of fuel per litre."},"wheel_arrangement":{"type":"string","description":"Wheel arrangement, for example `4x2`."},"tyre_size":{"type":"string","description":"Tyre size."},"tyres_number":{"type":["integer","null"],"description":"Number of tyres."},"liability_insurance_policy_number":{"type":"string","description":"Liability insurance policy number."},"liability_insurance_valid_till":{"type":["string","null"],"description":"Date the liability insurance is valid until."},"free_insurance_policy_number":{"type":"string","description":"Free insurance policy number."},"free_insurance_valid_till":{"type":["string","null"],"description":"Date the free insurance is valid until."},"icon_id":{"type":["integer","null"],"description":"ID of the icon. **Read-only here**: change it through `vehicleAvatarAssign`."},"avatar_file_name":{"type":["string","null"],"description":"File name of the uploaded avatar."},"tags":{"type":"array","description":"IDs of tags applied to the vehicle.","items":{"type":"integer"}}}}},"responses":{"ResponseError":{"description":"Error response object","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Always false."},"status":{"type":"object","description":"Error status. Present only when an error occurred.","properties":{"code":{"type":"integer","description":"An error code in this API, not an HTTP code."},"description":{"type":"string","description":"An error description."}}},"errors":{"type":"array","description":"Per-parameter detail, returned with validation failures such as error code 7. A parameter name here may be an internal field name rather than the documented parameter name.","items":{"type":"object","properties":{"parameter":{"type":"string","description":"Name of the parameter that failed validation."},"error":{"type":"string","description":"What was wrong with it."}}}}}}}}}}},"paths":{"/vehicle/read":{"post":{"tags":["Vehicles"],"summary":"Read vehicle","description":"Return one vehicle by ID.\n\nAlso accepts GET with the same parameters as query-string values.","operationId":"vehicleRead","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"vehicle_id":{"type":"integer","description":"ID of a vehicle."}},"required":["vehicle_id"]}}}},"responses":{"200":{"description":"The vehicle","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"`true` if request finished successfully.","readOnly":true},"value":{"$ref":"#/components/schemas/Vehicle"}}}}}},"400":{"description":"Bad request. The response body carries the API-level error code in `status.code`. Validation failures also include an `errors` array naming each offending parameter.","$ref":"#/components/responses/ResponseError"},"default":{"$ref":"#/components/responses/ResponseError"}}}}}}
```

#### Errors

These errors come in addition to the [general error codes](/docs/navixy-api/general/errors.md#error-codes):

* 201 - Not found in the database.

***

Updates a vehicle. Pass a full vehicle object including its `id`. `icon_id` can only be changed through [avatar/assign](/docs/navixy-api/user-api/resources/fleet/vehicle/avatar.md#post-vehicle-avatar-assign).

*Required sub-user rights:* `vehicle_update`.

## Update vehicle

> Update a vehicle. Pass a full vehicle object including its \`id\`.\
> \
> Note \`icon\_id\` cannot be set here: it is changed through \`vehicle/avatar/assign\`.\
> \
> Requires the \`vehicle\_update\` right.

```json
{"openapi":"3.1.0","info":{"title":"Navixy Platform API","version":"1.0.0"},"tags":[{"name":"Vehicles","description":"Vehicles in the fleet, their avatars and status list, spreadsheet import, and the service works scheduled against them. All resources under the /vehicle/ path."}],"servers":[{"url":"https://api.eu.navixy.com/v2","description":"Navixy production server on European platform"},{"url":"https://api.us.navixy.com/v2","description":"Navixy production server on American platform"},{"url":"https://api.me.navixy.com/v2","description":"Navixy production server on Middle East platform"}],"security":[{"api_key":[]}],"components":{"securitySchemes":{"api_key":{"type":"apiKey","description":"Either a user session hash or an API key, with the \"NVX \" prefix, for example \"NVX 22eac1c27af4be7b9d04da2ce1af111b\". Obtain a session hash from the userAuth operation, or create an API key from the API keys operations. A small number of operations accept a session hash only and reject an API key with error code 4; each says so in its description.","name":"Authorization","in":"header"}},"schemas":{"Vehicle":{"type":"object","description":"A vehicle in the fleet.","properties":{"id":{"type":"integer","description":"ID of the vehicle. Omit when creating."},"tracker_id":{"type":"integer","description":"ID of the tracker, also known as object_id. Must belong to the authorized user and not be blocked."},"tracker_label":{"type":"string","description":"Optional. Tracker's label."},"label":{"type":"string","description":"Vehicle's label."},"icon_color":{"type":["string","null"],"description":"Colour of the vehicle icon, as six hex digits without a leading `#`."},"status_id":{"type":["integer","null"],"description":"ID of the vehicle status currently assigned, or null when none is. Set it with `vehicle/status/*`."},"trailer_reg_number":{"type":"string","description":"Registration number of the attached trailer. Empty string when there is none."},"max_speed":{"type":["integer","null"],"description":"Maximum speed of the vehicle."},"model":{"type":"string","description":"Vehicle's model."},"type":{"type":"string","description":"Vehicle's type.","enum":["truck","car","bus","special"]},"subtype":{"type":["string","null"],"description":"Optional. Depends on `type`; null means undefined. For `car`: sedan, universal, hatchback, liftback, limousine, pickup, minivan, coupe, coupe4d, muscle, convertible, phaeton, lando, crossover, roadster, suv. For `truck`: tipper, board, covered, awning, mixer, tanker, refrigerator, transporter, container, tractor. For `bus`: city, shuttle, platform, school, intercity, sightseeing. For `special`: mobile_crane, racing, buggy, ambulance, firefighter, hearse, shop, harvester, snowplow, tractor, grader, excavator, bulldozer, armored, amphibian, boat."},"garage_id":{"type":["integer","null"],"description":"ID of a garage."},"garage_organization_name":{"type":"string","description":"Optional. Garage organization name."},"trailer":{"type":"string","description":"Optional. Information about a trailer."},"manufacture_year":{"type":["integer","null"],"description":"Optional. Manufacture year."},"color":{"type":"string","description":"Optional. Colour of the vehicle, as free text rather than RGB."},"additional_info":{"type":"string","description":"Optional. Additional info."},"reg_number":{"type":"string","description":"Registration number or licence plate."},"vin":{"type":"string","description":"VIN of the vehicle."},"chassis_number":{"type":"string","description":"Chassis number."},"frame_number":{"type":"string","description":"Optional. Frame number."},"payload_weight":{"type":["integer","null"],"description":"Payload weight in kilograms."},"payload_height":{"type":["number","null"],"description":"Payload height in millimetres."},"payload_length":{"type":["number","null"],"description":"Payload length in millimetres."},"payload_width":{"type":["number","null"],"description":"Payload width in millimetres."},"passengers":{"type":["integer","null"],"description":"Maximum number of passengers."},"gross_weight":{"type":["integer","null"],"description":"Optional. Gross weight in kilograms."},"fuel_type":{"type":["string","null"],"description":"Fuel type.","enum":["petrol","diesel","gas"]},"fuel_grade":{"type":"string","description":"Grade of fuel used."},"norm_avg_fuel_consumption":{"type":["number","null"],"description":"Normal average fuel consumption, litres per 100 km."},"fuel_tank_volume":{"type":["integer","null"],"description":"Fuel tank capacity in litres."},"fuel_cost":{"type":["number","null"],"description":"Optional. Cost of fuel per litre."},"wheel_arrangement":{"type":"string","description":"Wheel arrangement, for example `4x2`."},"tyre_size":{"type":"string","description":"Tyre size."},"tyres_number":{"type":["integer","null"],"description":"Number of tyres."},"liability_insurance_policy_number":{"type":"string","description":"Liability insurance policy number."},"liability_insurance_valid_till":{"type":["string","null"],"description":"Date the liability insurance is valid until."},"free_insurance_policy_number":{"type":"string","description":"Free insurance policy number."},"free_insurance_valid_till":{"type":["string","null"],"description":"Date the free insurance is valid until."},"icon_id":{"type":["integer","null"],"description":"ID of the icon. **Read-only here**: change it through `vehicleAvatarAssign`."},"avatar_file_name":{"type":["string","null"],"description":"File name of the uploaded avatar."},"tags":{"type":"array","description":"IDs of tags applied to the vehicle.","items":{"type":"integer"}}}}},"responses":{"OK":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"`true` if request finished successfully.","readOnly":true}}}}}},"ResponseError":{"description":"Error response object","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Always false."},"status":{"type":"object","description":"Error status. Present only when an error occurred.","properties":{"code":{"type":"integer","description":"An error code in this API, not an HTTP code."},"description":{"type":"string","description":"An error description."}}},"errors":{"type":"array","description":"Per-parameter detail, returned with validation failures such as error code 7. A parameter name here may be an internal field name rather than the documented parameter name.","items":{"type":"object","properties":{"parameter":{"type":"string","description":"Name of the parameter that failed validation."},"error":{"type":"string","description":"What was wrong with it."}}}}}}}}}}},"paths":{"/vehicle/update":{"post":{"tags":["Vehicles"],"summary":"Update vehicle","description":"Update a vehicle. Pass a full vehicle object including its `id`.\n\nNote `icon_id` cannot be set here: it is changed through `vehicle/avatar/assign`.\n\nRequires the `vehicle_update` right.","operationId":"vehicleUpdate","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"vehicle":{"allOf":[{"$ref":"#/components/schemas/Vehicle"}],"description":"The vehicle to update, including its `id`."},"force_reassign":{"type":"boolean","description":"Optional. Default `true`. Reassign the device to this vehicle even if it was assigned to another one."}},"required":["vehicle"]}}}},"responses":{"200":{"description":"Vehicle updated","$ref":"#/components/responses/OK"},"400":{"description":"Bad request. The response body carries the API-level error code in `status.code`. Validation failures also include an `errors` array naming each offending parameter.","$ref":"#/components/responses/ResponseError"},"409":{"description":"Error 247: a device cannot be assigned. Error 261: the vehicle is referenced by something that prevents the change.","$ref":"#/components/responses/ResponseError"},"default":{"$ref":"#/components/responses/ResponseError"}}}}}}
```

#### Errors

These errors come in addition to the [general error codes](/docs/navixy-api/general/errors.md#error-codes):

* 201, 247, 261.

***

Converts a batch of tab-delimited vehicles and returns the list of checked vehicles with errors. If `file_id` is set, `batch` is ignored.

*Required sub-user rights:* `vehicle_update`.

## Convert vehicle batch

> Parse a tab-delimited batch of vehicles and return them checked, with per-row errors. Does not create anything.\
> \
> Give either \`batch\` or \`file\_id\`. \*\*If \`file\_id\` is set, \`batch\` is ignored.\*\* A request with neither returns error 7 with no \`errors\` array, because the rule is cross-field rather than per-parameter.\
> \
> Requires the \`vehicle\_update\` right.

```json
{"openapi":"3.1.0","info":{"title":"Navixy Platform API","version":"1.0.0"},"tags":[{"name":"Vehicles","description":"Vehicles in the fleet, their avatars and status list, spreadsheet import, and the service works scheduled against them. All resources under the /vehicle/ path."}],"servers":[{"url":"https://api.eu.navixy.com/v2","description":"Navixy production server on European platform"},{"url":"https://api.us.navixy.com/v2","description":"Navixy production server on American platform"},{"url":"https://api.me.navixy.com/v2","description":"Navixy production server on Middle East platform"}],"security":[{"api_key":[]}],"components":{"securitySchemes":{"api_key":{"type":"apiKey","description":"Either a user session hash or an API key, with the \"NVX \" prefix, for example \"NVX 22eac1c27af4be7b9d04da2ce1af111b\". Obtain a session hash from the userAuth operation, or create an API key from the API keys operations. A small number of operations accept a session hash only and reject an API key with error code 4; each says so in its description.","name":"Authorization","in":"header"}},"schemas":{"CheckedVehicle":{"type":"object","description":"A vehicle parsed from a batch, with the same fields as a vehicle plus any per-row problems found while checking it.","properties":{"id":{"type":"integer","description":"ID of the vehicle. Omit when creating."},"tracker_id":{"type":"integer","description":"ID of the tracker, also known as object_id. Must belong to the authorized user and not be blocked."},"tracker_label":{"type":"string","description":"Optional. Tracker's label."},"label":{"type":"string","description":"Vehicle's label."},"icon_color":{"type":["string","null"],"description":"Colour of the vehicle icon, as six hex digits without a leading `#`."},"status_id":{"type":["integer","null"],"description":"ID of the vehicle status currently assigned, or null when none is. Set it with `vehicle/status/*`."},"trailer_reg_number":{"type":"string","description":"Registration number of the attached trailer. Empty string when there is none."},"max_speed":{"type":["integer","null"],"description":"Maximum speed of the vehicle."},"model":{"type":"string","description":"Vehicle's model."},"type":{"type":"string","description":"Vehicle's type.","enum":["truck","car","bus","special"]},"subtype":{"type":["string","null"],"description":"Optional. Depends on `type`; null means undefined. For `car`: sedan, universal, hatchback, liftback, limousine, pickup, minivan, coupe, coupe4d, muscle, convertible, phaeton, lando, crossover, roadster, suv. For `truck`: tipper, board, covered, awning, mixer, tanker, refrigerator, transporter, container, tractor. For `bus`: city, shuttle, platform, school, intercity, sightseeing. For `special`: mobile_crane, racing, buggy, ambulance, firefighter, hearse, shop, harvester, snowplow, tractor, grader, excavator, bulldozer, armored, amphibian, boat."},"garage_id":{"type":["integer","null"],"description":"ID of a garage."},"garage_organization_name":{"type":"string","description":"Optional. Garage organization name."},"trailer":{"type":"string","description":"Optional. Information about a trailer."},"manufacture_year":{"type":["integer","null"],"description":"Optional. Manufacture year."},"color":{"type":"string","description":"Optional. Colour of the vehicle, as free text rather than RGB."},"additional_info":{"type":"string","description":"Optional. Additional info."},"reg_number":{"type":"string","description":"Registration number or licence plate."},"vin":{"type":"string","description":"VIN of the vehicle."},"chassis_number":{"type":"string","description":"Chassis number."},"frame_number":{"type":"string","description":"Optional. Frame number."},"payload_weight":{"type":["integer","null"],"description":"Payload weight in kilograms."},"payload_height":{"type":["number","null"],"description":"Payload height in millimetres."},"payload_length":{"type":["number","null"],"description":"Payload length in millimetres."},"payload_width":{"type":["number","null"],"description":"Payload width in millimetres."},"passengers":{"type":["integer","null"],"description":"Maximum number of passengers."},"gross_weight":{"type":["integer","null"],"description":"Optional. Gross weight in kilograms."},"fuel_type":{"type":["string","null"],"description":"Fuel type.","enum":["petrol","diesel","gas"]},"fuel_grade":{"type":"string","description":"Grade of fuel used."},"norm_avg_fuel_consumption":{"type":["number","null"],"description":"Normal average fuel consumption, litres per 100 km."},"fuel_tank_volume":{"type":["integer","null"],"description":"Fuel tank capacity in litres."},"fuel_cost":{"type":["number","null"],"description":"Optional. Cost of fuel per litre."},"wheel_arrangement":{"type":"string","description":"Wheel arrangement, for example `4x2`."},"tyre_size":{"type":"string","description":"Tyre size."},"tyres_number":{"type":["integer","null"],"description":"Number of tyres."},"liability_insurance_policy_number":{"type":"string","description":"Liability insurance policy number."},"liability_insurance_valid_till":{"type":["string","null"],"description":"Date the liability insurance is valid until."},"free_insurance_policy_number":{"type":"string","description":"Free insurance policy number."},"free_insurance_valid_till":{"type":["string","null"],"description":"Date the free insurance is valid until."},"icon_id":{"type":["integer","null"],"description":"ID of the icon. **Read-only here**: change it through `vehicleAvatarAssign`."},"avatar_file_name":{"type":["string","null"],"description":"File name of the uploaded avatar."},"tags":{"type":"array","description":"IDs of tags applied to the vehicle.","items":{"type":"integer"}}},"additionalProperties":true}},"responses":{"ResponseError":{"description":"Error response object","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Always false."},"status":{"type":"object","description":"Error status. Present only when an error occurred.","properties":{"code":{"type":"integer","description":"An error code in this API, not an HTTP code."},"description":{"type":"string","description":"An error description."}}},"errors":{"type":"array","description":"Per-parameter detail, returned with validation failures such as error code 7. A parameter name here may be an internal field name rather than the documented parameter name.","items":{"type":"object","properties":{"parameter":{"type":"string","description":"Name of the parameter that failed validation."},"error":{"type":"string","description":"What was wrong with it."}}}}}}}}}}},"paths":{"/vehicle/batch_convert":{"post":{"tags":["Vehicles"],"summary":"Convert vehicle batch","description":"Parse a tab-delimited batch of vehicles and return them checked, with per-row errors. Does not create anything.\n\nGive either `batch` or `file_id`. **If `file_id` is set, `batch` is ignored.** A request with neither returns error 7 with no `errors` array, because the rule is cross-field rather than per-parameter.\n\nRequires the `vehicle_update` right.","operationId":"vehicleBatchConvert","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"batch":{"type":"string","description":"Batch of tab-delimited vehicles."},"file_id":{"type":"string","description":"Preloaded file ID. Takes precedence over `batch`."},"fields":{"type":"array","description":"Optional. Field names, in column order. Defaults to `[\"label\", \"model\", \"reg_number\", \"fuel_grade\"]`.","items":{"type":"string"}},"geocoder":{"type":"string","description":"Geocoder type."}}}}}},"responses":{"200":{"description":"The checked batch","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"`true` if request finished successfully.","readOnly":true},"list":{"type":"array","items":{"$ref":"#/components/schemas/CheckedVehicle"}},"limit_exceeded":{"type":"boolean","description":"`true` if the given batch was constrained by a limit."}}}}}},"400":{"description":"Bad request. The response body carries the API-level error code in `status.code`. Validation failures also include an `errors` array naming each offending parameter.","$ref":"#/components/responses/ResponseError"},"402":{"description":"Error 234: the file or batch exceeds a size limit.","$ref":"#/components/responses/ResponseError"},"default":{"$ref":"#/components/responses/ResponseError"}}}}}}
```

#### Errors

These errors come in addition to the [general error codes](/docs/navixy-api/general/errors.md#error-codes):

* 234.

## More in this section

#### Vehicle avatar

| Endpoint                                                                                                           | Method | What it does          |
| ------------------------------------------------------------------------------------------------------------------ | ------ | --------------------- |
| [`/vehicle/avatar/assign`](/docs/navixy-api/user-api/resources/fleet/vehicle/avatar.md#post-vehicle-avatar-assign) | POST   | Assign vehicle icon   |
| [`/vehicle/avatar/upload`](/docs/navixy-api/user-api/resources/fleet/vehicle/avatar.md#post-vehicle-avatar-upload) | POST   | Upload vehicle avatar |

#### Vehicle import

| Endpoint                                                                                                                             | Method | What it does                |
| ------------------------------------------------------------------------------------------------------------------------------------ | ------ | --------------------------- |
| [`/vehicle/import/start`](/docs/navixy-api/user-api/resources/fleet/vehicle/import.md#post-vehicle-import-start)                     | POST   | Start vehicle import        |
| [`/vehicle/import/read`](/docs/navixy-api/user-api/resources/fleet/vehicle/import.md#post-vehicle-import-read)                       | POST   | Read vehicle import         |
| [`/vehicle/import/list`](/docs/navixy-api/user-api/resources/fleet/vehicle/import.md#post-vehicle-import-list)                       | POST   | List vehicle imports        |
| [`/vehicle/import/download_failed`](/docs/navixy-api/user-api/resources/fleet/vehicle/import.md#post-vehicle-import-download_failed) | POST   | Download failed import rows |

#### Service task

| Endpoint                                                                                                                                         | Method | What it does                      |
| ------------------------------------------------------------------------------------------------------------------------------------------------ | ------ | --------------------------------- |
| [`/vehicle/service_task/batch/create`](/docs/navixy-api/user-api/resources/fleet/vehicle/service-task.md#post-vehicle-service_task-batch-create) | POST   | Create service tasks for vehicles |
| [`/vehicle/service_task/create`](/docs/navixy-api/user-api/resources/fleet/vehicle/service-task.md#post-vehicle-service_task-create)             | POST   | Create service task               |
| [`/vehicle/service_task/delete`](/docs/navixy-api/user-api/resources/fleet/vehicle/service-task.md#post-vehicle-service_task-delete)             | POST   | Delete service task               |
| [`/vehicle/service_task/download`](/docs/navixy-api/user-api/resources/fleet/vehicle/service-task.md#post-vehicle-service_task-download)         | POST   | Download service task report      |
| [`/vehicle/service_task/list`](/docs/navixy-api/user-api/resources/fleet/vehicle/service-task.md#post-vehicle-service_task-list)                 | POST   | List service tasks                |
| [`/vehicle/service_task/read`](/docs/navixy-api/user-api/resources/fleet/vehicle/service-task.md#post-vehicle-service_task-read)                 | POST   | Read service task                 |
| [`/vehicle/service_task/set_status`](/docs/navixy-api/user-api/resources/fleet/vehicle/service-task.md#post-vehicle-service_task-set_status)     | POST   | Set service task status           |
| [`/vehicle/service_task/update`](/docs/navixy-api/user-api/resources/fleet/vehicle/service-task.md#post-vehicle-service_task-update)             | POST   | Update service task               |

#### Service task file

| Endpoint                                                                                                                                            | Method | What it does             |
| --------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | ------------------------ |
| [`/vehicle/service_task/file/create`](/docs/navixy-api/user-api/resources/fleet/vehicle/service-task/file.md#post-vehicle-service_task-file-create) | POST   | Create service task file |

#### Vehicle status listing

| Endpoint                                                                                                                            | Method | What it does                  |
| ----------------------------------------------------------------------------------------------------------------------------------- | ------ | ----------------------------- |
| [`/vehicle/status/listing/read`](/docs/navixy-api/user-api/resources/fleet/vehicle/listing.md#post-vehicle-status-listing-read)     | POST   | Read vehicle status listing   |
| [`/vehicle/status/listing/update`](/docs/navixy-api/user-api/resources/fleet/vehicle/listing.md#post-vehicle-status-listing-update) | POST   | Update vehicle status listing |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://navixy.com/docs/navixy-api/user-api/resources/fleet/vehicle.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
