OLX India Listings Scraper
Pricing
from $0.07 / 1,000 result extracteds
OLX India Listings Scraper
Scrape public OLX India classified listings by keyword, category, location, or listing URL for prices, sellers, images, and attributes.
Pricing
from $0.07 / 1,000 result extracteds
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
14 days ago
Last modified
Categories
Share
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.
Ready-to-run examples
- Track OLX India used car listings — export a small current sample with prices, locations, seller labels, images, and stable ad IDs.
- Compare OLX India iPhone prices — collect a bounded dataset for resale-price and local-inventory research.
- Enrich OLX India bike listings — start from an exact public search URL and refresh available detail-page fields.
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 default; enable a proxy only when your runs show blocking. |
Output fields
| Fields | Description |
|---|---|
url, adId, title, descriptionSnippet | Canonical listing identity and contact-redacted public description text. |
price, priceDisplay, currency | Numeric and displayed asking price. |
location | Country, state, city, locality, latitude, and longitude when available. |
categoryId, categoryName, status, postedAt, createdAt, validTo | Category and public lifecycle timestamps/status. |
sellerName, sellerType, sellerId, isBusiness, isKycVerifiedUser, eliteSeller | Public seller labels and flags. |
hasPhoneParam | Contact-availability indicator only; no number is revealed. |
favoriteCount, imageCount, videoCount | Public listing counters. |
imageUrls, images | Public image URLs and available dimensions. |
attributes, rawAttributes | Normalized and source-labelled category attributes. |
sourceUrl, sourceType, sourcePage | Provenance for the query or URL that produced the row. |
detailStatus, descriptionRedacted, warnings | Per-row enrichment and data-quality diagnostics. |
scrapedAt | ISO timestamp for the saved row. |
The key-value store also contains RUN_SUMMARY. If the Actor reaches its safe deadline, RUN_CHECKPOINT retains pending source/page work so an Apify resurrection can continue without re-saving existing listing IDs.
Pricing
This Actor uses Apify pay-per-event pricing. The prices below come from the current Actor pricing configuration. Apify public plans map to Store discount tiers, so the table shows both the user-facing plan context and the pricing tier name. The final price shown in Apify depends on the user account plan and any custom agreement.
| Event | What is charged | Price |
|---|---|---|
start | One-time fee charged when a run starts. Covers fixed startup cost (init, proxy warmup, first HTTP setup). | $0.005 |
| Event | What is charged | Free / no discount | Starter / Bronze | Scale / Silver | Business / Gold | Custom / Platinum | Custom / Diamond |
|---|---|---|---|---|---|---|---|
result | Charged per OLX India listing extracted. | $0.12824 / 1,000 | $0.11151 / 1,000 | $0.08698 / 1,000 | $0.06691 / 1,000 | $0.04461 / 1,000 | $0.03122 / 1,000 |
Apify may also charge platform usage for compute, storage, proxies, or data transfer outside this Actor pricing. Check the Actor run and the Apify Pricing tab for the exact cost shown to your account.
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. Enable an Apify proxy only when your own run summary reports blocking.
- A readable search with no matches finishes with
EMPTY; a block page, malformed response, unavailable-only direct listing input, 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 ApifyClientimport osclient = 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().itemsprint(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."
Related actors
Legality
This actor collects publicly visible OLX India listing data. Do not use it to collect private account data, reveal contact details, bypass login-only flows, spam sellers, or violate OLX India terms or applicable law. Review your use case and retention policy before running large recurring jobs.
FAQ
Does this actor require an OLX account? No. It exports public listing data visible without logging in.
Can it reveal phone numbers or chat messages? No. Contact/chat flows are login-only or user-action flows and are intentionally out of scope.
Do I need an Apify proxy?
Usually not for a small run. Direct traffic is the default. If RUN_SUMMARY reports a block, retry with an explicitly configured route; proxy traffic can add platform cost.
Does this Actor use GraphQL? No. Current OLX India pages and reviewed builders use the public relevance JSON feed plus public HTML/listing-page fallback. No stable OLX India GraphQL listing interface was found, so the Actor does not add an unsupported GraphQL dependency.
What happens when optional listing details fail?
The base search row is preserved, detailStatus becomes unavailable, and warnings explains the enrichment failure. Failed optional enrichment is not saved or charged as a separate result.
What should I include when asking for support? Share the run ID or run URL, your input JSON, expected output, and actual output so the issue can be reproduced.
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.