Cars24 API

India's used-car recommerce platform as JSON, inspection reports and all

The Cars24 API turns cars24.com, India's largest used-car recommerce platform, into clean JSON in eight actions.

no credit card1,000 free credits · instant API key · pay by card or crypto
Missing a Cars24 endpoint, or need a source we don't have yet?Contact us real people · same-day reply.
C
/cars24/v1

8 active endpoints, on 1, 2 and 3 credit tiers.

  • POST/cars24/v1/search
  • POST/cars24/v1/detail
  • POST/cars24/v1/batch_detail
  • POST/cars24/v1/price_breakdown
  • POST/cars24/v1/filters
  • POST/cars24/v1/cities
  • POST/cars24/v1/hubs
  • +1 more

What Cars24 endpoints does ReefAPI ship?

8 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.

8 endpoints

search

3 cr

Search Cars24's Indian used-car catalogue.

required
—
optional
city_id, make, model, seller_kind, fuel, body_type, transmission, transmission_type, colour, seats, owners, features, price_min, price_max, year_min, year_max, km_min, km_max, discount_pct_min, rto_state, rto_code, hub_code, lat, lon, sort, max_results, cursor

detail

2 cr

One car in full, from Cars24's own car-detail endpoint.

required
car_id
optional
—

batch_detail

2 cr

Search-grade rows for up to 10 car ids in ONE upstream request.

required
car_ids
optional
—

price_breakdown

1 cr

Cars24's own line-by-line breakdown of the drive-away price for one car.

required
car_id
optional
—

filters

2 cr

The live filter vocabulary WITH a car count on every value.

required
—
optional
city_id, facet

cities

2 cr

Every Indian city Cars24 serves.

required
—
optional
query, featured_only, with_brands

hubs

1 cr

Cars24's physical branches in one city, as Cars24 publishes them.

required
city_id
optional
—

similar

2 cr

The cars Cars24 itself recommends against one listing.

required
car_id
optional
—

Every parameter, every allowed value →

Cars24 API

6 of 8 endpoints, ready to run

View docs ↗

Live Indian used cars with id and canonical URL, make, model, variant and year, the drive-away price in rupees plus Cars24's own lakh string, odometer as a number and as printed, fuel, gearbox, body, colour, seats, owner count, masked RTO plate, the locality and coordinates where the car stands, photo count, first-listed date, seller kind and Cars24's own finance estimate.

3 credits0 required · 16 optional
POST/cars24/v1/search
idle
// Press "Try it" and this pane shows exactly what the
// live site returned this second — including an empty
// result, if that is the truth. No key, no account.

How the Cars24 API works

Cars24 is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.

01
Authenticate
x-api-key header

No OAuth app, no request signing, no per-site account. One key covers all 438 engines.

02
Call
POST /cars24/v1/…

Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.

03
Pay
1 or 2 or 3 credits per call

Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.

04
Read
{ ok, data, meta, error }

One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.

From the whole Indian market to one inspected car's defect photos

filters is the cheapest way to see what the market holds before you spend a call on rows, and the only way past Cars24's own 10,000 cap. search is the entry point, and every row carries the car id the other actions need.

01cities { query: "bangalore" }
POSTcities { query: "bangalore" }

Cars24's numeric city key plus the live car count — Bangalore is city 4709, 2,150 cars by Cars24's own city index and 2,132 on its live listing surface — because search is keyed on the id, not the name.

02filters { city_id: 4709, facet: "make_model" }
POSTfilters { city_id: 4709, facet: "make_model" }

Every brand in that city with its models and a count on each node, so the next call cannot miss on a spelling.

03search { city_id: 4709, seller_kind: "cars24", make: "maruti", sort: "price_asc", max_results: 30 }
POSTsearch { city_id: 4709, seller_kind: "cars24", make: "maruti", sort: "price_asc", max_results: 30 }

Up to 30 inspected cars with price in rupees, odometer, gearbox, owner count, coordinates and photo count. total_available tells you how many there really are, and next_cursor pages on with zero overlap.

04detail { car_id: "11100778180" }
POSTdetail { car_id: "11100778180" }

The full record: Cars24's inspection report area by area with imperfection counts and defect photographs, the 71-row spec table, tyre tread per wheel, insurance type, fitness expiry and the hub's street address.

05price_breakdown { car_id: "11100778180" }
POSTprice_breakdown { car_id: "11100778180" }

Why the headline is what it is: base price, RC transfer and mandated insurance as separate rupee lines.

One lookup, one vocabulary call, one search and two id calls give you the city's real population, live asking prices for a specific brand of inspected car, the condition evidence behind one of them, and the exact composition of its price.

