A variant's full sheet: plate figures, spec groups, prices (kind and date) and media links
curl --request GET \
--url https://api.truckaurbus.com/v1/variants/{slug}import requests
url = "https://api.truckaurbus.com/v1/variants/{slug}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.truckaurbus.com/v1/variants/{slug}', 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.truckaurbus.com/v1/variants/{slug}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://api.truckaurbus.com/v1/variants/{slug}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.truckaurbus.com/v1/variants/{slug}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.truckaurbus.com/v1/variants/{slug}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"body_types": [
"<string>"
],
"is_sample": true,
"lifecycle": "<string>",
"manufacturer": {
"name": "<string>",
"slug": "<string>"
},
"model": {
"name": "<string>",
"slug": "<string>"
},
"name": "<string>",
"prices": [
{
"ex_showroom_inr": 123,
"kind": "<string>",
"observed_at": "2023-12-25",
"state_code": "<string>",
"basis": {},
"city": "<string>",
"high_inr": 123,
"source_kind": "maker"
}
],
"slug": "<string>",
"spec": [
{
"fields": [
{
"key": "<string>",
"label": "<string>",
"confidence": 123,
"unit": "<string>",
"value": "<string>"
}
],
"key": "<string>",
"label": "<string>"
}
],
"vehicle_class": "<string>",
"axle_config": "<string>",
"fitments": [],
"fuel": "<string>",
"gvw_kg": 123,
"image": "<string>",
"media": [],
"payload_kg": 123,
"power_hp": 123,
"price_as_of": "2023-12-25",
"price_from_inr": 123,
"price_kind": "<string>",
"price_state": "<string>",
"price_to_inr": 123,
"published_at": "2023-12-25",
"seating": 123,
"segment": "<string>",
"torque_nm": 123,
"tyre_size": "<string>",
"tyres_count": 123,
"verified_at": "2023-12-25",
"wheelbase_mm": 123,
"battery_ah": 123,
"battery_volts": 123,
"launched_at": "2023-12-25",
"on_road": {
"base_inr": 123,
"base_kind": "<string>",
"default_state": "<string>",
"rules_version": "<string>",
"states": [
{
"code": "<string>",
"name": "<string>"
}
]
}
}v1
A variant's full sheet: plate figures, spec groups, prices (kind and date) and media links
A variant’s full sheet: plate figures, spec groups, prices with their kind and date, on-road by state, launch date and media links.
GET
/
v1
/
variants
/
{slug}
A variant's full sheet: plate figures, spec groups, prices (kind and date) and media links
curl --request GET \
--url https://api.truckaurbus.com/v1/variants/{slug}import requests
url = "https://api.truckaurbus.com/v1/variants/{slug}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.truckaurbus.com/v1/variants/{slug}', 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.truckaurbus.com/v1/variants/{slug}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://api.truckaurbus.com/v1/variants/{slug}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.truckaurbus.com/v1/variants/{slug}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.truckaurbus.com/v1/variants/{slug}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"body_types": [
"<string>"
],
"is_sample": true,
"lifecycle": "<string>",
"manufacturer": {
"name": "<string>",
"slug": "<string>"
},
"model": {
"name": "<string>",
"slug": "<string>"
},
"name": "<string>",
"prices": [
{
"ex_showroom_inr": 123,
"kind": "<string>",
"observed_at": "2023-12-25",
"state_code": "<string>",
"basis": {},
"city": "<string>",
"high_inr": 123,
"source_kind": "maker"
}
],
"slug": "<string>",
"spec": [
{
"fields": [
{
"key": "<string>",
"label": "<string>",
"confidence": 123,
"unit": "<string>",
"value": "<string>"
}
],
"key": "<string>",
"label": "<string>"
}
],
"vehicle_class": "<string>",
"axle_config": "<string>",
"fitments": [],
"fuel": "<string>",
"gvw_kg": 123,
"image": "<string>",
"media": [],
"payload_kg": 123,
"power_hp": 123,
"price_as_of": "2023-12-25",
"price_from_inr": 123,
"price_kind": "<string>",
"price_state": "<string>",
"price_to_inr": 123,
"published_at": "2023-12-25",
"seating": 123,
"segment": "<string>",
"torque_nm": 123,
"tyre_size": "<string>",
"tyres_count": 123,
"verified_at": "2023-12-25",
"wheelbase_mm": 123,
"battery_ah": 123,
"battery_volts": 123,
"launched_at": "2023-12-25",
"on_road": {
"base_inr": 123,
"base_kind": "<string>",
"default_state": "<string>",
"rules_version": "<string>",
"states": [
{
"code": "<string>",
"name": "<string>"
}
]
}
}Path Parameters
Response
200 - application/json
OK
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
The on-road estimate for ONE state from the ex-showroom figure the page shows (D27, state leg): the tax rules, central fees and insurance base premiums are a versioned table; a dealer's own quote for a state replaces the base when one exists. One state per response on purpose (founder, 07/09/2026: the state table is not for scrapers); the page asks for another state through the rate-limited /variants/{slug}/on-road?state= route.
Show child attributes
Show child attributes

