OLX India Scraper: Used Cars, Phones & Classifieds avatar

OLX India Scraper: Used Cars, Phones & Classifieds

Pricing

$1.50 / 1,000 ads

Go to Apify Store
OLX India Scraper: Used Cars, Phones & Classifieds

OLX India Scraper: Used Cars, Phones & Classifieds

Scrape olx.in category listings and ads: title, price in INR, location, posting date, car attributes (make, model, year, km, fuel), images, business-seller flag. No seller personal data. Pay per result.

Pricing

$1.50 / 1,000 ads

Rating

0.0

(0)

Developer

Hexagone Data

Hexagone Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

OLX India Scraper — Classified Ads from olx.in

Collect classified ads from olx.in (OLX India), India's biggest classifieds marketplace. Paste category URLs for full listings (Cars, Mobile Phones, and every other OLX category) or single ad URLs for ad-page records. Each record carries the asking price as a number, the public location, the ad attributes the site publishes (brand, model, year, km, fuel…), and the photos.

Use dated exports to follow a local market, track asking prices over time, or feed your own analytics.

No seller personal data. This Actor never collects the seller's name, identifier, phone number or profile: only the ad itself and a boolean telling whether the seller is a business. See Output.

Try it with 20 ads

  1. Paste a category URL into Start URLs.
  2. Set Maximum number of ads to 20.
  3. Start the Actor and open its dataset.
  4. Read Run summary before exporting JSON, CSV or Excel: a successful process can still contain incomplete URLs or check warnings.
{
"startUrls": [{"url": "https://www.olx.in/cars_c84"}],
"maxItems": 20
}

The form's ad-count prefill is 20, while the schema default is 500. Set maxItems explicitly in API calls; 0 removes the limit. Indian categories are huge (Cars: 300 000+ ads, 40 per page): start small.

What to paste

InputDataNotes
Category https://www.olx.in/cars_c84Every ad of the category, paginated to the end of the list (40 ads per page)The category identifier is the _c<number> part of the URL you see on the site.
Ad https://www.olx.in/item/…-iid-123456789One ad recordRicher location (neighbourhood) and the ad's canonical URL.

You can mix both. Explicit ad URLs are processed first; an ad-page record takes precedence over its duplicate listing record. Ads are deduplicated by adId within the run.

Search pages (/q-…), the site's API and private pages (posting, account, chat…) are disallowed by the site's robots.txt and rejected with a reason. Location-prefixed category paths are not supported: paste the plain category URL.

Output

FieldMeaning
adIdOLX ad identifier (the -iid- part of the ad URL). Match ads on this, not on titles.
urlPublic ad page.
title, descriptionAd title and body as written by the advertiser.
priceAsking price as a number, in currency (₹ 15,90,000 gives 1590000). Null when the ad shows no price.
currency, priceDisplayCurrency published by OLX (INR) and the price exactly as displayed.
category, categoryIdOLX category name and identifier.
locationPublic location shown on the ad: neighbourhood, city, state. Levels the ad does not give are skipped.
postedAtAd creation date, ISO 8601 (site timezone).
mainInfoThe summary line the site shows under the title (e.g. 2023 - 26,000 km for a car). Often null for electronics.
attributesAd attributes keyed by the site's parameter key (make, model, year, petrol = fuel, transmission, mileage = km driven…), values as displayed. Depends on the category.
imagesPhoto URLs, in the site's order. Null when the ad has no photo.
isBusinessSellerTrue when OLX marks the seller as a business. Null on records that come from a single ad page.
position, page, sourceUrl, scrapedAtCollection provenance.

A field the site does not publish is null, never an empty string. attributes is an object (and images an array): account for them when transforming JSON or choosing spreadsheet columns.

Real output example

The following ad record was collected on 22 October 2026. It demonstrates the format, not today's price.

{
"adId": "1841264627",
"url": "https://www.olx.in/item/cars-c84-used-mahindra-thar-in-nurpur-himachal-pradesh-iid-1841264627",
"title": "Mahindra Thar LX D AT 4WD HT, 2023, Diesel",
"price": 1590000,
"currency": "INR",
"priceDisplay": "₹ 15,90,000",
"categoryId": "84",
"category": "Cars",
"location": "Nurpur, Himachal Pradesh",
"postedAt": "2026-10-01T13:48:26+05:30",
"mainInfo": "2023 - 26,000 km",
"attributes": {"make": "Mahindra", "model": "Thar", "variant": "LX D AT 4WD HT",
"year": "2023", "petrol": "Diesel", "transmission": "Automatic",
"mileage": "26,000 km", "first_owner": "1st"},
"images": ["https://apollo.olx.in:443/v1/files/sly31310pyre-IN/image", "…"],
"isBusinessSeller": true,
"description": "well maintaine car\n\nADDITIONAL VEHICLE INFORMATION:…",
"position": 1,
"page": 1,
"sourceUrl": "https://www.olx.in/cars_c84",
"scrapedAt": "2026-10-22T09:00:00+00:00"
}

Run summary

The OUTPUT record (and its readable SUMMARY page) tells, for every pasted URL, how many ads were delivered and why a URL delivered nothing (no_ads, not_found, blocked_by_site, …), plus the anomalies list — empty when the automatic checks found nothing unusual. An invalid URL never blocks the others; a URL that really fails is reported, and the run fails only if nothing at all could be collected.

Known limits

  • Location scope. Category pages list ads across all of India (the site's default). The Actor cannot pick a city: location-prefixed paths are not supported yet.
  • Attribute keys follow OLX. attributes uses the site's own keys, so the fuel attribute is keyed petrol and the km driven mileage. They vary by category (a Mobile Phones ad carries only make at the time of writing).
  • Prices are asking prices, set by advertisers; a price shown as negotiable or absent gives null.
  • Ad availability. OLX ads expire and get reposted: match on adId and keep scrapedAt with your exports. This Actor returns observations, not a maintained history.

Proxy

Not needed by default: the Actor browses like Chrome. Only enable the proxy configuration if your runs get blocked; the Actor then retries through it, and as a last resort through Apify datacenter then India residential proxies.