curl --request POST \
--url https://api.sparkserv.com/public/v1/appointments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Dealership-Id: <dealership-id>' \
--data '
{
"vehicle": {
"year": 2024,
"make": "Honda",
"model": "Civic",
"color": "Silver"
},
"customer": {
"firstName": "Jane",
"lastName": "Doe",
"phoneNumber": "2125550101"
},
"services": [
{
"id": "f6eeb938-cabe-4a4d-a38d-a47583e074e5"
}
],
"appointmentAt": "2026-11-02T09:00:00-05:00",
"advisorId": "any",
"transportId": "drop"
}
'{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"dealership": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"status": "Pending",
"appointmentAt": "2023-11-07T05:31:56Z",
"timezone": "<string>",
"customer": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"firstName": "<string>",
"lastName": "<string>",
"phoneNumber": "<string>",
"email": "<string>"
},
"vehicle": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"year": 123,
"make": "<string>",
"model": "<string>",
"vin": "<string>",
"mileage": 123
},
"department": {
"id": "<string>",
"name": "<string>"
},
"advisor": {
"id": "<string>",
"name": "<string>"
},
"transport": {
"id": "<string>",
"name": "<string>"
},
"comments": "<string>",
"services": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"comments": "<string>"
}
]
}Book an appointment
Requires appointments:create. No durable idempotency guarantee; do not blindly retry unknown outcomes.
curl --request POST \
--url https://api.sparkserv.com/public/v1/appointments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Dealership-Id: <dealership-id>' \
--data '
{
"vehicle": {
"year": 2024,
"make": "Honda",
"model": "Civic",
"color": "Silver"
},
"customer": {
"firstName": "Jane",
"lastName": "Doe",
"phoneNumber": "2125550101"
},
"services": [
{
"id": "f6eeb938-cabe-4a4d-a38d-a47583e074e5"
}
],
"appointmentAt": "2026-11-02T09:00:00-05:00",
"advisorId": "any",
"transportId": "drop"
}
'{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"dealership": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"status": "Pending",
"appointmentAt": "2023-11-07T05:31:56Z",
"timezone": "<string>",
"customer": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"firstName": "<string>",
"lastName": "<string>",
"phoneNumber": "<string>",
"email": "<string>"
},
"vehicle": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"year": 123,
"make": "<string>",
"model": "<string>",
"vin": "<string>",
"mileage": 123
},
"department": {
"id": "<string>",
"name": "<string>"
},
"advisor": {
"id": "<string>",
"name": "<string>"
},
"transport": {
"id": "<string>",
"name": "<string>"
},
"comments": "<string>",
"services": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"comments": "<string>"
}
]
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Headers
Body
Unique Spark service selections with optional write-only comments
1Show child attributes
Show child attributes
Chosen appointment instant; must include Z or an explicit offset
"2026-11-02T09:00:00-05:00"
An opaque department ID from department discovery
Required during discovery only when the scheduler needs customer identity
Show child attributes
Show child attributes
Supply vehicle details or select a saved vehicle
Show child attributes
Show child attributes
Advisor ID returned by discovery, or any
Transport ID returned by discovery
Appointment-level public comments
Response
Show child attributes
Show child attributes
Pending, Canceled, Showed, Missed, Duplicate, Completed, Sold Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes

