MENA Classifieds Scraper — Hatla2ee & OpenSooq
Pricing
Pay per usage
MENA Classifieds Scraper — Hatla2ee & OpenSooq
Scrape Hatla2ee and OpenSooq classified listings into a structured dataset: titles, prices with currency, city, post age and listing URLs. Covers Egyptian used cars and MENA classifieds ads across both marketplaces.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Ahmed Hazem
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 hours ago
Last modified
Categories
Share
What does MENA Classifieds Scraper do?
Scrapes classified listings from Hatla2ee (Egypt's largest car marketplace) and OpenSooq (the largest general classifieds network in MENA). It walks listing and pagination pages, follows each car detail page on Hatla2ee, and returns a structured Apify dataset — title, price, currency, city, post age, listing URL — exportable as JSON, CSV, Excel or XML, with API access, scheduling and monitoring on the Apify platform.
Why use it?
- Little competing coverage for Egyptian and Levant classifieds on data platforms.
- Use cases: lead generation for dealers and brokers, price monitoring, market research, Arabic-language AI training data.
- Runs over plain HTTP (fast and cheap); no login or cookies needed for public listings.
How to use
- Add the Actor to your Apify account.
- On the Input tab, keep or edit the Start URLs (prefilled with Hatla2ee cars + OpenSooq cars).
- Set Max items per source and Max pages (whole run) to control run cost.
- Click Start, then download the dataset from the Output tab (or pull it from the API).
Input
| Field | Type | Default | Description |
|---|---|---|---|
| start_urls | array | Hatla2ee /ar/car + OpenSooq /en/cars | Listing/category URLs on hatla2ee.com or opensooq.com. Both {"url": …} objects and plain URL strings work. |
| max_items | integer | 50 | Upper limit on listings pushed per source (0 = unlimited). A run with both sources can return up to twice this. |
| max_requests_per_crawl | integer | 20 | Hard cap on pages fetched by the whole run — listing, pagination and detail pages combined. This is the cost lever. |
| proxyConfiguration | object | Apify Proxy off | Optional. Supply Apify Proxy or your own proxy URLs if a source starts blocking runs. |
Output
Example dataset item (OpenSooq):
{"source": "opensooq","sourceUrl": "https://eg.opensooq.com/en/cars","listingUrl": "https://eg.opensooq.com/en/cars/287687414","listingId": "287687414","title": "كيا برايد 99 اوتوماتيك","priceText": "190,000 EGP","priceAmount": "190000","priceCurrency": "EGP","city": "Cairo","postedAt": "1 hour ago"}
Example dataset item (Hatla2ee — no city or postedAt on this source):
{"source": "hatla2ee","sourceUrl": "https://www.hatla2ee.com/ar/car/citroen/C5/7291889","listingUrl": "https://www.hatla2ee.com/ar/car/citroen/C5/7291889","listingId": "7291889","title": "سيتروين C5 2020 للبيع مدينة نصر","priceText": "1120000 EGP","priceAmount": "1120000","priceCurrency": "EGP","city": null,"postedAt": null}
You can download the dataset as JSON, CSV, Excel or XML.
Data table
| Field | Type | Description |
|---|---|---|
| source | string | hatla2ee or opensooq |
| sourceUrl | string | page the item came from |
| listingUrl | string | canonical listing URL (both sources) |
| listingId | string | site-native listing id |
| title | string | listing title, Arabic or English, as published (site boilerplate trimmed) |
| priceText | string | price as displayed by the source — 190,000 EGP (OpenSooq) or 1120000 EGP (Hatla2ee) |
| priceAmount | string | price digits only, e.g. 1120000 (cast to int/float downstream) |
| priceCurrency | string | currency code, e.g. EGP |
| city | string | seller city (OpenSooq; null on Hatla2ee) |
| postedAt | string | relative post age as shown (OpenSooq), e.g. 2 hours ago |
Keys are always present on every row, so CSV/Excel exports keep a stable column
set; fields a source does not expose come back null rather than being invented.
Pricing / cost estimation
How much does it cost to scrape Hatla2ee and OpenSooq listings?
Free to run at launch. You pay only the Apify platform usage your run generates — there is no charge for the data itself. Pay-per-event pricing (a small fee per extracted listing) is planned once the Actor has a track record of runs and reviews.
Cost is bounded by max_requests_per_crawl: a 20-page run stays within the free Apify plan's monthly credits, so a full test costs nothing. Pages that fail permanently are counted against that budget as well, so a blocked or unreachable target cannot quietly burn credits. For reference, one Hatla2ee detail page yields 1 listing, and a listing page yielded 29 detail links in testing.
Tips
- Deeper coverage:
max_requests_per_crawlis shared by every page type, and detail pages are fetched first (1 page ≈ 1 listing), so raise it together withmax_itemsto walk more listing pages. Hatla2ee pagination (/ar/car/page/2, …) and OpenSooq pagination (?page=2) are followed automatically. - The actor obeys
robots.txton both sources (their wildcard rules allow the paths this Actor scrapes) and fetches at a browser-like rate (~120 pages/minute, concurrency 3) to stay polite. - Blocked? Add
proxyConfiguration— residential proxies may be needed if a source tightens anti-bot rules. - Use Apify schedules for daily price-watch runs.
FAQ & disclaimers
- Personal data: listing titles and bodies come from public pages; phone numbers, seller names and contact details are deliberately not extracted.
- Content is provided as-is, no warranty of accuracy or completeness — marketplaces re-render their pages and fields may move.
- Scraping public listings is legal in most jurisdictions, but comply with the target sites' terms of service. You are responsible for how you use the data.
- This Actor is batch-only (no standby mode): it starts, collects, and exits.
- Issues or feature requests: use the Actor's Issues tab, or open an issue on the repository.