Search used cars on CarDekho India by city, make, model, price, year, kilometres, fuel, transmission, body type, owner and seats, with sort and pages. Every listing keeps all card fields: price against market price, kilometres, owner count, seller, images, EMI, trust tags and flags. The response carries the true total, the filter facets with counts and the sort list. CarDekho exposes one sliding window of cars, so pages overlap: window_overlap is true and clients should de-duplicate on used_car_sku_id.
Run this endpoint
Endpoint
Parameters
Start with the required fields, then add optional filters only when your use case needs them.
Runnable path
This endpoint has no required query parameters.
16 optional filters available.
string
Optional
City slug such as new-delhi, mumbai or bangalore. Empty means all of India.
new-delhi
string
Optional
Make slug from the used-cars/filters brand group, for example maruti or hyundai.
maruti
string
Optional
Model slug such as swift or maruti-swift. Needs make.
swift
integer
Optional
Minimum price in rupees.
10
integer
Optional
Maximum price in rupees. Must be at least price_min.
10
integer
Optional
Earliest registration year.
10
integer
Optional
Latest registration year.
10
integer
Optional
Maximum kilometres driven.
10
string
Optional
Fuel slug from the filters, for example petrol, diesel or cng. Several values can be comma-separated.
petrol
string
Optional
manual or automatic.
example
string
Optional
Body type slug such as suv, sedan or hatchback.
example
string
Optional
Owner slug such as first-owner or second-owner.
example
string
Optional
Seat slug such as 5-seater or 7-seater.
example
string
Optional
Sort value from the sorting list: price, kms_run, created_date, registration_year or distance.
price
string
Optional
asc or desc. Defaults to asc when sort is set.
asc
integer
Optional
Result window, starting at 1. Pages overlap; de-duplicate on used_car_sku_id.
1
Request Examples
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://scrappa.co/api/cardekho/v1/used-cars?city=new-delhi&make=maruti&model=swift&fuel=petrol&sort=price&sort_direction=asc",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: YOUR_API_KEY_HERE"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
<?php
use Illuminate\Support\Facades\Http;
$response = Http::timeout(30)
->withHeaders(['x-api-key' => 'YOUR_API_KEY_HERE'])
->get('https://scrappa.co/api/cardekho/v1/used-cars?city=new-delhi&make=maruti&model=swift&fuel=petrol&sort=price&sort_direction=asc');
if ($response->successful()) {
echo $response->body();
} else {
echo "Error: " . $response->status();
}
const options = {
method: 'GET',
headers: {
'x-api-key': 'YOUR_API_KEY_HERE'
}
};
fetch('https://scrappa.co/api/cardekho/v1/used-cars?city=new-delhi&make=maruti&model=swift&fuel=petrol&sort=price&sort_direction=asc', options)
.then(response => {
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return response.text();
})
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
const axios = require('axios');
const options = {
method: 'GET',
url: 'https://scrappa.co/api/cardekho/v1/used-cars?city=new-delhi&make=maruti&model=swift&fuel=petrol&sort=price&sort_direction=asc',
headers: {
x-api-key: 'YOUR_API_KEY_HERE',
}
};
try {
const response = await axios(options);
console.log(response.data);
} catch (error) {
console.error('Error:', error.message);
}
require 'net/http'
require 'uri'
uri = URI.parse("https://scrappa.co/api/cardekho/v1/used-cars?city=new-delhi&make=maruti&model=swift&fuel=petrol&sort=price&sort_direction=asc")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == 'https'
request = Net::HTTP::Get.new(uri.request_uri)
request['x-api-key'] = 'YOUR_API_KEY_HERE'
begin
response = http.request(request)
puts response.body
rescue => e
puts "Error: #{e.message}"
end
import http.client
import json
conn = http.client.HTTPSConnection("scrappa.co")
headers = {
'x-api-key': 'YOUR_API_KEY_HERE',
}
try:
conn.request("GET", "/api/cardekho/v1/used-cars?city=new-delhi&make=maruti&model=swift&fuel=petrol&sort=price&sort_direction=asc", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
except Exception as e:
print(f"Error: {e}")
finally:
conn.close()
import requests
headers = {
'x-api-key': 'YOUR_API_KEY_HERE',
}
try:
response = requests.get('https://scrappa.co/api/cardekho/v1/used-cars?city=new-delhi&make=maruti&model=swift&fuel=petrol&sort=price&sort_direction=asc', headers=headers)
response.raise_for_status()
print(response.text)
except requests.exceptions.RequestException as e:
print(f"Error: {e}")
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;
public class ApiExample {
public static void main(String[] args) {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://scrappa.co/api/cardekho/v1/used-cars?city=new-delhi&make=maruti&model=swift&fuel=petrol&sort=price&sort_direction=asc")
.addHeader("x-api-key", "YOUR_API_KEY_HERE")
.build();
try (Response response = client.newCall(request).execute()) {
if (response.isSuccessful()) {
System.out.println(response.body().string());
} else {
System.out.println("Error: " + response.code());
}
} catch (IOException e) {
System.out.println("Error: " + e.getMessage());
}
}
}
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
client := &http.Client{}
req, err := http.NewRequest("GET", "https://scrappa.co/api/cardekho/v1/used-cars?city=new-delhi&make=maruti&model=swift&fuel=petrol&sort=price&sort_direction=asc", nil)
if err != nil {
fmt.Println("Error creating request:", err)
return
}
req.Header.Set("x-api-key", "YOUR_API_KEY_HERE")
resp, err := client.Do(req)
if err != nil {
fmt.Println("Error making request:", err)
return
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println("Error reading response:", err)
return
}
fmt.Println(string(body))
}
#!/bin/bash
curl -X GET \
-H "x-api-key: YOUR_API_KEY_HERE" \
"https://scrappa.co/api/cardekho/v1/used-cars?city=new-delhi&make=maruti&model=swift&fuel=petrol&sort=price&sort_direction=asc"
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", "YOUR_API_KEY_HERE");
try
{
var response = await client.SendAsync(new HttpRequestMessage(HttpMethod.Get, "https://scrappa.co/api/cardekho/v1/used-cars?city=new-delhi&make=maruti&model=swift&fuel=petrol&sort=price&sort_direction=asc"));
var content = await response.Content.ReadAsStringAsync();
Console.WriteLine(content);
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
}
import axios from 'axios';
async function run(): Promise<void> {
try {
const response = await axios({
method: 'GET',
url: 'https://scrappa.co/api/cardekho/v1/used-cars?city=new-delhi&make=maruti&model=swift&fuel=petrol&sort=price&sort_direction=asc',
headers: {
'x-api-key': 'YOUR_API_KEY_HERE',
},
});
console.log(response.data);
} catch (error) {
console.error('Error:', error);
}
}
void run();
use reqwest::Client;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = Client::new();
let response = client
.get("https://scrappa.co/api/cardekho/v1/used-cars?city=new-delhi&make=maruti&model=swift&fuel=petrol&sort=price&sort_direction=asc")
.header("x-api-key", "YOUR_API_KEY_HERE")
.send()
.await?;
println!("{}", response.text().await?);
Ok(())
}
Response Schema
Example response fields are illustrative; inspect the JSON before integrating.
Example response fields
Scan these fields before integrating.
success
data
meta
{
"success": true,
"data": {
"listings": [
{
"used_car_sku_id": "7d716dcf-1cd6-4135-a593-2e068dbb7f2f",
"title": "2016 Maruti Suzuki Swift LXI",
"price": {
"value": 287048,
"currency": "INR",
"formatted": "\u20b92.87 Lakh",
"market_price": 290796
},
"year": 2016,
"make": "Maruti Suzuki",
"variant": "LXI",
"km": {
"value": 62336,
"formatted": "62,336"
},
"fuel": "Petrol",
"transmission": "Manual",
"owner": {
"count": 1,
"slug": "first-owner"
},
"location": {
"city": "New Delhi",
"locality": "Rohini Courts"
},
"seller": {
"type": "Dealer",
"dealer_id": 77003
}
}
],
"pagination": {
"page": 1,
"page_size": 20,
"total": 187,
"has_more": true,
"window_overlap": true
},
"sorting": [
{
"label": "Price - Low to High",
"value": "price",
"order": "asc"
}
]
},
"meta": {
"endpoint_family": "search",
"market": "IN"
}
}
Errors
Handle these documented responses before retrying or showing customer-facing failures.
Validation Error
A public parameter or range is invalid. This response is not billable.
Not Found
CarDekho has no listing, price or result for the request. This response is not billable.
Unknown Filter
CarDekho did not recognise the city, make, fuel, transmission, body type, owner or seats value. This response is not billable.
Unexpected Upstream Response
CarDekho returned an unrecognized response shape. This response is not billable.
Upstream Unavailable
The upstream service is temporarily unavailable. Please retry shortly.
Generate Code with AI
Copy a ready-made prompt with all the endpoint details, parameters, and example responses. Paste it into ChatGPT, Claude, or any AI assistant to instantly generate working code.
Try It Live
Test this endpoint in our interactive playground with real data.