Create a DMS service booking
POST
/api/v1/dealerships/{dealership_id}/service_booking/bookings
const url = 'https://dashboard.dealerstudio.com.au/api/v1/dealerships/1/service_booking/bookings';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"workshop_id":7,"odometer":42000,"booking_date":"2026-10-01","starts_at":"2026-10-01T09:00:00","ends_at":"2026-10-01T10:00:00","customer_comment":"example","advisor_id":1,"booking_source_code":"DealerStudio","third_party_id":"example","notes":["example"],"customer":{"first_name":"Jane","last_name":"Citizen","email":"jane@example.com","mobile":"0412345678","phone":"example"},"vehicle":{"vin":"JTDBR32E720012345","registration_number":"TESTED","make_id":1,"make":"Toyota","model":"Camry","year":2020,"provider_vehicle_key":"example"},"services":[{"code":"SERV15","name":"15,000km Service","duration_hours":1,"price":1,"codebook_source_code":"example","operation_type":"schedule"}]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://dashboard.dealerstudio.com.au/api/v1/dealerships/1/service_booking/bookings \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "workshop_id": 7, "odometer": 42000, "booking_date": "2026-10-01", "starts_at": "2026-10-01T09:00:00", "ends_at": "2026-10-01T10:00:00", "customer_comment": "example", "advisor_id": 1, "booking_source_code": "DealerStudio", "third_party_id": "example", "notes": [ "example" ], "customer": { "first_name": "Jane", "last_name": "Citizen", "email": "jane@example.com", "mobile": "0412345678", "phone": "example" }, "vehicle": { "vin": "JTDBR32E720012345", "registration_number": "TESTED", "make_id": 1, "make": "Toyota", "model": "Camry", "year": 2020, "provider_vehicle_key": "example" }, "services": [ { "code": "SERV15", "name": "15,000km Service", "duration_hours": 1, "price": 1, "codebook_source_code": "example", "operation_type": "schedule" } ] }'Creates a booking in the dealership DMS and persists a Dealer Studio dms_service_bookings record with the provider reference. For Titan, pass advisor_id from the selected availability slot (Titan requires ServiceAdvisorId). When omitted, Dealer Studio re-resolves the matching slot; if none is found the API returns validation_error. Requires dms_service_booking:dealership.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”dealership_id
required
integer
Dealership ID
Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
workshop_id
required
integer
Example
7odometer
integer
Example
42000booking_date
required
string
Example
2026-10-01starts_at
required
string
Example
2026-10-01T09:00:00ends_at
required
string
Example
2026-10-01T10:00:00customer_comment
string
advisor_id
Required for Titan. Copy from the selected /availability slot. Ignored by TUNE.
integer
booking_source_code
string
Example
DealerStudiothird_party_id
string
notes
Array<string>
customer
required
object
first_name
required
string
Example
Janelast_name
required
string
Example
Citizenemail
string
Example
jane@example.commobile
required
string
Example
0412345678phone
string
vehicle
required
object
vin
string
Example
JTDBR32E720012345registration_number
required
string
Example
TESTEDmake_id
integer
make
string
Example
Toyotamodel
string
Example
Camryyear
integer
Example
2020provider_vehicle_key
string
services
required
Array<object>
object
code
required
string
Example
SERV15name
string
Example
15,000km Serviceduration_hours
number
price
number
codebook_source_code
string
operation_type
string
Example
scheduleResponses
Section titled “Responses”Booking created
Media typeapplication/json
object
id
required
integer
provider
required
string
provider_reference
required
string
status
required
string
appointment_starts_at
string format: date-time
appointment_ends_at
string format: date-time
capabilities
object
provider
required
string
service_options
required
boolean
live_availability
required
boolean
direct_confirmation
required
boolean
rescheduling
required
boolean
cancellation
required
boolean
separate_collection_times
required
boolean
Example
{ "id": 1, "provider": "titan", "provider_reference": "RO-999", "status": "confirmed", "capabilities": { "provider": "titan", "service_options": true, "live_availability": true, "direct_confirmation": true, "rescheduling": false, "cancellation": false, "separate_collection_times": false }}