Yad2 Scraper - Israel Classifieds avatar

Yad2 Scraper - Israel Classifieds

Pricing

from $1.14 / 1,000 listings

Go to Apify Store
Yad2 Scraper - Israel Classifieds

Yad2 Scraper - Israel Classifieds

Yad2 scraper for Israel's classifieds: cars and other vehicles, property for sale or rent, and second-hand goods. Filter or paste a search URL and get one row per listing: Hebrew title, price in shekels, city, seller type, specs, photos, publish date. $1.20 per 1,000 listings.

Pricing

from $1.14 / 1,000 listings

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

21

Total users

10

Monthly active users

3 days ago

Last modified

Share

Pick a section of Yad2, add filters or paste a search URL, and get one row per Israeli classified listing for cars, property or second-hand goods: the Hebrew title, the price in shekels, city and area, private seller or dealer, photos, the publish date and the link.

One thing shapes every search. Yad2's vehicle and property sections have no keyword search at all, so there is no keyword box for those: you filter by manufacturer, area, region, price and year instead. The second-hand marketplace is the opposite. It has no browse-everything view, so it needs a search term.

InputA section plus filters, or Yad2 search URLs
OutputOne row per listing: Hebrew title, price in shekels, city and area, seller type, vehicle or property details, photos, publish date, link
Ceiling50,000 listings per run
Account neededNone
Price$1.20 per 1,000 listings on the Free plan, a little less on paid plans. The free plan's $5 a month covers about 4,000

🔍 What Yad2 Scraper does

Three parts of Yad2 in one actor. Vehicles covers cars, motorcycles, scooters, trucks and watercraft. Real estate covers apartments and houses for sale, for rent, and commercial property. Second-hand goods is Yad2's marketplace.

Names work in Hebrew or English on both sides. טויוטה and Toyota resolve to the same manufacturer, and so do אזור חיפה והסביבה and Haifa area. 69 manufacturers and 43 areas are recognised, and an unknown name is reported rather than silently ignored.

Real estate is read region by region, and each region is split into price bands.

📋 What data you get from each Yad2 listing

What you getField
Yad2's listing id, ad number and linklistingId, adNumber, url
Section and sub-section, with Yad2's category idssection, subSection, categoryId, subCategoryId
A title built from the listing's fields, Yad2's own headline and the descriptiontitle, yad2Title, description
Price in shekels and the previous priceprice, currency, previousPrice
Private or business seller, its name and id, and the contact namesellerType, sellerName, sellerId, contactName
City, area, region, neighbourhood, street and coordinatescity, area, areaId, region, neighborhood, street, latitude, longitude
When it was published and last updatedpublishedAt, updatedAt
Vehicles: make, model, trim, year, hand, engine and kilometresmanufacturer, model, subModel, year, hand, engineType, engineVolume, kilometers
Property: rooms, size, floor and typerooms, squareMeters, floor, propertyType
Second-hand goods: condition and tagscondition, tags
Photos and how manyimages, imageCount
The pasted URL that found it, and when it was readsearchUrl, scrapedAt

▶️ How to scrape Yad2 listings

  1. Open Yad2 Scraper and click Try for free.
  2. Pick a Section. For second-hand goods, type a Hebrew Search term.
  3. Add filters: manufacturer and area for vehicles, region or city id for property, price for both.
  4. Set Maximum listings. Start around 100 to see the output shape, then click Start.
  5. Download the dataset as JSON, CSV or Excel, or read it from the Apify API.

Run it with no section and no URL and you get one labelled sample row on its own, not charged.

💰 How much does it cost to scrape Yad2?

$1.20 per 1,000 listings on the Free plan. Paid plans pay a little less: $1.18 on Starter, $1.16 on Scale and $1.14 on Business. On the free plan, the $5 Apify gives you each month covers about 4,000 listings.

You pay per listing row delivered. The sample row, diagnostic rows, duplicates and listings dropped by the seller-type filter carry no listing charge, and a search that matches nothing produces none either. The detail pass costs nothing extra per listing.

📥 What you give it

