curl --request POST \
--url https://vehicle.api.smartcar.com/v3/vehicles/{vehicleId}/settings/tractionbattery-nominalcapacity \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'sc-user-id: <sc-user-id>' \
--data '
{
"data": {
"attributes": {
"capacity": 75
}
}
}
'import requests
url = "https://vehicle.api.smartcar.com/v3/vehicles/{vehicleId}/settings/tractionbattery-nominalcapacity"
payload = { "data": { "attributes": { "capacity": 75 } } }
headers = {
"sc-user-id": "<sc-user-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'sc-user-id': '<sc-user-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({data: {attributes: {capacity: 75}}})
};
fetch('https://vehicle.api.smartcar.com/v3/vehicles/{vehicleId}/settings/tractionbattery-nominalcapacity', 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}/settings/tractionbattery-nominalcapacity",
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([
'data' => [
'attributes' => [
'capacity' => 75
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://vehicle.api.smartcar.com/v3/vehicles/{vehicleId}/settings/tractionbattery-nominalcapacity"
payload := strings.NewReader("{\n \"data\": {\n \"attributes\": {\n \"capacity\": 75\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("sc-user-id", "<sc-user-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://vehicle.api.smartcar.com/v3/vehicles/{vehicleId}/settings/tractionbattery-nominalcapacity")
.header("sc-user-id", "<sc-user-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"attributes\": {\n \"capacity\": 75\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://vehicle.api.smartcar.com/v3/vehicles/{vehicleId}/settings/tractionbattery-nominalcapacity")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["sc-user-id"] = '<sc-user-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"data\": {\n \"attributes\": {\n \"capacity\": 75\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "tractionbattery-nominalcapacity",
"type": "vehicle-setting",
"attributes": {
"value": {
"capacity": 75,
"unit": "kWh"
},
"source": "APPLICATION"
},
"meta": {
"updatedAt": "2026-10-15T20:00:00Z"
},
"links": {
"affectedSignals": [
"https://vehicle.api.smartcar.com/v3/vehicles/vehicle123/signals/tractionbattery-nominalcapacity"
]
}
}
}{
"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"
}
}
]
}Set nominal battery capacity
Set the vehicle’s nominal battery capacity, overriding the value Smartcar derives for it.
Must be one of the availableCapacities reported by the tractionbattery-nominalcapacity signal.
Simulated vehicles accept any capacity from 10 to 200 kWh.
curl --request POST \
--url https://vehicle.api.smartcar.com/v3/vehicles/{vehicleId}/settings/tractionbattery-nominalcapacity \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'sc-user-id: <sc-user-id>' \
--data '
{
"data": {
"attributes": {
"capacity": 75
}
}
}
'import requests
url = "https://vehicle.api.smartcar.com/v3/vehicles/{vehicleId}/settings/tractionbattery-nominalcapacity"
payload = { "data": { "attributes": { "capacity": 75 } } }
headers = {
"sc-user-id": "<sc-user-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'sc-user-id': '<sc-user-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({data: {attributes: {capacity: 75}}})
};
fetch('https://vehicle.api.smartcar.com/v3/vehicles/{vehicleId}/settings/tractionbattery-nominalcapacity', 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}/settings/tractionbattery-nominalcapacity",
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([
'data' => [
'attributes' => [
'capacity' => 75
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://vehicle.api.smartcar.com/v3/vehicles/{vehicleId}/settings/tractionbattery-nominalcapacity"
payload := strings.NewReader("{\n \"data\": {\n \"attributes\": {\n \"capacity\": 75\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("sc-user-id", "<sc-user-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://vehicle.api.smartcar.com/v3/vehicles/{vehicleId}/settings/tractionbattery-nominalcapacity")
.header("sc-user-id", "<sc-user-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"attributes\": {\n \"capacity\": 75\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://vehicle.api.smartcar.com/v3/vehicles/{vehicleId}/settings/tractionbattery-nominalcapacity")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["sc-user-id"] = '<sc-user-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"data\": {\n \"attributes\": {\n \"capacity\": 75\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "tractionbattery-nominalcapacity",
"type": "vehicle-setting",
"attributes": {
"value": {
"capacity": 75,
"unit": "kWh"
},
"source": "APPLICATION"
},
"meta": {
"updatedAt": "2026-10-15T20:00:00Z"
},
"links": {
"affectedSignals": [
"https://vehicle.api.smartcar.com/v3/vehicles/vehicle123/signals/tractionbattery-nominalcapacity"
]
}
}
}{
"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 request is being made.
These requests 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 request being made.
Path Parameters
The unique identifier for the vehicle.
Body
Show child attributes
Show child attributes
Response
The nominal battery capacity was set
Show child attributes
Show child attributes
Was this page helpful?

