Find available transports
curl --request POST \
--url https://api.sparkserv.com/public/v1/transports/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Dealership-Id: <dealership-id>' \
--data '
{
"vehicle": {
"vin": "1HGCM82633A004352",
"year": 2024,
"make": "Honda",
"model": "Civic",
"trim": "<string>",
"mileage": 1
},
"serviceIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"departmentId": "<string>",
"startDate": "2023-12-25",
"endDate": "2023-12-25"
}
'import requests
url = "https://api.sparkserv.com/public/v1/transports/search"
payload = {
"vehicle": {
"vin": "1HGCM82633A004352",
"year": 2024,
"make": "Honda",
"model": "Civic",
"trim": "<string>",
"mileage": 1
},
"serviceIds": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"departmentId": "<string>",
"startDate": "2023-12-25",
"endDate": "2023-12-25"
}
headers = {
"Dealership-Id": "<dealership-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Dealership-Id': '<dealership-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
vehicle: {
vin: '1HGCM82633A004352',
year: 2024,
make: 'Honda',
model: 'Civic',
trim: '<string>',
mileage: 1
},
serviceIds: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
departmentId: '<string>',
startDate: '2023-12-25',
endDate: '2023-12-25'
})
};
fetch('https://api.sparkserv.com/public/v1/transports/search', 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.sparkserv.com/public/v1/transports/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'vehicle' => [
'vin' => '1HGCM82633A004352',
'year' => 2024,
'make' => 'Honda',
'model' => 'Civic',
'trim' => '<string>',
'mileage' => 1
],
'serviceIds' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'departmentId' => '<string>',
'startDate' => '2023-12-25',
'endDate' => '2023-12-25'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Dealership-Id: <dealership-id>"
],
]);
$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.sparkserv.com/public/v1/transports/search"
payload := strings.NewReader("{\n \"vehicle\": {\n \"vin\": \"1HGCM82633A004352\",\n \"year\": 2024,\n \"make\": \"Honda\",\n \"model\": \"Civic\",\n \"trim\": \"<string>\",\n \"mileage\": 1\n },\n \"serviceIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"departmentId\": \"<string>\",\n \"startDate\": \"2023-12-25\",\n \"endDate\": \"2023-12-25\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Dealership-Id", "<dealership-id>")
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.post("https://api.sparkserv.com/public/v1/transports/search")
.header("Dealership-Id", "<dealership-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"vehicle\": {\n \"vin\": \"1HGCM82633A004352\",\n \"year\": 2024,\n \"make\": \"Honda\",\n \"model\": \"Civic\",\n \"trim\": \"<string>\",\n \"mileage\": 1\n },\n \"serviceIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"departmentId\": \"<string>\",\n \"startDate\": \"2023-12-25\",\n \"endDate\": \"2023-12-25\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sparkserv.com/public/v1/transports/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Dealership-Id"] = '<dealership-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"vehicle\": {\n \"vin\": \"1HGCM82633A004352\",\n \"year\": 2024,\n \"make\": \"Honda\",\n \"model\": \"Civic\",\n \"trim\": \"<string>\",\n \"mileage\": 1\n },\n \"serviceIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"departmentId\": \"<string>\",\n \"startDate\": \"2023-12-25\",\n \"endDate\": \"2023-12-25\"\n}"
response = http.request(request)
puts response.read_body{
"department": {
"id": "<string>",
"name": "<string>",
"isDefault": true
},
"items": [
{
"id": "<string>",
"name": "<string>"
}
]
}{
"statusCode": 400,
"code": "INVALID_INPUT",
"message": "Request validation failed"
}{
"statusCode": 401,
"code": "UNAUTHORIZED",
"message": "The request could not be completed"
}{
"statusCode": 403,
"code": "FORBIDDEN",
"message": "The request could not be completed"
}{
"statusCode": 404,
"code": "NOT_FOUND",
"message": "Resource not found"
}{
"statusCode": 409,
"code": "SCHEDULER_CONFIGURATION",
"message": "Exactly one scheduling integration is required"
}{
"statusCode": 422,
"code": "SCHEDULER_UNSUPPORTED",
"message": "This scheduler is not supported by this API"
}{
"statusCode": 500,
"code": "REQUEST_FAILED",
"message": "The request could not be completed"
}{
"statusCode": 502,
"code": "SCHEDULER_UNAVAILABLE",
"message": "The scheduler could not complete the request"
}Scheduling
Find available transports
POST
/
transports
/
search
Find available transports
curl --request POST \
--url https://api.sparkserv.com/public/v1/transports/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Dealership-Id: <dealership-id>' \
--data '
{
"vehicle": {
"vin": "1HGCM82633A004352",
"year": 2024,
"make": "Honda",
"model": "Civic",
"trim": "<string>",
"mileage": 1
},
"serviceIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"departmentId": "<string>",
"startDate": "2023-12-25",
"endDate": "2023-12-25"
}
'import requests
url = "https://api.sparkserv.com/public/v1/transports/search"
payload = {
"vehicle": {
"vin": "1HGCM82633A004352",
"year": 2024,
"make": "Honda",
"model": "Civic",
"trim": "<string>",
"mileage": 1
},
"serviceIds": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"departmentId": "<string>",
"startDate": "2023-12-25",
"endDate": "2023-12-25"
}
headers = {
"Dealership-Id": "<dealership-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Dealership-Id': '<dealership-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
vehicle: {
vin: '1HGCM82633A004352',
year: 2024,
make: 'Honda',
model: 'Civic',
trim: '<string>',
mileage: 1
},
serviceIds: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
departmentId: '<string>',
startDate: '2023-12-25',
endDate: '2023-12-25'
})
};
fetch('https://api.sparkserv.com/public/v1/transports/search', 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.sparkserv.com/public/v1/transports/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'vehicle' => [
'vin' => '1HGCM82633A004352',
'year' => 2024,
'make' => 'Honda',
'model' => 'Civic',
'trim' => '<string>',
'mileage' => 1
],
'serviceIds' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'departmentId' => '<string>',
'startDate' => '2023-12-25',
'endDate' => '2023-12-25'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Dealership-Id: <dealership-id>"
],
]);
$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.sparkserv.com/public/v1/transports/search"
payload := strings.NewReader("{\n \"vehicle\": {\n \"vin\": \"1HGCM82633A004352\",\n \"year\": 2024,\n \"make\": \"Honda\",\n \"model\": \"Civic\",\n \"trim\": \"<string>\",\n \"mileage\": 1\n },\n \"serviceIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"departmentId\": \"<string>\",\n \"startDate\": \"2023-12-25\",\n \"endDate\": \"2023-12-25\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Dealership-Id", "<dealership-id>")
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.post("https://api.sparkserv.com/public/v1/transports/search")
.header("Dealership-Id", "<dealership-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"vehicle\": {\n \"vin\": \"1HGCM82633A004352\",\n \"year\": 2024,\n \"make\": \"Honda\",\n \"model\": \"Civic\",\n \"trim\": \"<string>\",\n \"mileage\": 1\n },\n \"serviceIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"departmentId\": \"<string>\",\n \"startDate\": \"2023-12-25\",\n \"endDate\": \"2023-12-25\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sparkserv.com/public/v1/transports/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Dealership-Id"] = '<dealership-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"vehicle\": {\n \"vin\": \"1HGCM82633A004352\",\n \"year\": 2024,\n \"make\": \"Honda\",\n \"model\": \"Civic\",\n \"trim\": \"<string>\",\n \"mileage\": 1\n },\n \"serviceIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"departmentId\": \"<string>\",\n \"startDate\": \"2023-12-25\",\n \"endDate\": \"2023-12-25\"\n}"
response = http.request(request)
puts response.read_body{
"department": {
"id": "<string>",
"name": "<string>",
"isDefault": true
},
"items": [
{
"id": "<string>",
"name": "<string>"
}
]
}{
"statusCode": 400,
"code": "INVALID_INPUT",
"message": "Request validation failed"
}{
"statusCode": 401,
"code": "UNAUTHORIZED",
"message": "The request could not be completed"
}{
"statusCode": 403,
"code": "FORBIDDEN",
"message": "The request could not be completed"
}{
"statusCode": 404,
"code": "NOT_FOUND",
"message": "Resource not found"
}{
"statusCode": 409,
"code": "SCHEDULER_CONFIGURATION",
"message": "Exactly one scheduling integration is required"
}{
"statusCode": 422,
"code": "SCHEDULER_UNSUPPORTED",
"message": "This scheduler is not supported by this API"
}{
"statusCode": 500,
"code": "REQUEST_FAILED",
"message": "The request could not be completed"
}{
"statusCode": 502,
"code": "SCHEDULER_UNAVAILABLE",
"message": "The scheduler could not complete the request"
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Headers
Body
application/json
Identify the vehicle by VIN or by year, make and model. VIN may be enriched with partial details.
Show child attributes
Show child attributes
Spark service UUIDs from service discovery
Minimum array length:
1An opaque department ID from department discovery
Required during discovery only when the scheduler needs customer identity
Show child attributes
Show child attributes
First inclusive dealership-local date; defaults to today
Last inclusive dealership-local date; at most seven dates per request