request
curl -X POST https://api.reefapi.com/cars24/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"city_id":2,"max_results":3}'
response envelope
{
  "ok": true,
  "data": { … },
  "meta": {
    "api": "cars24",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": …,
    "record_count": …
  },
  "error": null
}

The money fields, and the two that look like prices but are not

A Cars24 record carries four price-shaped numbers and only one is the price. This API names each of them for what it is and refuses to publish the one that contradicts itself. Fill rates below are over 160 distinct live cars, 80 per run across two runs in two different cities, sampled across body types and across both seller kinds.

fieldwhat it ismeasured
price_inrThe drive-away asking price in whole Indian rupees — the number the car's own page prints as its headline and publishes in its structured data. Not paise, not lakh.160 of 160 filled. Checked against the price the car's own page publishes in its schema.org offer on 13 cars: 13 matched, 0 mismatched, 1 page unreachable
price_displayCars24's own lakh string for the same number, e.g. 1.91 lakh for 191,102 rupees, so the scale is visible without arithmetic.160 of 160 filled, and agreed with price_inr on 13 of 13 checked
price_ex_charges_inrCars24's own pre-charges figure. It is LOWER than price_inr on every car measured, because the headline includes RC transfer and mandated insurance. Published under its own name so nobody mistakes it for the price.Lower than price_inr on 8 of 8 cars measured; absent on owner-direct cars
price breakdownThe price_breakdown action returns the lines behind the headline. On car 13421894115: base 178,583 plus RC transfer 10,000 plus third-party insurance, summing to the published 191,102.5 charge lines on the car measured, 4 on another
emiCars24's own monthly finance ESTIMATE, with the interest rate and tenure it is calculated at. It is not a price and is never returned as one.160 of 160 filled; 12 % per annum over 48 months on the car measured
originalPriceNOT PUBLISHED, deliberately. Cars24 ships this field but it contradicts its own prices: on 88 cars whose discount is zero — so it should equal the price — it differed on 68. On one 5.83 lakh car it reads 57,456, which would publish a tenfold error.68 of 88 disagreed; dropped rather than shipped
discount_pctCars24's own discount percentage where it flags one. Genuinely rare, and this API says so rather than defaulting it to zero.4 of 80 cars in one city, 11 of 80 in another
odometer_km / odometer_textKilometres as a number plus the string Cars24 printed. A zero reading is returned as null, because a used car with no odometer reading has no odometer reading.160 of 160 filled

Two numbers in this API are the source's own and are reported as such rather than smoothed: a total of exactly 10,000 means Cars24 stopped counting, not that there are 10,000 cars — the response says so with total_is_capped, and the filters action reports the real population. And a city total is exact: Cars24's own page headline said 2941 Used Cars in New Delhi in the same minute this API returned 2,941.

What Cars24 publishes, and where it stops

Measured on 2026-10-02 over two independent runs of the same fixed 68-case list, in two different cities — New Delhi and Bangalore — with 100 % of live cases passing in both. The limits below are the source's, not the API's.

Market

India only, 184 cities. 30,170 live cars: 6,746 Cars24's own refurbished stock and 23,424 owner-direct listings, which add up to the catalogue exactly

Rows per call

Exactly what you ask for up to 30. 30 is the source's hard ceiling — 50, 100, 200, 500 and 1000 all return 30

Reported totals

Cars24 stops counting at exactly 10,000. An all-India search reports 10,000 while the filter counts for the same query say 30,170, so the response marks it total_is_capped and points you at the filters action. Every city total is below the cap and exact

Total verified

New Delhi returned 2,941, and Cars24's own page headline in the same response read 2941 Used Cars in New Delhi

Paging

Cursor paging reaches the end: a small city was walked to exhaustion, 69 published cars and 69 collected, 100 % reachable

Paging overlap

None. Six pages of 20 gave 120 rows and 120 distinct cars; three pages of 30 through the API gave 90 rows and 90 distinct cars, in both runs

Repeatability

The same first call twice returned the same 30 cars in the same order

Filters measured biting

20, each against the unfiltered total in the same run and against the count Cars24 itself published for that value. 14 matched the source's own count exactly; one drifted 0.04 % because the inventory moved between the two calls. Filters Cars24 accepts and silently ignores were tested and left out

Price verification

The returned price was compared with the price each car's own page publishes in its structured data: 13 matched, 0 mismatched, 1 page unreachable. Cars24's own lakh string agreed on 13 of 13

Price field dropped on purpose

Cars24 ships an originalPrice field that disagreed with its own price on 68 of 88 cars whose discount is zero, once by a factor of ten. It is not published

