Haraj Saudi Arabia Real Estate Scraper: Listings & Demand
Pricing
from $20.00 / 1,000 real estate listings
Haraj Saudi Arabia Real Estate Scraper: Listings & Demand
Scrape haraj.com.sa, the largest classifieds site in Saudi Arabia, for property ads: price in SAR, area, rooms, REGA licence data, location, coordinates, photos and Arabic text. Also wanted requests, ad counts per category and a city and neighbourhood list. No proxy, no login.
Pricing
from $20.00 / 1,000 real estate listings
Rating
0.0
(0)
Developer
RecordsData
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Share

๐ Haraj Saudi Arabia Real Estate Scraper: Listings & Demand
Haraj Saudi Arabia Real Estate Scraper exports the real estate ads of haraj.com.sa, the largest classifieds site in Saudi Arabia, as structured data: price in SAR, area, rooms, REGA licence data, region, city, neighbourhood, coordinates, photos and the full Arabic description. It also returns the "wanted" requests of buyers and tenants, the ad counts per category and neighbourhood, and the city and neighbourhood list with ids. Export CSV, Excel, JSON or XML. No login, no API key, no proxy.
The Haraj Saudi Arabia Real Estate Scraper turns the largest informal property market of the Kingdom into a dataset you can filter, sort and join. On 2026-10-11 haraj.com.sa listed about 142,000 real estate ads in 27 categories and 17 regions: 49,512 apartments for rent, 23,144 plots of land for sale, 21,091 rest houses (istiraha) for rent, 9,692 villas for sale, 8,802 apartments for sale and 7,852 shops for lease transfer. The Actor reads the same JSON service the haraj.com.sa pages use for their own listings, so a run is fast: no browser, no proxy and no HTML parsing.
๐ฏ What does the Haraj real estate scraper do?
- Scrapes haraj.com.sa property ads (apartments, villas, houses, floors, buildings, land, commercial land, farms, rest houses, chalets, shops, offices, warehouses, rooms, compounds, halls and camps) for sale, for rent and for lease transfer (taqbeel).
- Returns price in SAR, price per square meter, area, rooms, bathrooms, furnished flag, building age, facade, street width, services, blueprint and plot number wherever the ad states them. About 6 ads in 10 carry the REGA licence block, and the Actor reads its values as typed fields.
- Gives region, city, neighbourhood and latitude and longitude on every ad, with a
locationAccuracyflag that says whether the point is the map pin the advertiser filed with the licence or the point the site itself stores for the ad. - Tells you who sells: individual or business, the agency name, the REGA ad licence number and its expiry date.
- Separates offers from wanted requests. Roughly one ad in three on Haraj is a person asking for a property ("ู ุทููุจ ุดูุฉ ููุงูุฌุงุฑ"). Those come out as their own record type, so offers stay clean and demand becomes a data source.
- Filters by operation, property type, place, keyword, recency, price, area, rooms, seller type and licence, and has an only-new mode for scheduled runs.
- Goes past the 1,000-ad window of one Haraj query by splitting searches by region and neighbourhood.
๐ Haraj property data: which fields do you get?
Every row is one record with recordType set to listing, wanted-request, market-stat or location. A listing row carries about 55 of the 77 columns, depending on what the ad states.
| Field | Type | Example |
|---|---|---|
recordType | string | listing, wanted-request, market-stat, location |
price / currency | number / string | 29000 / SAR |
pricePerM2 | number | 1450 |
areaBuilt / areaLand | number | 500 |
rooms, bathrooms | number | 4 |
region, city, neighborhood | string | Jeddah, ุงูููุตููุฉ |
latitude, longitude | number | 21.575073 |
sellerType, agencyName | string | business |
adLicenseNumber, licenseExpiresAt | string | 7201168528, 2027-04-10 |
postedAt, updatedAt | ISO date | 2026-10-11T13:00:58.000Z |
images, description, tags | array / string | photo URLs, Arabic text |
adCount (market-stat) | number | 14828 |
contactName, contactPhone | string | only with Include contact details |
Fill rates on 150 live listings from five searches checked on 2026-10-11: title, URL, region, city, coordinates and posting time 100 percent, price 93 percent, neighbourhood 95 percent, photos 95 percent, ad licence number 96 percent, description 85 percent. Rare columns: bathrooms 9 percent, furnished 13 percent. A missing value means the ad does not state it: the key is left out, never filled with a placeholder.
๐งพ Haraj listing example: what does a real result look like?
A real listing row (cloud run, 2026-10-11, photo list and description shortened):
{"imageUrl": "https://img4cdn.haraj.com.sa/userfiles30/2026-10-11/720x1280-1_-GO__MTc5MTcyMzUyMzI3MzI2MDU2NDM2NA.jpg","recordType": "listing","listingId": "190336616","url": "https://haraj.com.sa/11190336616/","title": "ุดูุฉ ููุงูุฌุงุฑ ุจุญู ุงูููุตููุฉ ู ูููุฉ ู ู 4 ุบุฑู ููุฏ 910","operation": "rent","propertyType": "apartment","category": "ุดูู ููุงูุฌุงุฑ","price": 29000,"currency": "SAR","pricePeriod": "year","priceBasis": "total","areaBuilt": 500,"rooms": 4,"condition": "used","buildingAge": "10+","services": ["water", "phone"],"region": "ุฌุฏู","regionEn": "Jeddah","city": "ุฌุฏู","neighborhood": "ุงูููุตููุฉ","country": "SA","latitude": 21.575073,"longitude": 39.176381,"locationAccuracy": "advertiser-pin","sellerType": "business","isPrivateSeller": false,"agencyName": "ู ุคุณุณุฉ ู ุญุงูุฑ ุงูุชูุฏู ุงูุนูุงุฑูุฉ","adLicenseNumber": "7201168528","licenseExpiresAt": "2027-04-10","postedAt": "2026-10-11T13:00:58.000Z","updatedAt": "2026-10-11T13:00:58.000Z","imageCount": 6,"language": "ar","sourceSite": "haraj.com.sa","scrapedAt": "2026-10-11T13:21:30.735Z"}
Titles and descriptions stay in Arabic; structured values are English; dates are ISO 8601 UTC; prices are numbers in SAR.
๐ How to scrape Haraj real estate in 4 steps
- Create a free account at console.apify.com and open this Actor.
- Pick what to collect (listings, wanted requests, market counts or locations), then the operation (sale, rent, lease transfer or all), the property types and the place. Leave everything empty to get the newest real estate ads across the Kingdom.
- Set Max Items and press Start. A 3-listing run finishes in a few seconds.
- Download the dataset as CSV, Excel, JSON or XML, or read it through the Apify API.
To read one ad, paste its haraj.com.sa URL in Start URLs or the number after the 11 in Ad IDs. To read a Haraj category or city page, paste a tag URL such as https://haraj.com.sa/tags/ุดูู ููุงูุฌุงุฑ ูู ุฌุฏู/.
๐ Haraj scraper vs other Apify Haraj Actors
Read on 2026-10-11 from the public Store pages of the Haraj Actors.
| Feature | This Actor | Zen Studio / GetAScraper | Fervent Bus |
|---|---|---|---|
| Price per 1,000 results | 20.00 USD per 1,000 listings | 1.49 USD / 0.67 to 2.99 USD | 5.00 USD plus start fee |
| Real estate fields | Licence, area, rooms, coordinates | Generic fields, location to neighbourhood | 9 generic fields |
| Wanted requests as own records | Yes | Not shown on page | Not shown on page |
| Only-new monitor mode | Yes | Not shown on page | Not shown on page |
Both other Actors are cheaper per listing, by a wide margin: this Actor costs several times more per 1,000 results, and it also charges separately for wanted requests, market counts and locations. They cover every Haraj category, cars and electronics included, while this Actor covers only real estate. A feature marked as not shown means the Store page does not mention it, not that it is missing. If you need cheap, broad classifieds data, pick one of them. If you need typed property columns, demand records and daily new-ad runs, this one fits.
๐ผ Haraj scraper use cases
- Real estate investors: compare
pricePerM2across regions and neighbourhoods, and export the shortlist with coordinates. - Agents and brokers: watch new ads in a neighbourhood with the only-new mode and send them to a CRM or spreadsheet.
- Demand researchers: collect wanted requests to see what buyers and tenants ask for, in which city and at what budget.
โ๏ธ Input
| Input | Type | Use |
|---|---|---|
operation | enum | sale, rent, transfer or any |
propertyTypes, regions, cities, neighborhoods | arrays | narrow the place and type |
minPrice, maxPrice, minArea, maxArea | integers | SAR and square meters |
recordTypes | array | listings, wanted-requests, market-stats, locations |
onlyNew, maxItems | boolean, integer | monitor mode and cap |
{"recordTypes": ["listings"],"operation": "rent","propertyTypes": ["apartment"],"cities": ["Jeddah"],"minPrice": 20000,"maxPrice": 60000,"maxItems": 50}
๐ Haraj scraper API, MCP and integrations
Run it from any language through the Apify API (curl, Python with apify-client, or JavaScript) with the input above (actor id RecordsData/haraj-sa-scraper).
Connect it to Make, Zapier, n8n, Google Sheets or Slack with the standard Apify integrations.
Use it from an AI agent (MCP)
Add the Actor to the Apify MCP server at https://mcp.apify.com?tools=RecordsData/haraj-sa-scraper. The agent sees one tool with this description: "Scrape real estate ads from haraj.com.sa in Saudi Arabia: offers, wanted requests, market counts and locations, with prices in SAR, area, rooms, coordinates and licence data."
Example agent prompt: "Use the Haraj Saudi Arabia Real Estate Scraper to get 30 apartments for rent in Jeddah between 20,000 and 60,000 SAR, then tell me the median price and the three neighbourhoods with the most ads." The agent fills operation, propertyTypes, cities, minPrice, maxPrice and maxItems, runs the Actor and reads the dataset.
๐ต How much does it cost?
Pay per event, no start fee, live prices on 2026-10-11:
| Event | Price |
|---|---|
| Listing | $0.02 ($20.00 per 1,000) |
| Wanted request | $0.01 |
| Market count | $0.005 |
| City or neighbourhood | $0.0025 |
Worked examples:
- 1,000 apartment listings: 1,000 x $0.02 = $20.00.
- 500 listings plus 200 wanted requests: $10.00 + $2.00 = $12.00.
- About 160 cities as location rows: $0.40.
- A daily only-new run with 40 new ads: $0.80.
Free users get a 10-item preview.
โ๏ธ Is it legal to scrape Haraj?
The Actor reads the public ads that haraj.com.sa shows to every visitor, without logging in or bypassing anything, at about 3 requests per second. Only real estate ads are read. Private sellers' names, mobile numbers, messaging links and e-mails are removed; personal contact fields come out only if you turn on Include contact details (off by default). Business data such as the agency name and the REGA licence number are returned. The Haraj terms of use forbid copying ads to republish them elsewhere: use the data for analysis, research, lead qualification and internal tools, and check the terms that apply to you. This is not legal advice.
FAQ: Haraj scraper questions and answers
Does the Haraj scraper need a proxy or a Haraj account? No. It calls the JSON service behind the website with plain requests, a few at a time with a pause between them. It needs no login, no API key and no proxy, and the cloud runs finished without a single blocked request. You only need an Apify account to start it.
How many real estate ads does Haraj have? On 2026-10-11 the site reported about 142,000 real estate ads in 27 categories: 49,512 apartments for rent, 23,144 plots of land for sale, 21,091 rest houses for rent, 9,692 villas for sale, 8,802 apartments for sale and 7,852 shops for lease transfer. The number moves every day. The market counts record type returns it per category and region or neighbourhood.
How many results can I get from one search? A single Haraj query stops at about 1,000 ads. The Actor notices when a search used up its window and splits it by the 17 Haraj regions, then by neighbourhood. A test run of apartments for rent across the Kingdom delivered 3,000 unique ads from 492 neighbourhoods in 224 seconds. Turn Split large searches off to stop at the first window, or narrow the place to a city.
What is a wanted request?
A third of the ads on Haraj are people asking for a property ("ู
ุทููุจ ุดูุฉ ููุงูุฌุงุฑ ุญู ุงููุฑุฌุณ"). The Actor tells them apart with a keyword rule on the title and the opening of the text, and ads that carry a REGA licence block are always offers. Wanted requests are their own record type with city, neighbourhood, operation, property type and, when the text names one, the budget.
Why is price sometimes a per-square-meter price?
Haraj stores no price field, so the price comes from the licence block or the advertiser's words. For land, the licence unit price is often per square meter. When a land, commercial land or farm sale shows a licence price under 30,000 SAR and a known area, price is the total, and pricePerM2 and advertisedPrice hold the advertised figure. priceBasis says per-m2 or total.
Are the prices always right?
Not always, because the advertisers type them. The licence block sometimes holds a "1" or a phone number where the price should be. The Actor drops prices outside plausible limits, tries the price written in the ad text, and otherwise leaves price out. In a run of 3,000 apartments for rent this removed 32 prices, 1 percent of the ads. priceSource says whether the number came from the licence or the text.
What does pricePeriod mean for rentals?
Saudi rents are usually quoted per year. For rentals, pricePeriod is year when the price is 12,000 SAR or more, otherwise the period the ad text states (year, month or day), otherwise year from 6,000 SAR. Below that and without a hint the field is left out, because the ad does not say. Sales have no period.
How accurate are the coordinates?
Every ad carries a geohash stored by the site, and most licensed ads also carry the map pin the advertiser filed. locationAccuracy is advertiser-pin or site-geohash. In a check of 225 pinned ads, 79 percent had the pin within 200 meters of the geohash; for the rest the pin was kilometres away. Treat site-geohash as neighbourhood level, with a median distance of 0.9 km to the neighbourhood centre.
Does it return phone numbers?
Not by default. The Actor removes the names and mobile numbers in the licence block, together with numbers typed into the description. With Include contact details on, rows add the responsible employee's name and mobile (contactName, contactPhone in +966 format), the licence holder when it is a person, the Haraj account name and id, and the registration number. Agency names are always returned.
How do I filter by neighbourhood? Put exactly one city in Cities (Arabic or English, for example Riyadh) and the neighbourhood in Neighbourhoods (with or without the word "ุญู"). Cities alone scan the whole city. Regions are the 17 Haraj hubs such as Riyadh, Jeddah, Eastern Province or Abha and Aseer. The neighbourhood list for each city comes from the locations record type.
How do I get only the new Haraj ads every day? Turn on Only new rows and schedule the Actor. It remembers the ads it already returned for the same search in a store of your own account and skips them, so each run returns just the new ads and you are not charged for skipped rows. Use Reset monitor memory to start over, and Monitor name to keep several searches apart.
Which language are the results in?
Titles, descriptions and place names are Arabic, the language of the site. Region names also come in English (regionEn) and the structured values such as operation and property type are English. Search keywords can be Arabic or English, so you can type villa with pool or the Arabic word for furnished. Dates are ISO 8601 in UTC and prices are plain numbers in SAR.
How do I get help or ask for a missing field? Write to contact.punkrecordsdata@gmail.com with the search you ran and the field you need. Bug reports with a run link are the fastest to fix. Tell us the input you used, the date of the run and what you expected to see, and we will check it against the live site and reply by e-mail.
Last updated: 2026-10-11