Co APIyad2.co.il ↗
Search and retrieve Yad2 apartment rentals, sales, and car listings. Filter by price, rooms, year, and location. Reveal seller contact details per listing.
What is the Co API?
The Yad2 API provides 6 endpoints covering Israel's largest classifieds marketplace, exposing apartment rental and sale listings, car listings, and seller contact details. search_cars returns paginated results with manufacturer, model, year, price, and engine type, while get_apartment_listing_details delivers full property data including room count, square meters, coordinates, and entrance date for any listing token.
curl -X GET 'https://api.parse.bot/scraper/665f0deb-f68c-43a6-a1b2-b66e972e5888/search_apartments_for_rent?page=1' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace yad2-co-il-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""
Yad2 API - Usage Example
Get your API key from: https://parse.bot/settings
"""
from parse_apis.yad2_api import Yad2, ListingCategory, ListingNotFound
client = Yad2()
# Search for Hyundai cars within a price range
for car in client.carlistings.search(manufacturer="21", price_min="50000", price_max="150000", limit=5):
print(car.manufacturer.text, car.model.text, car.price, car.vehicleDates.yearOfProduction)
# Drill into a single listing's full details
summary = client.carlistings.search(manufacturer="40", limit=1).first()
if summary:
detail = summary.details()
print(detail.manufacturer.textEng, detail.model.textEng, detail.km, detail.color.textEng)
# Reveal the seller's contact phone from the detail instance
contact = detail.contact()
print(contact.name, contact.phone, contact.isVirtualPhoneNumber)
# Search apartments for rent with room filter
for apt in client.apartmentlistings.search_rent(rooms_min=3, rooms_max=4, limit=3):
print(apt.price, apt.additionalDetails.roomsCount, apt.address.city.text)
# Get full apartment listing details
apt_summary = client.apartmentlistings.search_sale(limit=1).first()
if apt_summary:
apt_detail = apt_summary.details()
print(apt_detail.price, apt_detail.additionalDetails.squareMeter, apt_detail.dates.createdAt)
# Fetch a specific car listing by token directly, with error handling
try:
listing = client.carlistings.get(token="de1yzyw0")
print(listing.price, listing.engineType.textEng, listing.gearBox.textEng)
except ListingNotFound as exc:
print(f"Listing not found: {exc}")
print("exercised: carlistings.search / details / contact / carlistings.get / apartmentlistings.search_rent / search_sale / apt details")
Search for apartments for rent on Yad2. Returns a paginated list of rental listings from the specified region (defaults to region 1 - Center). Combines private, agency, and platinum listings. Supports filtering by price range and room count.
| Param | Type | Description |
|---|---|---|
| city | string | City ID (e.g. 5000 for Tel Aviv). |
| page | integer | Page number for pagination. |
| price_max | integer | Maximum monthly rent in ILS. |
| price_min | integer | Minimum monthly rent in ILS. |
| rooms_max | number | Maximum number of rooms (supports half-rooms, e.g. 4.5). |
| rooms_min | number | Minimum number of rooms (supports half-rooms, e.g. 2.5). |
{
"type": "object",
"fields": {
"count": "integer total number of items returned on this page",
"items": "array of rental listing objects with token, price, address, additionalDetails, metaData, tags",
"pagination": "object with total count and totalPages"
},
"sample": {
"data": {
"count": 20,
"items": [
{
"price": 8000,
"token": "jhootgb9",
"adType": "private",
"address": {
"city": {
"text": "תל אביב יפו"
},
"house": {
"floor": 4,
"number": 36
},
"street": {
"text": "דפנה"
}
},
"additionalDetails": {
"property": {
"text": "דירה"
},
"roomsCount": 3.5,
"squareMeter": 130
}
}
]
},
"status": "success"
}
}About the Co API
Real Estate Endpoints
search_apartments_for_rent and search_apartments_for_sale both return paginated arrays of listing objects scoped to a region (default: Center, region 1). Each item includes a token, price in ILS, an address object with city and neighborhood, additionalDetails with room count and square meters, metaData, and tags. Filter results with city (e.g. 5000 for Tel Aviv), price_min/price_max, and rooms_min/rooms_max — the latter supports half-room increments such as 2.5 or 4.5. The pagination object in each response carries total and totalPages so you can walk through the full result set with the page parameter.
get_apartment_listing_details accepts the 8-character alphanumeric token from any search result and returns the complete listing record: address with street-level coordinates (coords), additionalDetails covering roomsCount, squareMeter, property, propertyCondition, and entranceDate, plus a dates object with createdAt, updatedAt, and endsAt timestamps.
Vehicle Endpoints
search_cars returns up to 40 items per page. Each item exposes manufacturer, model, price, hand (ownership history), engineType, vehicleDates, and geographic address. Filter by manufacturer ID (e.g. 21 for Hyundai), model ID, year_min/year_max, price_min/price_max, and area. get_car_listing_details takes a listing token and returns km (odometer), color, gearBox, engineType, full address, and a metaData object that includes a coverImage, an images array, and a text description.
Contact Reveal
reveal_contact_phone takes a listing token and a category value of either realestate or vehicles and returns the seller's name and phone number. For dealer listings it also returns agencyName and agencyLogo. The isVirtualPhoneNumber boolean indicates whether the number is a forwarding line rather than a direct contact.
The Co API is a managed, monitored endpoint for yad2.co.il — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when yad2.co.il changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official yad2.co.il API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a Tel Aviv rental price tracker by querying search_apartments_for_rent with city=5000 and storing price per square meter over time.
- Aggregate Yad2 car listings by manufacturer and year to generate used-car market price distributions in Israel.
- Create a listing alert service that polls search_apartments_for_sale for new tokens matching a room count and budget range.
- Populate a CRM with seller contact details by calling reveal_contact_phone after each new listing token is discovered.
- Compare property entrance dates and listing durations using the createdAt and endsAt fields from get_apartment_listing_details.
- Build a neighborhood-level real estate dashboard by grouping listing coordinates from the address.coords field.
- Monitor specific car models for price drops by periodically fetching get_car_listing_details for tracked tokens.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.