Get signal
curl --request GET \
--url https://vehicle.api.smartcar.com/v3/vehicles/{vehicleId}/signals/{signalCode} \
--header 'Authorization: Bearer <token>' \
--header 'sc-user-id: <sc-user-id>'import requests
url = "https://vehicle.api.smartcar.com/v3/vehicles/{vehicleId}/signals/{signalCode}"
headers = {
"sc-user-id": "<sc-user-id>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'sc-user-id': '<sc-user-id>', Authorization: 'Bearer <token>'}
};
fetch('https://vehicle.api.smartcar.com/v3/vehicles/{vehicleId}/signals/{signalCode}', 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://vehicle.api.smartcar.com/v3/vehicles/{vehicleId}/signals/{signalCode}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"sc-user-id: <sc-user-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"
"net/http"
"io"
)
func main() {
url := "https://vehicle.api.smartcar.com/v3/vehicles/{vehicleId}/signals/{signalCode}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("sc-user-id", "<sc-user-id>")
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://vehicle.api.smartcar.com/v3/vehicles/{vehicleId}/signals/{signalCode}")
.header("sc-user-id", "<sc-user-id>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://vehicle.api.smartcar.com/v3/vehicles/{vehicleId}/signals/{signalCode}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["sc-user-id"] = '<sc-user-id>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"id": "charge-voltage",
"type": "signal",
"attributes": {
"code": "charge-voltage",
"name": "Voltage",
"group": "Charge",
"status": {
"value": "SUCCESS"
},
"body": {
"unit": "volts",
"value": 85
}
},
"meta": {
"retrievedAt": "2023-10-01T20:00:00Z",
"oemUpdatedAt": "2023-10-01T19:59:59Z",
"ingestedAt": "2023-10-01T20:01:00Z"
},
"links": {
"self": "/vehicles/vehicle123/signals/charge-voltage"
}
},
"included": {
"vehicle": {
"id": "vehicle123",
"type": "vehicle",
"attributes": {
"make": "Toyota",
"model": "Camry",
"year": 2020,
"powertrainType": "ICE",
"mode": "live"
},
"links": {
"self": "/vehicles/vehicle123"
}
}
}
}{
"errors": [
{
"status": "400",
"type": "VALIDATION",
"code": "BAD_REQUEST",
"title": "Bad Request",
"detail": "The request could not be understood by the server due to malformed syntax.",
"links": {
"about": "https://smartcar.com/docs/errors/api-errors/v3/validation-errors"
}
}
]
}{
"errors": [
{
"status": "401",
"type": "AUTHENTICATION",
"code": "UNAUTHORIZED",
"title": "Unauthorized",
"detail": "The Authorization token is missing or invalid.",
"links": {
"about": "https://smartcar.com/docs/errors/api-errors/v3/authentication-errors#authentication"
}
}
]
}{
"errors": [
{
"status": "403",
"type": "AUTHENTICATION",
"code": "FORBIDDEN",
"title": "Forbidden",
"detail": "You do not have permission to access this resource.",
"links": {
"about": "https://smartcar.com/docs/errors/api-errors/v3/authentication-errors"
}
}
]
}{
"errors": [
{
"status": "404",
"type": "RESOURCE_NOT_FOUND",
"code": "NOT_FOUND",
"title": "Not Found",
"detail": "The requested resource could not be found.",
"links": {
"about": "https://smartcar.com/docs/errors/api-errors/v3/resource-not-found-errors"
}
}
]
}{
"errors": [
{
"status": "500",
"type": "SERVER",
"code": "INTERNAL",
"title": "Internal Server Error",
"detail": "An unexpected error occurred on the server.",
"links": {
"about": "https://smartcar.com/docs/errors/api-errors/v3/server-errors"
}
}
]
}Vehicle Data
Get signal
Get individual signal details by signal code.
GET
/
vehicles
/
{vehicleId}
/
signals
/
{signalCode}
Get signal
curl --request GET \
--url https://vehicle.api.smartcar.com/v3/vehicles/{vehicleId}/signals/{signalCode} \
--header 'Authorization: Bearer <token>' \
--header 'sc-user-id: <sc-user-id>'import requests
url = "https://vehicle.api.smartcar.com/v3/vehicles/{vehicleId}/signals/{signalCode}"
headers = {
"sc-user-id": "<sc-user-id>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'sc-user-id': '<sc-user-id>', Authorization: 'Bearer <token>'}
};
fetch('https://vehicle.api.smartcar.com/v3/vehicles/{vehicleId}/signals/{signalCode}', 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://vehicle.api.smartcar.com/v3/vehicles/{vehicleId}/signals/{signalCode}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"sc-user-id: <sc-user-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"
"net/http"
"io"
)
func main() {
url := "https://vehicle.api.smartcar.com/v3/vehicles/{vehicleId}/signals/{signalCode}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("sc-user-id", "<sc-user-id>")
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://vehicle.api.smartcar.com/v3/vehicles/{vehicleId}/signals/{signalCode}")
.header("sc-user-id", "<sc-user-id>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://vehicle.api.smartcar.com/v3/vehicles/{vehicleId}/signals/{signalCode}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["sc-user-id"] = '<sc-user-id>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"id": "charge-voltage",
"type": "signal",
"attributes": {
"code": "charge-voltage",
"name": "Voltage",
"group": "Charge",
"status": {
"value": "SUCCESS"
},
"body": {
"unit": "volts",
"value": 85
}
},
"meta": {
"retrievedAt": "2023-10-01T20:00:00Z",
"oemUpdatedAt": "2023-10-01T19:59:59Z",
"ingestedAt": "2023-10-01T20:01:00Z"
},
"links": {
"self": "/vehicles/vehicle123/signals/charge-voltage"
}
},
"included": {
"vehicle": {
"id": "vehicle123",
"type": "vehicle",
"attributes": {
"make": "Toyota",
"model": "Camry",
"year": 2020,
"powertrainType": "ICE",
"mode": "live"
},
"links": {
"self": "/vehicles/vehicle123"
}
}
}
}{
"errors": [
{
"status": "400",
"type": "VALIDATION",
"code": "BAD_REQUEST",
"title": "Bad Request",
"detail": "The request could not be understood by the server due to malformed syntax.",
"links": {
"about": "https://smartcar.com/docs/errors/api-errors/v3/validation-errors"
}
}
]
}{
"errors": [
{
"status": "401",
"type": "AUTHENTICATION",
"code": "UNAUTHORIZED",
"title": "Unauthorized",
"detail": "The Authorization token is missing or invalid.",
"links": {
"about": "https://smartcar.com/docs/errors/api-errors/v3/authentication-errors#authentication"
}
}
]
}{
"errors": [
{
"status": "403",
"type": "AUTHENTICATION",
"code": "FORBIDDEN",
"title": "Forbidden",
"detail": "You do not have permission to access this resource.",
"links": {
"about": "https://smartcar.com/docs/errors/api-errors/v3/authentication-errors"
}
}
]
}{
"errors": [
{
"status": "404",
"type": "RESOURCE_NOT_FOUND",
"code": "NOT_FOUND",
"title": "Not Found",
"detail": "The requested resource could not be found.",
"links": {
"about": "https://smartcar.com/docs/errors/api-errors/v3/resource-not-found-errors"
}
}
]
}{
"errors": [
{
"status": "500",
"type": "SERVER",
"code": "INTERNAL",
"title": "Internal Server Error",
"detail": "An unexpected error occurred on the server.",
"links": {
"about": "https://smartcar.com/docs/errors/api-errors/v3/server-errors"
}
}
]
}Authorizations
The Authorization header must be provided with a valid bearer token.
Example: Authorization: Bearer {token}
Headers
The identifier of the vehicle user on whose behalf the command is being executed.
Vehicle commands require both the vehicleId (path) and sc-user-id (header) to
identify the specific vehicle and the user who has granted permission to act on it.
The bearer token is a machine-to-machine token and does not carry per-user context,
so this header must be provided explicitly for every command request.
Path Parameters
The unique identifier for the vehicle.
The unique identifier for the signal.
Was this page helpful?
⌘I