{
"section": "vehicles",
"vehicleType": "cars",
"manufacturers": ["Toyota"],
"areas": ["Tel Aviv-Yafo area"],
"minYear": 2018,
"maxPrice": 120000,
"maxItems": 500
}
FieldDefaultWhat it is
sectionnone, the form starts at vehiclesvehicles, realestate or products. With no section and no URL you get the sample row.
vehicleTypecarscars, motorcycles, scooters, trucks, watercraft. Vehicles only.
dealTypenone, the form starts at forsaleforsale, rent or commercial. Real estate only.
querynone, the form starts at ספהThe search term for second-hand goods, which need one. Hebrew works best. Ignored on vehicles and real estate.
searchUrlsnonePaste Yad2 search URLs instead of filling the fields. Section, manufacturer, model, area, region, city, price, year, km and hand are all read out of the URL.
manufacturersnoneVehicles only. Hebrew or English names, or Yad2 ids. Each one is crawled as its own search.
areasnoneVehicles only. Hebrew or English area names, or ids.
regionsnoneReal estate only. Yad2 has exactly 8. Leave it empty to sweep all of them.
cityIdnoneReal estate only. Yad2's numeric city code, from the city= parameter of a Yad2 URL.
minRoomsnoneReal estate only, pasted real-estate URLs included. The fewest rooms, counted the way Yad2 counts them, so 3.5 works. Yad2 applies it. On a vehicle or second-hand search it stops that search with a free BAD_INPUT row.
minPrice, maxPricenoneIn new shekels.
minYear, maxYearnoneVehicles only.
maxKmnoneVehicles only. Upper bound on the odometer.
sellerTypeanyprivate or business. See the note below.
includeDetailsonOne extra request per listing for the publish date, the written Hebrew title and the description. Turn it off to run roughly twice as fast.
businessOnlyoffSecond-hand goods only. Shops rather than individuals.
maxItems100Total listings to return, 1 to 50,000.
proxyConfigurationnoneOptional. Only touch it if the run has to leave through your own servers.

sellerType is applied after the results come back, because Yad2 has no seller filter of its own. Listings that do not match are dropped and never charged. On vehicles the crawl also stops once a full round of results contains none of your seller type, so a narrow filter can return fewer than maxItems while more matches exist further down.

Rows are written at the end of the run, after the detail pass. Near its time limit, a run stops looking in time to write what it has, plus a free TIME_LIMIT row. For very large pulls with details on, split them across runs or turn includeDetails off.

A cityId with no regions sweeps all eight to find the right one. You will see a handful of NO_RESULTS rows next to your real results. They are not charged.

📤 What you get back

A real car listing, with most of the photo URLs cut:

{
"listingId": "bdevnzns",
"section": "vehicles",
"subSection": "cars",
"title": "טויוטה RAV4 Limited היברידי אוט׳ 2.5 (155 כ״ס) 2017",
"yad2Title": "טויוטה RAV4 שנת 2017 יד שלישית 204,000 ק\"מ",
"contactName": "גל",
"description": "טויוטה ראב4 ההיברידית, רכב אמין במיוחד עם חיסכון בדלק...",
"price": 82900,
"currency": "ILS",
"previousPrice": null,
"sellerType": "business",
"sellerName": "אוטו אדיר",
"sellerId": "5263113",
"categoryId": 1,
"subCategoryId": 21,
"city": "פתח תקווה",
"area": "פתח תקווה והסביבה",
"areaId": 4,
"region": null,
"neighborhood": null,
"street": null,
"latitude": null,
"longitude": null,
"publishedAt": "2026-07-02T12:48:55+03:00",
"updatedAt": "2026-09-14T08:45:58+03:00",
"manufacturer": "טויוטה",
"model": "RAV4",
"subModel": "Limited היברידי אוט׳ 2.5 (155 כ״ס)",
"year": 2017,
"hand": "יד שלישית",
"engineType": "היברידי בנזין",
"engineVolume": 2494,
"kilometers": 204000,
"rooms": null,
"squareMeters": null,
"floor": null,
"propertyType": null,
"condition": null,
"tags": ["גלגלי מגנזיום", "בקרת שמירת מרחק", "בקרת שיוט אדפטיבית"],
"images": ["https://images.yad2.co.il/Pic/202607/02/1_3/o/y2_1pa_010458_...", "..."],
"imageCount": 8,
"adNumber": "57171185",
"url": "https://www.yad2.co.il/vehicles/item/bdevnzns",
"searchUrl": null,
"scrapedAt": "2026-09-14T05:48:04.651Z"
}

Every section returns the same columns, and the ones that do not apply are null. A flat has no odometer reading and a car has no room count, and both fit one table.

