Shiftmove Vehicles API
The Vehicles API from Shiftmove — 7 operation(s) for vehicles.
The Vehicles API from Shiftmove — 7 operation(s) for vehicles.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/shiftmove-vehicles-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
version: 1.2.3
title: Fleet API Specifications Custom fields Vehicles API
x-logo:
url: logo.svg
description: "# Introduction\nThe Avrios Fleet-API allows syncing fleet data with our system. The provided API allows you to persist, update, delete and query various entities. Refer to the current [Release Notes](release-notes.html) for relevant changes in the API. \n# Access and usage\n## Authorization\nIn order to use the API a basic auth header must be set on each request: `Authorization: Basic {base64 of username:password}`.\n## Rate limiting\nRequests are limited to 300 requests per minute.\n## Response objects \nIn all API responses, only populated fields will be returned - `null` fields are stripped from the response object.\n## Update endpoints\nWhen updating existing entities, unless otherwise specified we will only update properties sent in the request, and all properties are optional. Clearing a property can be performed by explicitly sending `null`.\n## Date interpretation \nFor consistency with the Avrios UI, some APIs accept dates in the format `yyyy-MM-dd` rather than timestamps. If these are used for filtering or business logic, they will be interpreted as the first second of the day in the company timezone (e.g. `2020-01-01` in CET becomes `2019-12-31T23:00:00Z)`."
servers:
- url: https://api.avrios.com
tags:
- name: Vehicles
paths:
/v1/vehicles:
get:
tags:
- Vehicles
summary: GET paginated vehicles
description: Access pages of vehicles.
operationId: getAllVehicles
parameters:
- name: limit
in: query
description: Number of items in a page
required: false
schema:
type: integer
maximum: 100
minimum: 1
- name: pageNumber
in: query
description: Number of the page
required: false
schema:
type: integer
minimum: 1
- name: sortBy
in: query
description: Sorting key
required: false
schema:
type: string
enum:
- uuid
- vin
- internalId
- displayName
- state
- activeLicensePlate
- chMasterNumber
- name: reverse
in: query
description: Sorting order
required: false
schema:
type: boolean
enum:
- 'false'
- 'true'
responses:
'200':
description: Successful operation.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiPageMinimalVehicleDto'
'400':
description: Bad request - information on the invalid fields will be provided in the response body
post:
tags:
- Vehicles
summary: CREATE a new vehicle
description: Create a new vehicle as defined within the request body.
operationId: createVehicle
responses:
'200':
description: Successful operation.
content:
application/json:
schema:
$ref: '#/components/schemas/VehicleDto'
'400':
description: Bad request.
'409':
description: This vehicle conflicts with a vehicle already in the system. Either the license plate or the vin are already in use after the commission date.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/VehicleCreationApiParams'
/v1/vehicles/query:
post:
tags:
- Vehicles
summary: QUERY paginated vehicles
description: Query vehicles based on specific criteria. The result is paginated.
operationId: queryVehicles
parameters:
- name: limit
in: query
description: Number of items in a page
required: false
schema:
type: integer
maximum: 100
minimum: 1
- name: pageNumber
in: query
description: Number of the page
required: false
schema:
type: integer
minimum: 1
- name: sortBy
in: query
description: Sorting key
required: false
schema:
type: string
enum:
- uuid
- vin
- internalId
- displayName
- state
- activeLicensePlate
- chMasterNumber
- name: reverse
in: query
description: Sorting order
required: false
schema:
type: boolean
enum:
- 'false'
- 'true'
responses:
'200':
description: Successful operation.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiPageMinimalVehicleDto'
'400':
description: Bad request - information on the invalid fields will be provided in the response body
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/VehicleQueryApiParams'
/v1/vehicles/{uuid}:
get:
tags:
- Vehicles
summary: GET vehicle by uuid
description: Get detailed information about a specific vehicle.
operationId: findVehicleByUuid
parameters:
- name: uuid
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Successful operation.
content:
application/json:
schema:
$ref: '#/components/schemas/VehicleDto'
'400':
description: Bad request - information on the invalid fields will be provided in the response body
'404':
description: Vehicle not found.
post:
tags:
- Vehicles
summary: UPDATE a specific vehicle
description: Post a map of key value pairs for fields with the new value. A value of `null` is accepted (where marked as nullable) and will clear that field. Cleared fields will not be shown in the response, as `null` fields are stripped by default. If a field is not present in the map it will not be altered. **Fields not marked as nullable can be left out of the map all together so as not to be changed**
operationId: updateVehicleByUuid
parameters:
- name: uuid
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Successful operation.
content:
application/json:
schema:
$ref: '#/components/schemas/VehicleDto'
'400':
description: Bad request - information on the invalid fields will be provided in the response body
'404':
description: Vehicle not found.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/VehicleUpdateApiParams'
/v1/vehicles/{uuid}/archive:
post:
tags:
- Vehicles
summary: ARCHIVE a vehicle
description: Avrios will end license plate and fuel card assignments on archive date, so that they can be assigned to other vehicles. No further costs from this vehicle will be taken into account after the archiving date. This is PERMANENT, archived vehicles CANNOT be re-activated. Archiving a vehicle will remove any ongoing decommissioning, this cannot be undone.
operationId: archiveVehicle
parameters:
- name: uuid
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Successful operation.
content:
application/json:
schema:
$ref: '#/components/schemas/VehicleDto'
'400':
description: Bad request - information on the invalid fields will be provided in the response body
'404':
description: Vehicle not found.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ArchiveVehicleApiParams'
/v1/vehicles/{uuid}/costCenter:
post:
tags:
- Vehicles
summary: CREATE vehicle cost center history entry
description: Creates new cost center for the specified vehicle. This will be validated and added to vehicle's cost center history.The entry must not have the same startDate as an existing vehicle cost center history entry.
operationId: updateVehicleCostCenter
parameters:
- name: uuid
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Successful operation.
content:
application/json:
schema:
$ref: '#/components/schemas/VehicleCostCenterHistoryDto'
'400':
description: Bad request - information on the invalid fields will be provided in the response body
'404':
description: Vehicle not found.
'409':
description: The new cost center start startDate conflicts with an existing cost center. The conflicting cost center will be returned in an error response.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CostCenterApiParams'
/v1/vehicles/{uuid}/customFieldValues/{customFieldUuid}:
post:
tags:
- Vehicles
summary: UPDATE vehicle custom field value
description: Update a custom field value for a vehicle, identified by vehicle UUID and custom field UUID. It doesn't matter whether the custom field value has been set for this vehicle previously.
operationId: setVehicleCustomFieldValue
parameters:
- name: uuid
in: path
required: true
schema:
type: string
format: uuid
- name: customFieldUuid
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Successful operation.
content:
application/json:
schema:
$ref: '#/components/schemas/CustomFieldValueDto'
'400':
description: Bad request - information on the invalid fields will be provided in the response body
'404':
description: Vehicle or custom field not found
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CustomFieldValueUpdateRequest'
/v1/vehicles/{uuid}/subCompany:
post:
tags:
- Vehicles
summary: CREATE a vehicle's sub company
description: Creates a new sub company history entry for the specified vehicle. This will be validated and added to vehicle's sub company history.This sub company entry will end when the next one starts, or it will be indefinite, if last one chronological. The entry must not have the same startDate as an existing vehicle sub company history entry.
operationId: createVehicleSubCompany
parameters:
- name: uuid
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Successful operation.
content:
application/json:
schema:
$ref: '#/components/schemas/VehicleSubCompanyHistoryDto'
'400':
description: Bad request - information on the invalid fields will be provided in the response body
'404':
description: Vehicle not found.
'409':
description: The new sub company startDate conflicts with an existing sub company. The conflicting sub company will be returned in an error response.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/VehicleSubCompanyApiParams'
components:
schemas:
DateRangeDto:
type: object
properties:
startDate:
type: string
format: date
description: Inclusive start date.
endDate:
type: string
format: date
description: Exclusive end date.
VehicleDto:
type: object
properties:
uuid:
type: string
format: uuid
readOnly: true
activeLicensePlate:
type: string
readOnly: true
displayName:
type: string
readOnly: true
customName:
type: string
vin:
type: string
readOnly: true
commissionDate:
type: string
format: date
fuelTankSize:
type: number
fuelType:
type: string
enum:
- CNG
- DIESEL
- ELECTRIC
- GAS
- GASOLINE
- HYBRID_DIESEL
- HYBRID_DIESEL_CNG
- HYBRID_DIESEL_LNG
- HYBRID_DIESEL_LPG
- HYBRID_GASOLINE
- HYBRID_GASOLINE_CNG
- HYBRID_GASOLINE_LNG
- HYBRID_GASOLINE_LPG
- LPG
- LNG
- OTHER
transmissionType:
type: string
enum:
- AUTOMATIC
- MANUAL
costCenter:
type: string
readOnly: true
jobAccountNumber:
type: string
registrationDate:
type: string
format: date
readOnly: true
registrationCountry:
type: string
description: ISO 3166-1 Alpha-2 country code
emissionClass:
type: string
enum:
- EURO_0
- EURO_1
- EURO_2
- EURO_3
- EURO_4
- EURO_5
- EURO_5A
- EURO_5B
- EURO_6
- EURO_6A
- EURO_6B
- EURO_6C
- EURO_6C_EVAP
- EURO_6D_TEMP
- EURO_6D_TEMP_EVAP
- EURO_6D_TEMP_ISC
- EURO_6D_TEMP_EVAP_ISC
- EURO_6D_ISC
- EURO_6D_ISC_FCM
- EURO_6D
- EURO_6E
- EURO_6E_BIS
- EURO_6E_BIS_FCM
- EURO_I
- EURO_II
- EURO_III
- EURO_IV
- EURO_V
- EURO_VI
- D3
- D4
- E00
- E01
- E02
- E03
- E04
- E05
- E06
- D50
- D51
- D52
- D53
- D54
- F50
- F51
- F52
- F53
- F54
- B00
- B01
- B02
- B03
- B04
- B5A
- B5B
- B6A
- B6B
- B6C
- B6D
- B6E
- AX
- A00
- A01
- A02
- A03
- A04
- A05
- A06
- A07
- A08
- A09
- A10
- A11
- A12
- A13
- A14
- A15
- A16
- A17
- A18
- A19
- A20
- A21
- A22
- A23
- A24
- A25
- A26
- A27
- C00
- C01
- C02
- C03
- D00
- D01
- D02
- D03
- D04
- F00
- F01
- F02
- F03
- F04
- STUFE_I
- STUFE_II
- STUFE_III_A
- STUFE_III_B
- STUFE_IV
- STUFE_V
- TIER_I
- TIER_II
- TIER_III
- TIER_IV_INTERIM
- TIER_IV
- TIER_V
tareWeight:
type: integer
format: int32
loadCapacity:
type: integer
format: int32
maxWeight:
type: integer
format: int32
tensileLoad:
type: integer
format: int32
trailerLoad:
type: integer
format: int32
combinedFuelConsumptionPerKm:
type: number
urbanFuelConsumptionPerKm:
type: number
extraUrbanFuelConsumptionPerKm:
type: number
combinedElectricityConsumptionPerKm:
type: number
urbanElectricityConsumptionPerKm:
type: number
extraUrbanElectricityConsumptionPerKm:
type: number
internalId:
type: string
additionalId:
type: string
euLicenseNumber:
type: string
yearOfConstruction:
type: integer
format: int32
comment:
type: string
licensePlateColor:
type: string
enum:
- BLACK
- BLUE
- BROWN
- GREEN
- RED
- YELLOW
- WHITE
grossListPrice:
type: number
grossListPriceCurrency:
type: string
description: ISO 4217 alphabetic currency code
grossListPriceSource:
type: string
enum:
- DAT
- PROCUREMENT_OFFER
- MANUAL
state:
type: string
readOnly: true
enum:
- ACTIVE
- INACTIVE
- DECOMMISSIONED
- IN_PROCUREMENT
- ARCHIVED
co2Emission:
type: integer
format: int32
displacement:
type: integer
format: int32
kilowatt:
type: integer
format: int32
tax:
type: number
readOnly: true
taxCurrency:
type: string
description: ISO 4217 alphabetic currency code
readOnly: true
manufacturerName:
type: string
modelName:
type: string
readOnly: true
baseModelDisplayName:
type: string
description: 'DEPRECATED: use modelName instead (will be removed in next release)'
readOnly: true
importVehicleModel:
type: string
description: 'DEPRECATED: use modelName instead (will be removed in next release)'
readOnly: true
subCompany:
type: string
readOnly: true
vehicleColor:
type: string
interiorColor:
type: string
cushionColor:
type: string
vehicleAvailable:
type: boolean
tireStorageLocation:
type: string
atAkoGross:
$ref: '#/components/schemas/MonetaryAmountDto'
atAkoNet:
$ref: '#/components/schemas/MonetaryAmountDto'
atLuxuryTangent:
$ref: '#/components/schemas/MonetaryAmountDto'
atNova:
type: number
atVatExempt:
type: boolean
chMasterNumber:
type: string
vehicleType:
type: string
enum:
- BUILD_UP
- BUS
- CAR
- COST
- EXCAVATOR
- INDUSTRIAL_TRUCK
- SPECIAL
- TWO_WHEELER
- TRUCK
- TRACTOR
- TRAILER
- VAN
- SWAP_BODY
handoverDate:
type: string
format: date-time
readOnly: true
location:
type: string
customFieldValuesByCategory:
type: array
items:
$ref: '#/components/schemas/CustomFieldCategoryWithValuesDto'
organizationUuid:
type: string
format: uuid
FallbackSpecification:
type: object
properties:
manufacturerName:
type: string
model:
type: string
vehicleType:
type: string
enum:
- BUILD_UP
- BUS
- CAR
- COST
- EXCAVATOR
- INDUSTRIAL_TRUCK
- SPECIAL
- TWO_WHEELER
- TRUCK
- TRACTOR
- TRAILER
- VAN
- SWAP_BODY
VehicleSubCompanyApiParams:
type: object
properties:
subCompany:
type: string
startDate:
type: string
format: date
MonetaryAmountApiParams:
type: object
properties:
amount:
type: number
currency:
type: string
description: ISO 4217 alphabetic currency code
VehicleQueryApiParams:
type: object
properties:
uuid:
type: string
format: uuid
vin:
type: string
internalId:
type: string
displayName:
type: string
state:
type: string
enum:
- ACTIVE
- INACTIVE
- DECOMMISSIONED
- IN_PROCUREMENT
- ARCHIVED
activeLicensePlate:
type: string
chMasterNumber:
type: string
lastModified:
$ref: '#/components/schemas/InstantRangeApiParams'
assignedToPlate:
$ref: '#/components/schemas/LicensePlateQueryApiParams'
CustomFieldCategoryWithValuesDto:
type: object
properties:
uuid:
type: string
format: uuid
name:
type: string
position:
type: integer
format: int32
customFieldValues:
type: array
items:
$ref: '#/components/schemas/CustomFieldValueDto'
MinimalVehicleDto:
type: object
properties:
uuid:
type: string
format: uuid
vin:
type: string
internalId:
type: string
displayName:
type: string
state:
type: string
enum:
- ACTIVE
- INACTIVE
- DECOMMISSIONED
- IN_PROCUREMENT
- ARCHIVED
activeLicensePlate:
type: string
chMasterNumber:
type: string
lastModified:
type: string
format: date-time
VehicleSubCompanyHistoryDto:
type: object
properties:
uuid:
type: string
format: uuid
subCompany:
type: string
dateRange:
$ref: '#/components/schemas/DateRangeDto'
CostCenterApiParams:
type: object
properties:
startDate:
type: string
format: date
costCenter:
type: string
ApiPageInformation:
type: object
properties:
pageNumber:
type: integer
format: int32
limit:
type: integer
format: int32
VehicleCostCenterHistoryDto:
type: object
properties:
uuid:
type: string
format: uuid
costCenter:
type: string
dateRange:
$ref: '#/components/schemas/DateRangeDto'
MonetaryAmountDto:
type: object
properties:
amount:
type: number
currency:
type: string
description: ISO 4217 alphabetic currency code
CustomFieldValueUpdateRequest:
type: object
properties:
textValue:
type: string
dateValue:
type: string
format: date-time
booleanValue:
type: boolean
integerValue:
type: integer
format: int32
decimalValue:
type: number
monetaryAmountValue:
$ref: '#/components/schemas/MonetaryAmountApiParams'
exactlyOneValueSet:
type: boolean
CustomFieldValueDto:
type: object
properties:
uuid:
type: string
format: uuid
textValue:
type: string
dateValue:
type: string
format: date-time
booleanValue:
type: boolean
integerValue:
type: integer
format: int32
decimalValue:
type: number
monetaryAmountValue:
$ref: '#/components/schemas/MonetaryAmountDto'
ApiPageMinimalVehicleDto:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/MinimalVehicleDto'
page:
$ref: '#/components/schemas/ApiPageInformation'
totalItems:
type: integer
format: int64
ArchiveVehicleApiParams:
type: object
properties:
archiveDate:
type: string
format: date
VehicleUpdateApiParams:
type: object
properties:
customName:
type:
- string
- 'null'
description: Used to override the vehicle's display name, which is a generated property that otherwise defaults to the current license plate
commissionDate:
type:
- string
- 'null'
format: date
registrationDate:
type:
- string
- 'null'
format: date
organizationUuid:
type: string
format: uuid
fuelTankSize:
type:
- number
- 'null'
fuelType:
type:
- string
- 'null'
enum:
- CNG
- DIESEL
- ELECTRIC
- GAS
- GASOLINE
- HYBRID_DIESEL
- HYBRID_DIESEL_CNG
- HYBRID_DIESEL_LNG
- HYBRID_DIESEL_LPG
- HYBRID_GASOLINE
- HYBRID_GASOLINE_CNG
- HYBRID_GASOLINE_LNG
- HYBRID_GASOLINE_LPG
- LPG
- LNG
- OTHER
transmissionType:
type:
- string
- 'null'
enum:
- AUTOMATIC
- MANUAL
jobAccountNumber:
type:
- string
- 'null'
registrationCountry:
type: string
enum:
- ISO 3166-1 Alpha-2 country code
emissionClass:
type:
- string
- 'null'
enum:
- EURO_1
- EURO_2
- EURO_3
- EURO_4
- EURO_5
- EURO_5A
- EURO_5B
- EURO_6
- EURO_6B
- EURO_6C
- EURO_6D_TEMP
- EURO_6D
- EURO_I
- EURO_II
- EURO_III
- EURO_IV
- EURO_V
- EURO_VI
- D3
- D4
- E00
- E01
- E02
- E03
- E04
- E05
- E06
- D50
- D51
- D52
- D53
- D54
- F50
- F51
- F52
- F53
- F54
- B00
- B01
- B02
- B03
- B04
- B5A
- B5B
- B6A
- B6B
- B6C
- B6D
- A00
- A01
- A02
- A03
- A04
- A05
- A06
- A07
- A08
- A09
- A10
- A11
- A12
- A13
- A14
- A15
- A16
- A17
- A18
- A19
- A20
- A21
- A22
- A23
- A24
- A25
- A26
- A27
- C00
- C01
- C02
- C03
- D00
- D01
- D02
- D03
- D04
- F00
- F01
- F02
- F03
- F04
- STUFE_I
- STUFE_II
- STUFE_III_A
- STUFE_III_B
- STUFE_IV
- STUFE_V
- TIER_I
- TIER_II
- TIER_III
- TIER_IV_INTERIM
- TIER_IV
- TIER_V
tareWeight:
type:
- integer
- 'null'
format: int32
loadCapacity:
type:
- integer
- 'null'
format: int32
maxWeight:
type:
- integer
- 'null'
format: int32
tensileLoad:
type:
- integer
- 'null'
format: int32
trailerLoad:
type:
- integer
- 'null'
format: int32
combinedFuelConsumptionPerKm:
type:
- number
- 'null'
urbanFuelConsumptionPerKm:
type:
- number
- 'null'
extraUrbanFuelConsumptionPerKm:
type:
- number
- 'null'
combinedElectricityConsumptionPerKm:
type:
- number
- 'null'
urbanElectricityConsumptionPerKm:
type:
- number
- 'null'
extraUrbanElectricityConsumptionPerKm:
type:
- number
- 'null'
internalId:
type:
- string
- 'null'
additionalId:
type:
- string
- 'null'
euLicenseNumber:
type:
- string
- 'null'
yearOfConstruction:
type:
- integer
- 'null'
format: int32
comment:
type:
- string
- 'null'
licensePlateColor:
type:
- string
- 'null'
enum:
- BLACK
- BLUE
- BROWN
- GREEN
- RED
- YELLOW
- WHITE
grossListPrice:
type:
- number
- 'null'
grossListPriceCurrency:
type:
- string
- 'null'
enum:
- ISO 4217 alphabetic currency code
grossListPriceSource:
type:
- string
- 'null'
enum:
- DAT
- MANUAL
co2Emission:
type:
- integer
- 'null'
format: int32
displacement:
type:
- integer
- 'null'
format: int32
kilowatt:
type:
- integer
- 'null'
format: int32
manufacturerName:
type:
- string
- 'null'
vehicleColor:
type:
- string
- 'null'
interiorColor:
type:
- string
- 'null'
cushionColor:
type:
- string
- 'null'
vehicleAvailable:
type: boolean
tireStorageLocation:
type:
- string
- 'null'
atAkoGross:
$ref: '#/components/schemas/MonetaryAmountDto'
atAkoNet:
$ref: '#/components/schemas/MonetaryAmountDto'
atLuxuryTangent:
$ref: '#/components/schemas/MonetaryAmountDto'
atNova:
type:
- number
- 'null'
atVatExempt:
type: boolean
chMasterNumber:
type:
- string
- 'null'
vehicleType:
type: string
enum:
- BUILD_UP
- BUS
- CAR
- COST
- EXCAVATOR
- INDUSTRIAL_TRUCK
- SPECIAL
- TWO_WHEELER
- TRUCK
- TRACTOR
- TRAILER
- VAN
location:
type:
- string
- 'null'
VehicleCreationApiParams:
type: object
properties:
activeLicensePlate:
type: string
customName:
type: string
description: Used to override the vehicle's displayName, which is a generated property that otherwise defaults to the current license plate.
vin:
type: string
organizationUuid:
type: string
format: uuid
description: If not provided the organization will be set to that of the API token
commissionDate:
type: string
format: date
costCenter:
type: string
jobAccountNumber:
type: string
registrationDate:
type: string
format: date
registrationCountry:
type: string
description: ISO 3166-1 Alpha-2 country code
fallbackSpecification:
description: This will be used if no vehicle description can be sourced for the given VIN
$ref: '#/components/schemas/FallbackSpecification'
tensileLoad:
type: int
# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/shiftmove/refs/heads/main/openapi/shiftmove-vehicles-api-openapi.yml