Export public OLX India classified listings into clean datasets. Search by keyword or run exact OLX India category/search URLs, then download listing prices, locations, seller labels, images, and product attributes as CSV, JSON, Excel, XML, or through the Apify API.
What does this actor do?
OLX India Listings Scraper turns public OLX India search results and category URLs into structured marketplace data. It collects listing titles, prices, locations, seller labels, images, attributes, posting timestamps, and source URLs so you can analyze classifieds without manually copying results.
What you can do
- Monitor used-car, property, electronics, furniture, jobs, services, and other OLX India categories.
- Track asking prices and fresh inventory for resale, marketplace research, and local lead generation.
- Export public seller/location signals without opening chat, contact, or login-only flows.
- Build alerts and dashboards from repeatable keyword or URL inputs.
Who is it for
- Marketplace analysts comparing prices and listing supply across OLX India categories.
- Resellers and dealerships tracking public inventory and seller/location signals.
- Real estate, vehicle, electronics, and local-services teams building lead lists from public classifieds.
- Data teams that need repeatable OLX India exports for dashboards, alerts, or research workflows.
Example input
For a custom run, provide one or more search queries or exact OLX India URLs:
{
"queries": ["car", "iphone"],
"locationId": "1000001",
"maxItems": 25
}
Example output
{
"url": "https://www.olx.in/item/maruti-suzuki-swift-dzire-iid-1678692832",
"adId": "1678692832",
"title": "New Maruti Suzuki swift Dzire T-Permit CNG CARS",
"descriptionSnippet": "Get your commercial vehicle with minimal documents!",
"price": 185000,
"priceDisplay": "₹ 1,85,000",
"currency": "INR",
"location": {
"country": "India",
"state": "Maharashtra",
"city": "Mumbai",
"locality": "Vakola",
"latitude": 19.079,
"longitude": 72.849
},
"categoryId": "85",
"postedAt": "2026-07-08T08:46:13+0000",
"createdAt": "2025-04-01T16:45:57+05:30",
"sellerName": "Carmitra",
"sellerType": "Regular",
"sellerId": "248018633",
"isBusiness": true,
"isKycVerifiedUser": false,
"favoriteCount": 11,
"status": "active",
"imageCount": 6,
"videoCount": 0,
"imageUrls": ["https://apollo.olx.in:443/v1/files/example-IN/image;s=1080x810"],
"attributes": {
"Brand": "Maruti Suzuki",
"Year": "2025",
"KM driven": "0 km"
},
"sourceUrl": "car",
"sourceType": "query",
"sourcePage": 1,
"detailStatus": "not_requested",
"descriptionRedacted": false,
"warnings": [],
"scrapedAt": "2026-07-08T09:00:00.000Z"
}
Input settings
| Field | Type | Description |
|---|---|---|
queries |
string[] | Keywords to search on OLX India, for example car, iphone, or flat for rent. |
startUrls |
array | OLX India search, category, filtered search, or listing URLs. Use this when you already have the exact OLX URL. |
locationId |
string | OLX numeric location ID for keyword searches. Default 1000001 searches all India. |
maxItems |
integer | Maximum number of listings to save across all inputs. |
includeDetails |
boolean | Optionally visit each public listing page to refresh descriptions, images, status, and other public fields. A failed enrichment leaves the base row intact with a warning. |
maxPages |
integer | Maximum pages per source, from 1 to 250. Repeated pages are stopped automatically. |
maxRequestRetries |
integer | Bounded retries for rate limits, temporary server errors, block pages, timeouts, and malformed responses. Default 2. |
maxRuntimeSecs |
integer | Total run budget from 40 to 270 seconds. The last 30 seconds are reserved for persistence and shutdown. |
proxyConfiguration |
object | Optional proxy settings. Direct traffic is the low-cost default; after a genuine direct-route failure, the Actor can continue once through standard Apify Proxy. Configure a proxy when you want to use it from the start. |
Tips and limits
- Keep first runs small, such as
maxItems: 25, while you validate your keywords. - Use exact
startUrlsfor city/category/filter combinations copied from OLX India. - Contact details, chat messages, private account pages, and login-only data are not collected.
- Direct traffic is the low-cost default and is currently sufficient for small runs. After bounded direct retries, a genuine route or response failure can trigger one automatic standard Apify Proxy fallback; explicitly configured proxy settings are always respected.
- A readable search with no matches or an exact listing that is no longer public finishes with
EMPTY. A block page, malformed response, or all-source failure does not masquerade as a successful empty scrape. - Larger runs save progressively and stop admitting requests before the platform timeout. Inspect
RUN_SUMMARYandRUN_CHECKPOINTbefore rerunning a partial job.
Schedule OLX monitoring
Save a small query or category URL as an Apify task, then attach a daily or weekly schedule. Use adId as the stable key when comparing datasets so repeated listings are not mistaken for new inventory.
API usage
Run the actor with cURL:
curl "https://api.apify.com/v2/acts/fetch_cat~olx-india-listings-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"queries":["car"],"maxItems":25}'
Run it with Node.js:
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/olx-india-listings-scraper').call({
queries: ['car'],
maxItems: 25,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.slice(0, 3));
Run it with Python:
from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/olx-india-listings-scraper').call(run_input={
'queries': ['car'],
'maxItems': 25,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items[:3])
Fetch results from the default dataset after the run succeeds:
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?format=json&clean=true"
MCP and agent usage
Use this actor from Apify MCP-compatible agents with:
https://mcp.apify.com/?tools=fetch_cat/olx-india-listings-scraper
Claude CLI example:
claude mcp add apify-olx-india "https://mcp.apify.com/?tools=fetch_cat/olx-india-listings-scraper"
MCP JSON configuration example:
{
"mcpServers": {
"apify-olx-india": {
"url": "https://mcp.apify.com/?tools=fetch_cat/olx-india-listings-scraper"
}
}
}
Example prompts:
- "Find 25 OLX India car listings and summarize asking prices by city."
- "Export public iPhone listings from OLX India and return seller names, prices, and image URLs."
- "Monitor this OLX India category URL and identify newly posted listings."
Support
Open an issue on the actor page or contact Apify support with:
- the run ID or run URL,
- the input JSON you used,
- a reproducible public URL, such as
https://www.olx.in/items/q-car, - the expected output, and
- the actual output you received.
Privacy and data handling
This Actor runs with Apify limited permissions and only processes data needed for the documented run. It uses search/listing inputs and public product, marketplace, or listing records to produce the output dataset and sends requests to public Olx India Listings pages/endpoints; results are stored in Apify run storage for your account. FetchCat does not use your inputs or outputs for advertising, does not use them for model training, and does not retain them outside the Apify run except for transient support debugging when you explicitly share run details. You are responsible for using the Actor lawfully, respecting the target site's terms, and avoiding unnecessary personal or sensitive data in inputs.