CarWale Used Car Listings Scraper (India)
Pricing
from $0.60 / 1,000 car listing scrapeds
CarWale Used Car Listings Scraper (India)
Scrape CarWale used cars in India by city, make or model: price in INR, year, kilometres, fuel, transmission, owners, dealer or individual, locality and the Average Market Price. Sort by price or mileage to track new listings and price drops city by city.
Pricing
from $0.60 / 1,000 car listing scrapeds
Rating
0.0
(0)
Developer
Superslow Sloth
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Scrape the used cars listed on CarWale (India's large used-car marketplace) city by city, optionally narrowed to one make or one model, and get one flat row per car: the asking price in INR (as a number and as CarWale prints it), year, kilometres, fuel, transmission, number of owners, whether the seller is a dealer or an individual, the locality, CarWale's Average Market Price estimate, the reduction on a car shown as reduced, the link and the photo.
Built for a per-city new-listing and price-drop alert: run it on a schedule for
the cities you care about, keep the stock_ids you have seen, and diff the dataset
against last time. A stock_id that is new is a new listing; the same stock_id
with a lower price_inr is a price drop.
No account, no API key, no login, no browser.
Input
| Field | Notes |
|---|---|
cities | One or more CarWale city slugs, one per line: mumbai, delhi, bangalore, pune, hyderabad, chennai, kolkata. Required. Use the slug in the city's CarWale URL (carwale.com/used/<city>/). New Delhi and new-delhi are read as delhi, which is where CarWale redirects them. |
makeModel | Optional. One make or one model as written in CarWale's URL: maruti-suzuki, maruti-suzuki-swift, toyota-innova-crysta. Applied to every city. |
maxItems | Cars to read per city (default 100, up to 15,000 - Delhi, the largest city, has about 13,000). CarWale serves about 25 cars per request. |
sort | best-match (CarWale's default), price-asc, price-desc, year-newest, km-low. See "Coverage". |
proxyConfiguration | Apify datacenter proxy by default. |
An unknown city, an unknown make or model slug, or a make with no cars in that city
fails that city at no charge instead of returning something else. CarWale itself
answers those with a redirect to a different page (an unknown make or model slug is
sent to the whole city's page, an unknown city to the /used/ hub); the actor
checks which page it was served and refuses to bill rows that are not the search you
asked for.
Output
Prices are whole numbers of Indian rupees.
| Field | Notes |
|---|---|
city, search, position | The city slug as CarWale resolved it, the CarWale path the row came from (/used/mumbai/maruti-suzuki-swift/), and the car's place in that search's result list (1 is first). Nearby-city extras and repeats are not counted. |
stock_id, url | CarWale's stock id (yxcd9y10), stable for the life of the ad, and the absolute listing link. |
title, make, model, variant, year | title is CarWale's car name (make, model and variant). model is the model family (Creta), variant the trim. |
price_inr, price_text | The asking price as a number and as CarWale prints it (11.5 Lakh, 1.31 Crore, 30,000). One lakh is 100,000 and one crore 10,000,000. |
original_price_text, discount_text, discount_inr | On a car CarWale shows as reduced: the earlier price and the reduction as printed (Rs. 11.75 Lakh, Rs. 30,000) and the reduction in rupees. Null on every other car, never 0. |
average_market_price_inr | CarWale's "Average Market Price" estimate for the car. Null when CarWale has no estimate (it sends 0). |
km, fuel, transmission | Odometer in kilometres, fuel and transmission as CarWale prints them (Petrol, Automatic (TC)). |
owners | Previous owners as CarWale counts them (1 = first owner). Null when CarWale sends 0, which it does for cars with no owner count. |
seller_type, seller_name | dealer or individual. The dealership's name for a dealer; always null for an individual, because a private seller's name is a person's name and is not published. |
is_promoted | True for a car in one of CarWale's promoted slots, the "Sponsored" placements at the top of the default best-match sort. |
listing_city, area | The city the car is actually in, and its locality (Mulund (W), null when empty). CarWale lists some cars from other cities for home delivery in a city's results, so listing_city can differ from city (a Gurgaon car in Delhi's results, for example). |
image_url | The listing photo; null when the listing has none (common for private sellers). |
Example row (Mumbai, 2026-10-15):
{"city": "mumbai","search": "/used/mumbai/","position": 7,"stock_id": "azn2mwoy","title": "Maruti Suzuki Grand Vitara Delta Smart Hybrid [2023-2025]","make": "Maruti Suzuki","model": "Grand Vitara","variant": "Delta Smart Hybrid [2023-2025]","year": 2025,"price_inr": 1145000,"price_text": "11.45 Lakh","original_price_text": "Rs. 11.75 Lakh","discount_text": "Rs. 30,000","discount_inr": 30000,"average_market_price_inr": 1309817,"km": 13100,"fuel": "Petrol","transmission": "Manual","owners": 1,"seller_type": "dealer","seller_name": "Reliable Carz","is_promoted": false,"listing_city": "Mumbai","area": "Link Road","url": "https://www.carwale.com/used/mumbai/maruti-suzuki-grand-vitara/azn2mwoy/","image_url": "https://imgd.aeplcdn.com/400x300/vimages/202609/4804684_13981_1_1790243211758.jpg?qp=80"}
Honest nulls
A field CarWale did not send, or sent as 0 where 0 means "unknown" (owners, the
market estimate, the price), is null, never 0. A car with no price is still
returned, because the listing exists.
Pricing
Pay per event:
- $0.002 per run (
actor-start), charged only after your input is validated, so a run that fails on bad input costs nothing. - $0.0006 per car row written (
listing-scraped), i.e. $0.60 per 1,000 cars. A row that is not written is not charged; cars CarWale adds from nearby cities, and cars it repeats, are neither written nor charged.
Coverage - read this before you diff runs
CarWale pages its own "load more" with offsets that overlap and skip cars when the order is not stable. Measured 2026-10-15 on Dehradun (653 cars on CarWale's count), one run per sort:
| Sort | Cars read |
|---|---|
price-asc | 646 (99%) |
price-desc | 646 (99%) |
km-low | 648 (99%) |
best-match | 599 to 607 (92 to 93%) across two runs |
year-newest | 578 (88%), many cars share a year |
For a full sweep of a city, use a price or kilometres sort. best-match is
CarWale's default and the only order with promoted slots, but its order shifts
between requests. A car CarWale counts but never serves (3 of 166 for Mumbai Maruti Suzuki Swifts, read in full on 2026-10-15) cannot be read at all.
How it fetches
The first page of a city is CarWale's server-rendered page; the actor reads the JSON
CarWale's own page is built from, which is embedded in it (the listing cards use
obfuscated markup that changes). Further cars come from the "load more" JSON the page
itself calls (/api/stocks/), 24 to 33 cars per request, followed link by link. Measured
2026-10-15: HTTP 200 from Apify datacenter and residential exits and from a plain home
connection, no key or cookie needed; 25 sequential pages took 0.2 to 0.5 s each with no
rate limit. A refusal (403, 429, 202, 5xx), a 200 that is not the expected page or JSON,
or a dropped connection is treated as the address being blocked, and the actor rotates
to a fresh one and retries.
Things worth knowing, all measured:
- The paging chain never ends by itself. After a city's own cars CarWale serves cars from nearby cities, then wraps around and repeats the city's cars, then returns empty pages for ever (958 pages measured). The actor stops at the first page with no car from the city itself, and skips the nearby-city extras.
/page-2/URLs do not paginate on CarWale (pages 2, 3, 322 and 400 of Mumbai share 23 of 24 cars), which is why the actor follows the "load more" chain.- CarWale's count is not always reachable.
totalCountis logged per city; the rows returned can be a little lower (see Coverage). - Promoted slots. On
best-matchthe first page carries about 9 promoted cars ahead of the organic ones; they are returned once, flaggedis_promoted. - Cars from other cities. Results can include cars CarWale offers for home delivery
from another city; they are returned with their real
listing_city. - No "recently listed" sort. CarWale offers none, so new listings are found by
diffing
stock_ids between runs, not by sorting. - Not offered. The other filters on the site (budget, body type, colour, owners) are not wired into this actor.