FieldHow to read it
listingIdStable. Use it as your dedupe key.
titleBuilt from the structured fields. yad2Title is the wording Yad2 shows on the item page, and comes from the detail request.
price, previousPriceShekels. price is null rather than 0 when the seller did not publish one.
sellerTypeprivate or business where Yad2 says so, otherwise its own raw wording.
publishedAt, updatedAtIsrael time, with the offset. Only present after a successful detail request, and never on second-hand goods.
handHow many owners the vehicle has had, in Yad2's own Hebrew wording.
propertyTypeThe property type on real estate, and the product type on second-hand goods.
urlThe item page. Second-hand goods point at market.yad2.co.il instead.

🧾 Reading the output

Three kinds of row can land in your dataset.

RowHow to spot itCharged
A listingIt has a listingId and neither flag belowyes
The sample row_sample: trueno
A diagnostic_diagnostic: true and an errorCodeno

A real listing row carries no charged field, so filter on _sample and _diagnostic being absent.

CodeWhat it means
BAD_INPUTA manufacturer, area, region or URL you gave was not recognised, or minRooms was set outside real estate. The row names which one. When none of the names in a list are recognised, that search is not run at all, so it never falls back to everything. The rest of the run carries on.
NO_RESULTSThat search ran and matched nothing. Widen the price range or drop a filter.
NOT_SERVEDThis listing was not served this run. Re-run it later. Until 12 October 2026 this code was called BLOCKED.
TIME_LIMITThe run got close to its time limit and stopped on its own. The listings delivered before that are in the dataset and charged as usual. Give the run more time, or ask for fewer listings, to get the rest.

A run ends as failed only when the time limit stopped it before any listing came back.

If a detail request fails for one listing, the row is still returned and still charged, with publishedAt, description and yad2Title left null and nothing on the row to mark it. Check for a null publish date on vehicle and property rows if that field matters to you.

💡 What people use it for

  • Watching one manufacturer and area daily and picking up what was listed since yesterday, deduping on listingId.
  • Building a price curve for a model by year and mileage across a few thousand rows.
  • Pulling a rental region with sellerType on private to skip the agencies.
  • Tracking how long listings stay up, by comparing publishedAt against when they stop appearing.

🚧 What it does not do

  • No contact details. Yad2 does not publish phone numbers or emails, so neither does this. contactName and sellerName are as far as it goes.
  • No keyword search on vehicles or property. Yad2 has none there. Use the filters.
  • Second-hand goods need a search term and come back without a publish date, because that marketplace does not carry one.
  • Real estate is deep, not complete. A region reaches a few thousand listings through the price-band splitting, not everything Yad2 holds.
  • Roommates and agricultural machinery are not covered.
  • Second-hand results are not repeatable. Yad2 orders that marketplace differently on each request, so two identical runs return overlapping rather than identical sets.
  • A pasted URL wins. The form's year, kilometre, manufacturer and area fields are ignored for that search.
  • Rows are a snapshot. A listing can be edited, sold or removed afterwards, and scrapedAt records when it was read.
  • It is not an official Yad2 tool. Dami's Studio is independent and is not affiliated with or endorsed by Yad2, or by any other company named on this page.

🧭 Which classifieds scraper do you need?

If you wantUse
Israeli classifieds: cars, property and second-hand goodsThis one
Brazilian classified ads on OLXOLX Brazil Scraper
Russian classified ads on AvitoAvito Listings Scraper
UK classified ads by keyword, town or postcodeGumtree UK Scraper
Used and new cars across eight European countriesAutoScout24 Scraper

❓ Questions people ask

Do I need Hebrew?

Not for the filters. Manufacturer and area names work in English. The second-hand search term does better in Hebrew, because that is what sellers write.

Where do I find a city id?

Open the city on Yad2 and read the city= value out of the URL. 5000 is Tel Aviv-Yafo, 3000 Jerusalem, 4000 Haifa.

Why is publishedAt empty?

Either the listing is second-hand goods, which carry no date, or you turned the detail pass off, or that one detail request did not come back.

How many listings can I get?

Up to 50,000 in one run. A single vehicle search reaches about 59,000, so your cap is usually the limit rather than Yad2.

Do I need a Yad2 account?

No. Everything it reads is public, and there is nothing to sign in to.

Can I call it from code or connect it to an AI assistant?

Yes. The API tab has ready-made code for Python, JavaScript and the command line. For Claude, ChatGPT or another MCP client, connect https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/yad2-scraper. Either way the run happens on your Apify account at the same price.

These are public listings on public pages. They carry personal data all the same, such as a seller's first name, which GDPR and similar laws cover, so have a reason for collecting it. Apify's write-up on the legality of web scraping is a good starting point, and we are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page. Send the section and filters you used, or the URL, and the run ID. The errorCode on the diagnostic row usually names the problem on its own.