Field fill over 160 cars

id, URL, title, make, model, variant, year, price, lakh string, odometer, fuel, transmission, body type, colour, owner count, RTO code, masked plate, locality, seller kind, photo count, first-listed date, assurance and finance estimate: 160 of 160

Partly filled, by the source

Registration date 149 of 160. Seat count 158 of 160. Cars24's own badges 130 of 160. Coordinates and hub id 120 of 160 — the 40 gaps are all owner-direct cars, which stand at no hub. Discount percentage 15 of 160, because most cars carry none

Inspection report

Cars24's own refurbished stock only — 6,746 of 30,170. Measured on 12 cars across both runs: present on 10, absent on the 2 owner-direct cars, which were sampled on purpose. The API returns null and names the missing blocks rather than inventing a condition score

Single-car detail

79 fields on the car measured, including a 71-row spec and feature table, tread life for all five tyres, insurance type, fitness-certificate expiry, the hub's street address and opening hours, the gallery grouped exterior, interior, tyres and defects, and the wishlist count

Seller

There is no contactable seller. No phone number on any car row, 0 of 90 measured. An owner-direct listing publishes a locality and nothing else about the person; for Cars24's own stock the seller is Cars24 and the published contact point is the hub. Plates arrive masked, as the source publishes them

Not published by Cars24

A full registration or plate number, a VIN or chassis number, any named private seller, a phone number, a free-text search surface, an auction or bidding surface, AI highlights, a days-on-market figure, and an inspection report or service history for owner-direct cars

Reliability measured

Two independent runs on two different cities, 68 cases each: 51 live calls across eight actions succeeded in both, and all 17 intended negatives landed on the right error code both times. Every action costs one upstream request. Median 1.27 s and 1.07 s; one detail call hit 4.9 s after a network hiccup and was retried rather than failed, and every other call was under 1.6 s

What people build with Cars24

The jobs this data is most often used for.

8

endpoints

1/2/3

credits per call

01

Price a specific used car against live Indian supply: search by make, model, year band and odometer band in one city, read total_available and the price spread, then pull price_breakdown to see how much of each headline is RC transfer and insurance rather than the car.

02

Build an inspected-only feed: filter seller_kind=cars24 for the 6,746 refurbished cars, then use detail to read Cars24's own per-area imperfection counts, OK/WARN/ERROR verdicts, defect photographs and tyre tread, which no classifieds site publishes.

03

Size a market before committing to it: one filters call returns 18 filter groups with a live count on every value — 32 makes with their models, fuel split, body split, gearbox technologies, colours, seat counts, owner counts and sixteen equipment flags — for all of India or for one of 184 cities.

04

Track a watchlist cheaply: batch_detail refreshes up to ten car ids in a single call and returns the ones that have been sold in a missing list, so a price drop or a disappearance is one request away instead of ten.

What Cars24 data costs

The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.

Full pricing →
$0.67–$1.50 / 1,000 credits
  • 1,000 free credits on signup, no card
  • One key, all 438 APIs, one credit pool
  • Failed and blocked calls are never charged
  • Credits roll over and never expire

Call it in two lines

Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.

curl
curl -X POST https://api.reefapi.com/cars24/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"city_id":2,"max_results":3}'
python
import requests

r = requests.post(
    "https://api.reefapi.com/cars24/v1/search",
    headers={"x-api-key": REEF_KEY},
    json={
  "city_id": 2,
  "max_results": 3
},
)
print(r.json()["data"])
FAQ

Have a question? We got answers.

The questions people actually ask before wiring up Cars24.

Get a free key →
How many cars are there, and why does an all-India search say 10,000?▾

30,170 on 2026-10-02, measured from Cars24's own filter counts, across 184 cities. Cars24's listing surface caps the total it reports at exactly 10,000: an all-India search, an all-India petrol search and an all-India SUV search all report 10,000, while the filter counts for the same queries in the same minute were 30,170, 18,671 and 12,470. This API does not hide that. It returns total_is_capped: true whenever the number is 10,000, and the filters action gives you the real population. Any city-scoped search is below the cap and exact.

What does Cars24's inspection report actually contain?▾

For Cars24's own refurbished stock, detail returns a condition block with one entry per inspected area — exteriors, engine and transmission, air-conditioning, electricals and interior, steering, suspension and brakes, and tyres — each with the number of cosmetic imperfections Cars24 found, its own OK, WARN or ERROR verdict, the written note explaining it, and in some cases an engine clip the inspector recorded. Alongside it you get the defect photographs, the remaining tread life of each of the five tyres in kilometres, and the service-history summary. Owner-direct cars have no inspection report at all; see the next question.

