Yad2 API & Scraper
The Yad2 API returns Israel's largest classifieds site as clean JSON in five actions: cars/search for cars, motorcycles, scooters, trucks and watercraft, real_estate/search for property for sale, for rent and commercial property, products/search for the second-hand products section, locations for Yad2's own place names and ids, and listing for the full record of any ad.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
Vehicle rows carry the price, make, model and sub-model with Yad2's ids, production year, hand (the number of owners, with 0 for new from the importer), fuel, engine size, area, dealer or private seller with the dealer's name, the dealer's warranty and service commitments, monthly-payment terms and Yad2's paid promotion tier. Property rows carry the price or monthly rent, the earlier price after a price drop, property type, rooms, size, floor, street, neighbourhood, city and map coordinates, and private owner or agency. Every filter was checked live to actually narrow the result and every returned row to match it - make, model, year, price, mileage, hand, fuel, gearbox, dealers only for vehicles; region, city or neighbourhood by name, property type, rooms, price, size, floor, free text, parking, elevator, safe room, price dropped and agencies only for property. listing adds mileage, gearbox, colour, horse power, ownership history, test validity and the fields the Ministry of Transport verified for vehicles, and amenities, entry date, building floors, balconies, parking, distance to a shelter and the agency's licence number for property; a private seller's name is withheld. On 20 listings in 8 categories the price, city, mileage, hand, year, rooms, size and floor matched Yad2's own second listing record on every one. No Yad2 account, no browser - one ReefAPI key and the standard { ok, data, meta, error } envelope.
Five Yad2 prices that are not simply a price
A Yad2 ad can show a price of 1 shekel, no price at all but monthly payments, a rent that is really a placeholder, or a price that has already been cut. Each looks like an ordinary number. This engine labels every one.
| Listing (section) | price | flag | the catch |
|---|---|---|---|
| Toyota Yaris Cross 2026, dealer car | null | price_placeholder: true, price_published_raw: 1 | Dealers publish 1 shekel to mean 'call us'; anything under 100 shekels is never returned as a price |
| Toyota RAV4 2026, dealer car | null | price_not_published: true + payment_installments | No price, only monthly payments - and Yad2's own 'with price' filter still lets it through; this engine does not |
| Warehouse, 1,150 m², Tel Aviv, commercial rent | null | price_placeholder: true, price_published_raw: 45 | 45 shekels a month for 1,150 m² is not a rent; the number is kept in price_published_raw |
| Apartment, 4.5 rooms, agency sale | 4250000 | price_before_drop: 4500000 | The earlier price is its own field and never replaces the price |
| Jerusalem rental, 5 rooms | 15400 | price_period: month, price_before_drop: 16500 | Rents are monthly; this one was cut from 16,500 and is paid 13 times a year |
Measured on 2026-09-16. Yad2's own price filter keeps ads without a price: a furniture search up to 500 shekels returned 10 unpriced ads in 36. With a price filter, this engine removes them and says how many it removed. Classified ads come and go - the rows above are dated.
Real request and response JSON
Captured from the indexed primary action, cars/search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/yad2/v1/cars/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"manufacturer_id": 19
}
}{
"ok": true,
"meta": {
"api": "yad2",
"endpoint": "cars/search",
"mode": "live",
"latency_ms": 343.1,
"record_count": 40,
"bytes": 81904,
"cache_hit": false,
"pagination": {
"page": 1,
"has_more": true,
"page_size": 40,
"total": 4167
}
},
"data": {
"listings": [
{
"ad_id": "pqwuu222",
"url": "https://www.yad2.co.il/vehicles/item/pqwuu222",
"vertical": "vehicles",
"title": "טויוטה קורולה קרוס",
"price": 134900,
"currency": "ILS",
"price_not_published": false,
"price_placeholder": false,
"price_published_raw": null,
"vehicle_type": "car",
"make": {
"id": 19,
"name": "טויוטה",
"name_en": null
},
"model": {
"id": 11150,
"name": "קורולה קרוס",
"name_en": null
},
"sub_model": {
"id": 114349,
"name": "Adventure היברידי אוט׳ 1.8 (97 כ״ס)"
},
"year": 2023,
"hand": 1,
"hand_label": "יד ראשונה",
"fuel": {
"id": 2101,
"name": "היברידי בנזין",
"name_en": null
},
"engine_cc": 1798,
"motorcycle_type": null,
"licence_class": null,
"special_type": null,
"special_model": null,
"watercraft_type": null,
"area": {
"id": 1,
"name": "אזור תל אביב יפו"
},
"seller_type": "dealer",
"dealer": {
"id": 1046048,
"name": "חנונה סימון רכבים",
"logo": "https://images.yad2.co.il/Pic/TradeMiniSite/y2_1_06268_20230115120137.jpeg?t=1789566018669"
},
"promotion_tier": 4,
"tags": [
"גלגלי מגנזיום",
"בקרת שמירת מרחק",
"בקרת שיוט אדפטיבית"
],
"dealer_commitments": [
"אחריות על סוללה (96 חודשים)",
"ספר טיפולים מלא",
"טופל במוסך מורשה בלבד"
],
"payment_installments": null,
"trade_in_offered": true,
"images": [
"https://images.yad2.co.il/Pic/202609/14/1_8/o/y2_1pa_010217_20260914110523.jpeg",
"https://images.yad2.co.il/Pic/202609/14/1_8/o/y2_1pa_010737_20260914110522.jpeg",
"https://images.yad2.co.il/Pic/202609/14/1_8/o/y2_1pa_010787_20260914110521.jpeg"
],
"image_count": 10
},
{
"ad_id": "550bebxx",
"url": "https://www.yad2.co.il/vehicles/item/550bebxx",
"vertical": "vehicles",
"title": "טויוטה היילקס",
"price": 134000,
"currency": "ILS",
"price_not_published": false,
"price_placeholder": false,
"price_published_raw": null,
"vehicle_type": "car",
"make": {
"id": 19,
"name": "טויוטה",
"name_en": null
},
"model": {
"id": 10231,
"name": "היילקס",
"name_en": null
},
"sub_model": {
"id": 104318,
"name": "Active ידני 2.4 (150 כ״ס) [2016-2018]"
},
"year": 2018,
"hand": 1,
"hand_label": "יד ראשונה",
"fuel": {
"id": 1102,
"name": "דיזל",
"name_en": null
},
"engine_cc": 2393,
"motorcycle_type": null,
"licence_class": null,
"special_type": null,
"special_model": null,
"watercraft_type": null,
"area": {
"id": 5,
"name": "אזור חיפה והסביבה"
},
"seller_type": "dealer",
"dealer": {
"id": 327309,
"name": "רכב קליל",
"logo": "https://images.yad2.co.il/Pic/TradeMiniSite/logo3_2_178017_20140120140158.jpg?t=1789565945456"
},
"promotion_tier": 4,
"tags": [
"יד ראשונה",
"חסכוני",
"בקרת שמירת מרחק"
],
"dealer_commitments": [
"ספר טיפולים מלא",
"טופל במוסך מורשה בלבד",
"בדיקה מלאה"
],
"payment_installments": null,
"trade_in_offered": true,
"images": [
"https://images.yad2.co.il/Pic/202609/10/1_2/o/y2_1pa_010662_20260910120217.jpeg",
"https://images.yad2.co.il/Pic/202609/10/1_2/o/y2_1pa_010726_20260910120221.jpeg",
"https://images.yad2.co.il/Pic/202609/10/1_2/o/y2_1pa_010011_20260910120221.jpeg"
],
"image_count": 10
},
{
"ad_id": "dfo1u0yc",
"url": "https://www.yad2.co.il/vehicles/item/dfo1u0yc",
"vertical": "vehicles",
"title": "טויוטה קורולה",
"price": 84900,
"currency": "ILS",
"price_not_published": false,
"price_placeholder": false,
"price_published_raw": null,
"vehicle_type": "car",
"make": {
"id": 19,
"name": "טויוטה",
"name_en": null
},
"model": {
"id": 10226,
"name": "קורולה",
"name_en": null
},
"sub_model": {
"id": 104261,
"name": "Sun אוט׳ 1.6 (132 כ״ס) [2019-2021]"
},
"year": 2019,
"hand": 3,
"hand_label": "יד שלישית",
"fuel": {
"id": 1101,
"name": "בנזין",
"name_en": null
},
"engine_cc": 1598,
"motorcycle_type": null,
"licence_class": null,
"special_type": null,
"special_model": null,
"watercraft_type": null,
"area": {
"id": 17,
"name": "אזור נתניה והסביבה"
},
"seller_type": "dealer",
"dealer": {
"id": 8676397,
"name": "buyandsmile",
"logo": "https://images.yad2.co.il/Pic/TradeMiniSite/84350f53-4318-4848-9f67-30410cda2145.png?t=1789565945675"
},
"promotion_tier": 4,
"tags": [
"גלגלי מגנזיום",
"בקרת שמירת מרחק",
"בקרת שיוט אדפטיבית"
],
"dealer_commitments": [
"אחריות שלדה, מנוע וגיר (3 חודשים)",
"אחריות מהסוכנות (3 חודשים)",
"בדיקה מלאה"
],
"payment_installments": null,
"trade_in_offered": true,
"images": [
"https://images.yad2.co.il/Pic/202609/06/1_8/o/y2_1pa_010859_20260906103733.jpeg",
"https://images.yad2.co.il/Pic/202609/06/1_8/o/y2_1pa_010243_20260906103725.jpeg",
"https://images.yad2.co.il/Pic/202609/06/1_8/o/y2_1pa_010619_20260906103725.jpeg"
],
"image_count": 6
}
],
"total": 4167,
"total_pages": 105,
"count": 40,
"page": 1,
"has_more": true,
"vehicle_type": "car",
"sort": null,
"placeholder_price_dropped": 0
}
}What the Yad2 API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| cars/search | Search Yad2 vehicles - cars, motorcycles, scooters, trucks and watercraft: price (placeholder and missing prices labelled), make, model and sub-model with ids, year, hand (owner count), fuel, engine size, area, dealer or private seller with the dealer's name, the dealer's warranty and service commitments, monthly-payment terms, paid promotion tier, tags and photos. Filter by make, model, year, price, mileage, hand, engine size, fuel, gearbox, body family, seats, area, dealers only, with price or photos; sort by price. | Price-intelligence teams call cars/search to search Yad2 vehicles - cars, motorcycles, scooters, trucks and watercraft. | vehicle_type, manufacturer_id, model_id, year_min, year_max, ... |
| real_estate/search | Search Yad2 real estate - apartments, houses and other property for sale or rent, and commercial property: price or monthly rent, earlier price after a price drop, property type, rooms, size, floor, full address with street, neighbourhood and map coordinates, private or agency with the agency's name, exclusivity, tags and photos. Location by region, city, area, neighbourhood or street id, or a place name resolved through Yad2's own address search. Filter by property type, rooms, price, size, floor, keyword, parking, elevator, balcony, safe room, air conditioning, accessibility, furnished, renovated, price dropped, new from contractor, agencies only. | Classifieds aggregators call real_estate/search to search Yad2 real estate - apartments, houses and other property for sale or rent, and commerc…. | deal_type, region, location, city_id, area_id, ... |
| products/search | Browse Yad2's second-hand products section (business sellers: furniture, electrical appliances, phones, computers, businesses for sale and more) by category and sub-category: price (missing and placeholder prices labelled), condition, city and area, category breadcrumb, dates and photos. Filter by category, sub-category, price and area; sort by price. Yad2 offers no keyword search here. | Resale and arbitrage tools call products/search to get browse Yad2's second-hand products section (business sellers. | category_id, subcategory_id, price_min, price_max, area_id, ... |
| locations | Yad2's own address search: cities, neighbourhoods, areas and streets matching a Hebrew name, each with the region, area, city, neighbourhood and street ids that real_estate/search and cars/search accept. | Lead-generation teams call locations to get yad2's own address search. | query, max_rotations |
| listing | The full Yad2 listing by id or URL, from any section. Vehicles: mileage, gearbox, colour, horse power, seats, doors, body type, ownership and original ownership, test validity and last test mileage, fields the Ministry of Transport verified, equipment list, description, dealer, dates created/updated/bumped/expires. Real estate: price or rent and payments per year, price before a drop, rooms, size, built and garden size, floor of building floors, balconies, parking, entry date, condition, amenities, full address and coordinates, distance to a shelter, agency with licence numbers, description, dates. Products: title, price, category, condition, city, description, photos. Private sellers' names withheld. | Price-intelligence teams call listing to get the full Yad2 listing by id or URL, from any section. | ad_id, vertical, include_pii, max_rotations |
Call cars/search from your stack
curl -X POST https://api.reefapi.com/yad2/v1/cars/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"manufacturer_id":19}'import requests
r = requests.post(
"https://api.reefapi.com/yad2/v1/cars/search",
headers={"x-api-key": REEF_KEY},
json={
"manufacturer_id": 19
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/yad2/v1/cars/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"manufacturer_id": 19
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.yad2.cars/search with {"manufacturer_id":19}.Who uses this API and why
- Car dealers and valuation tools track used-car prices by make, model, year, hand and mileage across Israel with cars/search, with placeholder prices and payment offers kept apart.
- Property analysts follow asking prices, monthly rents and price drops by city, neighbourhood, rooms and size with real_estate/search.
- Real-estate and lead-generation teams map which agencies advertise where, without collecting private owners' names.
- Market researchers compare private and dealer supply, paid placement and new-project promotion across Yad2's sections.
Questions developers ask before integrating
Which parts of Yad2 does the API cover?
Vehicles - cars, motorcycles, scooters, trucks and watercraft - with cars/search; property for sale, for rent and commercial property with real_estate/search; and Yad2's second-hand products section with products/search. listing returns the full record of an ad from any of them, and locations turns a Hebrew place name into the region, city, neighbourhood and street ids the searches accept. On 2026-09-16 Yad2 listed 60,147 cars, 8,868 rentals in the Tel Aviv region and 10,179 homes for sale in Tel Aviv-Yafo. Yad2 is Israeli only; text is in Hebrew and prices are in shekels (ILS).
Is a private seller's name or phone number included?
No. A private seller's name is withheld, and so is the personal name of an agency's broker; phone numbers are never returned. The listing still says whether the seller is private, a dealer or an agency. A dealer's or agency's name, logo and licence number are returned. The address and map position of a property are returned because Yad2 publishes them on every property ad.
How do I tell a missing price, a placeholder price and a price drop apart?
By the fields on every row. No price published: price null and price_not_published true. A token price such as 1 shekel, or anything under 100 shekels: price null, price_placeholder true, and the number in price_published_raw. A price that was cut: price is the current price and price_before_drop the earlier one. Rents carry price_period month. Monthly-payment offers on dealer cars come separately as payment_installments.
Are paid placements marked?
Yes. Property searches carry three paid 'platinum' ads per page on Yad2; they are left out of the results by default and counted in sponsored_dropped, and include_sponsored returns them separately. New-project promotions are counted in projects_dropped. Vehicle results keep Yad2's own order, which puts paid tiers first, and every row carries promotion_tier - on 2026-09-16 the first page of Toyota ads was all dealers, with private sellers starting deeper in the list.
Do the filters really narrow the results?
Each one was checked live on 2026-09-16: the filtered total had to be smaller than the unfiltered one, and every returned row had to match where the row shows the value. Toyota cars (4,188): 2018 to 2020 732, 50,000 to 90,000 shekels 1,065, first hand 1,248, manual 96, electric 19. Homes for sale in Tel Aviv-Yafo (10,179): 3 to 4 rooms 5,601, 2 to 3 million shekels 1,360, floors 5 to 10 2,346. Rentals in the Tel Aviv region (8,868): agencies 5,361, price dropped 1,256. A filter Yad2 does not offer for a vehicle type - a make filter for trucks, mileage for boats - is rejected with an error instead of being silently ignored.
Can I search by city or neighbourhood name?
Yes. real_estate/search accepts a Hebrew place name as location - a city, neighbourhood, area or street - and resolves it with Yad2's own address search; the match used comes back as location_resolved. The locations action lists every match with its ids. Florentin resolved to the Tel Aviv neighbourhood and returned its 250 rentals; Haifa returned 4,496 homes for sale.
Can I look up an ad by its URL?
listing accepts the Yad2 ad id (the token at the end of the URL) or the full vehicle or property URL. Every search row carries its ad id. An ad that has been removed returns NOT_FOUND.
What does Yad2 not publish?
A private-sellers-only filter - vehicles can be limited to dealers and property to agencies, and every row says who is selling. A keyword search for vehicles or second-hand products (property has one). Sorting for property searches. Dates on search rows - listing carries created, updated, re-promoted and expiry dates. Fuel and gearbox for motorcycles, and rooms for most commercial property. The second-hand products section is made up of business sellers.
What is the Yad2 API?
Yad2 API is a ReefAPI endpoint group for israel's #1 classifieds: cars, real estate and second-hand listings as json. It returns live JSON through POST requests under /yad2/v1.
Is the Yad2 API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Yad2 calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Yad2 login or account?
No login to Yad2 is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Yad2 data?
The page example is captured from a live cars/search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Yad2 API use?
Yad2 actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call Yad2 from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call yad2 actions with the same key, credit pool and JSON envelope used by normal REST requests.