curl --request PATCH \
--url https://api.example.com/api/v1/ops/vehicles/{vehicleId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"licensePlate": "ABC1D23",
"registrationNumber": "RN-123456",
"model": "Sprinter",
"manufacturer": "Mercedes-Benz",
"year": 2024,
"type": "VAN",
"serviceType": "INTERCITY",
"features": [
"WIFI",
"USB"
],
"floorCount": "FIRST",
"seatTypes": [
{
"name": "Executive",
"color": "#3B82F6",
"price": 5000,
"seats": [
{
"label": "01",
"floor": "FIRST",
"row": 1,
"column": "A",
"side": "LEFT",
"status": "AVAILABLE"
}
]
}
]
}
'import requests
url = "https://api.example.com/api/v1/ops/vehicles/{vehicleId}"
payload = {
"licensePlate": "ABC1D23",
"registrationNumber": "RN-123456",
"model": "Sprinter",
"manufacturer": "Mercedes-Benz",
"year": 2024,
"type": "VAN",
"serviceType": "INTERCITY",
"features": ["WIFI", "USB"],
"floorCount": "FIRST",
"seatTypes": [
{
"name": "Executive",
"color": "#3B82F6",
"price": 5000,
"seats": [
{
"label": "01",
"floor": "FIRST",
"row": 1,
"column": "A",
"side": "LEFT",
"status": "AVAILABLE"
}
]
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
licensePlate: 'ABC1D23',
registrationNumber: 'RN-123456',
model: 'Sprinter',
manufacturer: 'Mercedes-Benz',
year: 2024,
type: 'VAN',
serviceType: 'INTERCITY',
features: ['WIFI', 'USB'],
floorCount: 'FIRST',
seatTypes: [
{
name: 'Executive',
color: '#3B82F6',
price: 5000,
seats: [
{
label: '01',
floor: 'FIRST',
row: 1,
column: 'A',
side: 'LEFT',
status: 'AVAILABLE'
}
]
}
]
})
};
fetch('https://api.example.com/api/v1/ops/vehicles/{vehicleId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/ops/vehicles/{vehicleId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'licensePlate' => 'ABC1D23',
'registrationNumber' => 'RN-123456',
'model' => 'Sprinter',
'manufacturer' => 'Mercedes-Benz',
'year' => 2024,
'type' => 'VAN',
'serviceType' => 'INTERCITY',
'features' => [
'WIFI',
'USB'
],
'floorCount' => 'FIRST',
'seatTypes' => [
[
'name' => 'Executive',
'color' => '#3B82F6',
'price' => 5000,
'seats' => [
[
'label' => '01',
'floor' => 'FIRST',
'row' => 1,
'column' => 'A',
'side' => 'LEFT',
'status' => 'AVAILABLE'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/ops/vehicles/{vehicleId}"
payload := strings.NewReader("{\n \"licensePlate\": \"ABC1D23\",\n \"registrationNumber\": \"RN-123456\",\n \"model\": \"Sprinter\",\n \"manufacturer\": \"Mercedes-Benz\",\n \"year\": 2024,\n \"type\": \"VAN\",\n \"serviceType\": \"INTERCITY\",\n \"features\": [\n \"WIFI\",\n \"USB\"\n ],\n \"floorCount\": \"FIRST\",\n \"seatTypes\": [\n {\n \"name\": \"Executive\",\n \"color\": \"#3B82F6\",\n \"price\": 5000,\n \"seats\": [\n {\n \"label\": \"01\",\n \"floor\": \"FIRST\",\n \"row\": 1,\n \"column\": \"A\",\n \"side\": \"LEFT\",\n \"status\": \"AVAILABLE\"\n }\n ]\n }\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.example.com/api/v1/ops/vehicles/{vehicleId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"licensePlate\": \"ABC1D23\",\n \"registrationNumber\": \"RN-123456\",\n \"model\": \"Sprinter\",\n \"manufacturer\": \"Mercedes-Benz\",\n \"year\": 2024,\n \"type\": \"VAN\",\n \"serviceType\": \"INTERCITY\",\n \"features\": [\n \"WIFI\",\n \"USB\"\n ],\n \"floorCount\": \"FIRST\",\n \"seatTypes\": [\n {\n \"name\": \"Executive\",\n \"color\": \"#3B82F6\",\n \"price\": 5000,\n \"seats\": [\n {\n \"label\": \"01\",\n \"floor\": \"FIRST\",\n \"row\": 1,\n \"column\": \"A\",\n \"side\": \"LEFT\",\n \"status\": \"AVAILABLE\"\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/ops/vehicles/{vehicleId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"licensePlate\": \"ABC1D23\",\n \"registrationNumber\": \"RN-123456\",\n \"model\": \"Sprinter\",\n \"manufacturer\": \"Mercedes-Benz\",\n \"year\": 2024,\n \"type\": \"VAN\",\n \"serviceType\": \"INTERCITY\",\n \"features\": [\n \"WIFI\",\n \"USB\"\n ],\n \"floorCount\": \"FIRST\",\n \"seatTypes\": [\n {\n \"name\": \"Executive\",\n \"color\": \"#3B82F6\",\n \"price\": 5000,\n \"seats\": [\n {\n \"label\": \"01\",\n \"floor\": \"FIRST\",\n \"row\": 1,\n \"column\": \"A\",\n \"side\": \"LEFT\",\n \"status\": \"AVAILABLE\"\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"vehicleId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"cooperativeId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"licensePlate": "ABC1D23",
"model": "Sprinter",
"type": "VAN",
"features": [
"WIFI",
"USB"
],
"floorCount": "FIRST",
"status": "ACTIVE",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"seatTypes": [
{
"seatTypeId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"vehicleId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"name": "Executive",
"color": "#3B82F6",
"price": 5000,
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}
],
"seats": [
{
"seatId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"vehicleId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"seatTypeId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"label": "01",
"floor": "FIRST",
"row": 1,
"column": "A",
"side": "LEFT",
"status": "AVAILABLE",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"seatType": {
"seatTypeId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"vehicleId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"name": "Executive",
"color": "#3B82F6",
"price": 5000,
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}
}
],
"registrationNumber": "RN-123456",
"manufacturer": "Mercedes-Benz",
"year": 2024,
"serviceType": "INTERCITY",
"createdBy": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3e",
"updatedBy": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3e",
"deletedBy": null
}{
"errors": [
{
"message": "required",
"path": "name"
}
],
"message": "Bad Request Error",
"statusCode": 400
}{
"message": "Missing or invalid access token",
"statusCode": 401
}{
"message": "Insufficient permissions",
"statusCode": 403
}{
"message": "Internal Server Error",
"statusCode": 500
}Update Vehicle
Updates a vehicle.
curl --request PATCH \
--url https://api.example.com/api/v1/ops/vehicles/{vehicleId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"licensePlate": "ABC1D23",
"registrationNumber": "RN-123456",
"model": "Sprinter",
"manufacturer": "Mercedes-Benz",
"year": 2024,
"type": "VAN",
"serviceType": "INTERCITY",
"features": [
"WIFI",
"USB"
],
"floorCount": "FIRST",
"seatTypes": [
{
"name": "Executive",
"color": "#3B82F6",
"price": 5000,
"seats": [
{
"label": "01",
"floor": "FIRST",
"row": 1,
"column": "A",
"side": "LEFT",
"status": "AVAILABLE"
}
]
}
]
}
'import requests
url = "https://api.example.com/api/v1/ops/vehicles/{vehicleId}"
payload = {
"licensePlate": "ABC1D23",
"registrationNumber": "RN-123456",
"model": "Sprinter",
"manufacturer": "Mercedes-Benz",
"year": 2024,
"type": "VAN",
"serviceType": "INTERCITY",
"features": ["WIFI", "USB"],
"floorCount": "FIRST",
"seatTypes": [
{
"name": "Executive",
"color": "#3B82F6",
"price": 5000,
"seats": [
{
"label": "01",
"floor": "FIRST",
"row": 1,
"column": "A",
"side": "LEFT",
"status": "AVAILABLE"
}
]
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
licensePlate: 'ABC1D23',
registrationNumber: 'RN-123456',
model: 'Sprinter',
manufacturer: 'Mercedes-Benz',
year: 2024,
type: 'VAN',
serviceType: 'INTERCITY',
features: ['WIFI', 'USB'],
floorCount: 'FIRST',
seatTypes: [
{
name: 'Executive',
color: '#3B82F6',
price: 5000,
seats: [
{
label: '01',
floor: 'FIRST',
row: 1,
column: 'A',
side: 'LEFT',
status: 'AVAILABLE'
}
]
}
]
})
};
fetch('https://api.example.com/api/v1/ops/vehicles/{vehicleId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/ops/vehicles/{vehicleId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'licensePlate' => 'ABC1D23',
'registrationNumber' => 'RN-123456',
'model' => 'Sprinter',
'manufacturer' => 'Mercedes-Benz',
'year' => 2024,
'type' => 'VAN',
'serviceType' => 'INTERCITY',
'features' => [
'WIFI',
'USB'
],
'floorCount' => 'FIRST',
'seatTypes' => [
[
'name' => 'Executive',
'color' => '#3B82F6',
'price' => 5000,
'seats' => [
[
'label' => '01',
'floor' => 'FIRST',
'row' => 1,
'column' => 'A',
'side' => 'LEFT',
'status' => 'AVAILABLE'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/ops/vehicles/{vehicleId}"
payload := strings.NewReader("{\n \"licensePlate\": \"ABC1D23\",\n \"registrationNumber\": \"RN-123456\",\n \"model\": \"Sprinter\",\n \"manufacturer\": \"Mercedes-Benz\",\n \"year\": 2024,\n \"type\": \"VAN\",\n \"serviceType\": \"INTERCITY\",\n \"features\": [\n \"WIFI\",\n \"USB\"\n ],\n \"floorCount\": \"FIRST\",\n \"seatTypes\": [\n {\n \"name\": \"Executive\",\n \"color\": \"#3B82F6\",\n \"price\": 5000,\n \"seats\": [\n {\n \"label\": \"01\",\n \"floor\": \"FIRST\",\n \"row\": 1,\n \"column\": \"A\",\n \"side\": \"LEFT\",\n \"status\": \"AVAILABLE\"\n }\n ]\n }\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.example.com/api/v1/ops/vehicles/{vehicleId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"licensePlate\": \"ABC1D23\",\n \"registrationNumber\": \"RN-123456\",\n \"model\": \"Sprinter\",\n \"manufacturer\": \"Mercedes-Benz\",\n \"year\": 2024,\n \"type\": \"VAN\",\n \"serviceType\": \"INTERCITY\",\n \"features\": [\n \"WIFI\",\n \"USB\"\n ],\n \"floorCount\": \"FIRST\",\n \"seatTypes\": [\n {\n \"name\": \"Executive\",\n \"color\": \"#3B82F6\",\n \"price\": 5000,\n \"seats\": [\n {\n \"label\": \"01\",\n \"floor\": \"FIRST\",\n \"row\": 1,\n \"column\": \"A\",\n \"side\": \"LEFT\",\n \"status\": \"AVAILABLE\"\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/ops/vehicles/{vehicleId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"licensePlate\": \"ABC1D23\",\n \"registrationNumber\": \"RN-123456\",\n \"model\": \"Sprinter\",\n \"manufacturer\": \"Mercedes-Benz\",\n \"year\": 2024,\n \"type\": \"VAN\",\n \"serviceType\": \"INTERCITY\",\n \"features\": [\n \"WIFI\",\n \"USB\"\n ],\n \"floorCount\": \"FIRST\",\n \"seatTypes\": [\n {\n \"name\": \"Executive\",\n \"color\": \"#3B82F6\",\n \"price\": 5000,\n \"seats\": [\n {\n \"label\": \"01\",\n \"floor\": \"FIRST\",\n \"row\": 1,\n \"column\": \"A\",\n \"side\": \"LEFT\",\n \"status\": \"AVAILABLE\"\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"vehicleId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"cooperativeId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"licensePlate": "ABC1D23",
"model": "Sprinter",
"type": "VAN",
"features": [
"WIFI",
"USB"
],
"floorCount": "FIRST",
"status": "ACTIVE",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"seatTypes": [
{
"seatTypeId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"vehicleId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"name": "Executive",
"color": "#3B82F6",
"price": 5000,
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}
],
"seats": [
{
"seatId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"vehicleId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"seatTypeId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"label": "01",
"floor": "FIRST",
"row": 1,
"column": "A",
"side": "LEFT",
"status": "AVAILABLE",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"seatType": {
"seatTypeId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"vehicleId": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a",
"name": "Executive",
"color": "#3B82F6",
"price": 5000,
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}
}
],
"registrationNumber": "RN-123456",
"manufacturer": "Mercedes-Benz",
"year": 2024,
"serviceType": "INTERCITY",
"createdBy": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3e",
"updatedBy": "0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3e",
"deletedBy": null
}{
"errors": [
{
"message": "required",
"path": "name"
}
],
"message": "Bad Request Error",
"statusCode": 400
}{
"message": "Missing or invalid access token",
"statusCode": 401
}{
"message": "Insufficient permissions",
"statusCode": 403
}{
"message": "Internal Server Error",
"statusCode": 500
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Vehicle identifier
"0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a"
Query Parameters
Comma-separated list of fields to include in the response. Supports dot notation for nested projection (e.g. id,name,user.email,trips.route.id). Unknown fields are silently dropped.
Body
Update vehicle payload
License plate
"ABC1D23"
Registration number
"RN-123456"
Vehicle model
"Sprinter"
Manufacturer
"Mercedes-Benz"
Manufacturing year
2024
Vehicle type
VAN "VAN"
Service type
"INTERCITY"
Vehicle features
["WIFI", "USB"]
Floor count
FIRST, SECOND "FIRST"
Replaces the full seat catalog
1Show child attributes
Show child attributes
Response
OK
Vehicle
Vehicle identifier
"0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a"
Cooperative identifier
"0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a"
License plate
"ABC1D23"
Vehicle model
"Sprinter"
Vehicle type
VAN "VAN"
Vehicle features
["WIFI", "USB"]
Floor count
FIRST, SECOND "FIRST"
Vehicle status
ACTIVE, INACTIVE, BLOCKED "ACTIVE"
Created at
"2026-01-01T00:00:00.000Z"
Updated at
"2026-01-01T00:00:00.000Z"
Seat types
Show child attributes
Show child attributes
Seats
Show child attributes
Show child attributes
Registration number
"RN-123456"
Manufacturer
"Mercedes-Benz"
Manufacturing year
2024
Service type
"INTERCITY"
Created by
"0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3e"
Updated by
"0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3e"
Deleted by
null