CarWale Used Car Listings Scraper (India) avatar

CarWale Used Car Listings Scraper (India)

Pricing

from $0.60 / 1,000 car listing scrapeds

Go to Apify Store
CarWale Used Car Listings Scraper (India)

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

Superslow Sloth

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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

FieldNotes
citiesOne 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.
makeModelOptional. One make or one model as written in CarWale's URL: maruti-suzuki, maruti-suzuki-swift, toyota-innova-crysta. Applied to every city.
maxItemsCars 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.
sortbest-match (CarWale's default), price-asc, price-desc, year-newest, km-low. See "Coverage".
proxyConfigurationApify 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.

FieldNotes
city, search, positionThe 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, urlCarWale's stock id (yxcd9y10), stable for the life of the ad, and the absolute listing link.
title, make, model, variant, yeartitle is CarWale's car name (make, model and variant). model is the model family (Creta), variant the trim.
price_inr, price_textThe 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_inrOn 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_inrCarWale's "Average Market Price" estimate for the car. Null when CarWale has no estimate (it sends 0).
km, fuel, transmissionOdometer in kilometres, fuel and transmission as CarWale prints them (Petrol, Automatic (TC)).
ownersPrevious 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_namedealer 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_promotedTrue for a car in one of CarWale's promoted slots, the "Sponsored" placements at the top of the default best-match sort.
listing_city, areaThe 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_urlThe 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:

SortCars read
price-asc646 (99%)
price-desc646 (99%)
km-low648 (99%)
best-match599 to 607 (92 to 93%) across two runs
year-newest578 (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. totalCount is logged per city; the rows returned can be a little lower (see Coverage).
  • Promoted slots. On best-match the first page carries about 9 promoted cars ahead of the organic ones; they are returned once, flagged is_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.