Does every car have an inspection report?▾

No, and this is the single most important limit on the dataset. Cars24 inspects and refurbishes its own stock — 6,746 cars — and those carry the condition block and the service history. The other 23,424 cars are owner-direct listings and Cars24 publishes no inspection report, no service history and no pre-charges price for them. This API returns null for those fields and a warning naming exactly which blocks the source does not publish for that seller kind. It never fabricates a condition score. Filter on seller_kind=cars24 if you only want inspected cars.

Can I search by free text, like a make and model in one string?▾

No, because Cars24 publishes no text-search surface — its autocomplete rejects a bare search term and nothing else in the product offers one. This API does not pretend otherwise: discovery runs on structured filters instead, which in practice is stronger. make takes 32 brands, model takes the model key, and the filters action returns the whole make-to-model tree with a live count on every node, so you never have to guess a spelling. Maruti has 35 models and 7,996 cars, Hyundai 29 models and 6,050, Tata 37 models and 3,454.

How many rows per call, and can I page through a whole city?▾

30 rows per call. That is Cars24's own hard ceiling and not a choice: asking for 50, 100, 200, 500 or 1000 all return exactly 30. Paging uses a cursor you pass straight back as next_cursor, and it was measured properly: six consecutive pages gave 120 rows and 120 distinct cars, overlap zero, and a small city was walked to exhaustion — Vijayawada, 69 published cars, 69 collected, 69 distinct, 100 % of the catalogue reachable. Repeat the same first call and you get the same 30 cars in the same order, so a sync is stable.

Is the seller a person I can contact?▾

No, and no API can give you that from Cars24 because Cars24 does not publish it. There is no phone number on a car row — 0 of 90 rows measured — and an owner-direct listing publishes a locality and nothing else about the person. For Cars24's own stock the seller is Cars24 itself, and the published contact point is the branch: the hubs action returns each hub's street address, pincode, coordinates, map link, opening hours, working days, how many cars stand there and the branch sales manager's name, all as Cars24 prints them. Plates come to you masked — DL8C**8470 — because that is how the source publishes them.

Which filters actually work, and how do you know?▾

Every filter this API exposes was measured against the count Cars24's own filter surface published for that value in the same run, in two different cities. In New Delhi, against an unfiltered 2,941: maruti 906, petrol 1,911, petrol plus diesel 2,229 which is 1,911 plus 318 exactly, hatchback 1,282, automatic 625, AMT gearbox 149, white 1,156, five-seat 2,570, first-owner 1,968, sunroof 432, Delhi-8C plates 405, one named hub 196, Cars24 stock 436 and owner-direct 2,505 — and 436 plus 2,505 is 2,941, the whole city. Price, year and odometer bands bit too. Filters Cars24 accepts and then ignores were found during testing and are deliberately not offered.

How fast is it, and how reliable was it when you measured?▾

Two independent runs on two different cities, the same fixed 68-case list each time: 51 of 51 live calls succeeded in both runs, and all 17 intended failures landed on the correct error code in both. Median response 1.27 seconds in one run and 1.07 in the other; every action costs exactly one upstream request. One car-detail call in the first run took 4.9 seconds after a network hiccup and the API retried it rather than failing; every other call in both runs was under 1.6 seconds. A dead car id returns a clean not-found rather than an empty success, and a filter combination with genuinely no matches returns ok:true with zero rows and a note saying so, because an empty answer is an answer.

What is the Cars24 API?▾

Cars24 API is a ReefAPI endpoint group for india's used-car recommerce platform: 30,170 live cars across 184 cities, price in rupees, odometer, 71-row spec table, cars24's own inspection report and the hub the car stands at. It returns live JSON through POST requests under /cars24/v1.

Is the Cars24 API free to try?▾

Yes. ReefAPI starts with 1,000 free credits, no card required. Cars24 calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Cars24 login or account?▾

No login to Cars24 is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Cars24 data?▾

The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Cars24 API use?▾

Cars24 actions currently cost 1-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

Can I call Cars24 from an AI assistant or MCP client?▾

Yes. Connect ReefAPI once through MCP and your assistant can call cars24 actions with the same key, credit pool and JSON envelope used by normal REST requests.

99 Classifieds & Second-hand APIs on the same key

One key, one credit pool, one response envelope. If you are pulling Cars24, you are one call away from the rest of the category — no second contract, no second integration.

Need something this API does not do?

Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.

0/4000

No account needed · we reply from [email protected]

Try it on your own data before you pay anything

The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 437 APIs, and the same envelope everywhere.

Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-10-02.