Hepsiemlak Search API returns one page of listings for a query. Pick the property class and listing type, narrow by place, price, rooms, bathrooms, area, building age, floor, heating, owner type, usage status and media, then sort and page. Each item has the price in TRY, price per square meter, gross and net area, rooms, floor, building age, location, photos, agency and agent with public phone numbers, badges and dates. Every filter is honoured on every item: a value the upstream cannot honour is rejected with 422, never ignored. pagination.total is the count the source reports and can include new-build project cards, which are skipped here (skipped_project_cards) and served by the projects route. Bathrooms, heating, usage status and owner type are filtered at the source and are not shown on search items; open the listings with the bulk route to read them. A page past the last result returns an empty list with the requested page number. Failed requests are not billed.
Run this endpoint
Endpoint
Parameters
Start with the required fields, then add optional filters only when your use case needs them.
Runnable path
This endpoint has no required query parameters.
37 optional filters available.
string
Optional
housing (default), commercial, land, timeshare or tourist.
example
string
Optional
sale (default), rent, seasonal_rent (housing only), transfer_sale and transfer_rent (commercial only) or swap_sale (land only).
example
array
Optional
Repeatable property type slug of the class, such as daire, villa, mustakil-ev, dukkan-magaza, tarla or otel. Use the filters route for the full list.
["example"]
string
Optional
City slug such as istanbul. Get slugs from autocomplete or filters.
example
array
Optional
Repeatable county slug such as kadikoy. Needs city.
["example"]
array
Optional
Repeatable district slug such as kadikoy-goztepe-mah. Read it from the filters route with a county.
["example"]
array
Optional
Repeatable area slug such as kadikoy-acibadem. Read it from the filters route with a county.
["example"]
array
Optional
Repeatable room layout: studyo, 1+1, 2+1, 3+1, 4+1 and so on up to 9-ve-uzeri. 3+1 and 3-1 both work. Several values match any of them.
["example"]
array
Optional
Repeatable: none, 1, 2, 3, 4 or 5_plus.
["example"]
array
Optional
Repeatable age band: 0 (new), 1_5, 6_10, 11_15, 16_20 or 21_plus.
["example"]
array
Optional
Repeatable floor label such as Zemin, 3, Bodrum or En Üst Kat. The filters route lists all labels.
["example"]
array
Optional
Repeatable heating label such as Kombi, Klima or Merkezi. The filters route lists all labels.
["example"]
array
Optional
Repeatable: owner, agency or bank.
["example"]
array
Optional
Repeatable: empty, tenant, owner or unknown.
["example"]
array
Optional
Repeatable: video, video_call or virtual_tour. Listings must have the media.
["example"]
integer
Optional
Minimum price in TRY, inclusive. Rent prices are per month.
10
integer
Optional
Maximum price in TRY, inclusive.
10
integer
Optional
Minimum gross area in square meters.
10
integer
Optional
Maximum gross area in square meters.
10
integer
Optional
Minimum net area in square meters.
10
integer
Optional
Maximum net area in square meters.
10
string
Optional
Updated within: today, last_3_days, last_week, last_15_days, last_month or last_2_months. It filters the update date, not the creation date.
2026-06-15
string
Optional
furnished or unfurnished.
example
boolean
Optional
true for furnished listings only.
true
boolean
Optional
true for listings with a balcony.
true
boolean
Optional
true for listings with an elevator.
true
boolean
Optional
true for listings with a garden.
true
boolean
Optional
true for listings with parking.
true
boolean
Optional
true for listings inside a housing complex.
true
boolean
Optional
true for listings that qualify for a loan.
true
boolean
Optional
true for listings open to a swap.
true
boolean
Optional
true for listings with a campaign.
true
string
Optional
Free text over the listing text, features and place. Use Turkish spelling with accents, 2 to 100 characters.
running shoes
integer
Optional
Only listings of this agency.
1234567890
string
Optional
relevance (default), price_asc, price_desc, updated_desc, updated_asc, created_desc or created_asc. price_desc starts with listings that have a mistyped huge price.
relevance
integer
Optional
One-based page number, default 1. A page past the last result returns an empty list.
1
integer
Optional
Listings per page, 1 to 50, default 20.
10
Response Schema
Example response fields are illustrative; inspect the JSON before integrating.
Example response fields
Scan these fields before integrating.
data
meta
success
{
"data": {
"items": [
{
"id": "129350-1379",
"url": "https://www.hepsiemlak.com/istanbul-kadikoy-rasimpasa-satilik/daire/129350-1379",
"area": {
"net_sqm": 90,
"gross_sqm": 100
},
"agent": {
"id": 1,
"name": "Example Agent",
"photo": null,
"phones": [
{
"type": "PHONE1",
"number": "+90212XXXXXXX",
"extension": null
}
]
},
"floor": "En \u00dcst Kat",
"price": 7050000,
"rooms": "3+1",
"title": "TA\u015eK\u00d6PR\u00dc CADDES\u0130 \u00dcZER\u0130 - S\u00d6\u011e\u00dcTL\u00dc\u00c7E\u015eME METROB\u00dcS MARMARAY YANI 3+1",
"agency": {
"id": 129350,
"url": null,
"logo": "https://example.com/photo.jpg",
"name": "REMAX GOAL",
"phones": [
{
"type": "PHONE1",
"number": "+90212XXXXXXX",
"extension": null
}
],
"rating": null,
"package": null,
"badge_year": null,
"short_name": "REMAX GOAL",
"branded_logo": "https://example.com/photo.jpg",
"member_since": null,
"licence_number": null
},
"badges": [],
"images": [
"https://example.com/photo.jpg",
"https://example.com/photo.jpg"
],
"bedrooms": 3,
"currency": "TRY",
"location": {
"city": "\u0130stanbul",
"county": "Kad\u0131k\u00f6y",
"district": "Rasimpa\u015fa"
},
"seasonal": null,
"deed_type": "Kat M\u00fclkiyeti",
"has_video": true,
"is_shared": true,
"created_at": "2026-06-12T10:51:59Z",
"updated_at": "2026-10-23T20:21:11Z",
"building_age": 31,
"listing_type": "sale",
"price_per_sqm": 70500,
"property_type": "Daire",
"has_video_call": true,
"property_class": "Konut",
"building_floors": null,
"has_virtual_tour": false,
"listing_type_label": "Sat\u0131l\u0131k",
"identification_number": "1234abcd",
"energy_certificate_number": null
}
],
"pagination": {
"page": 1,
"total": 18,
"per_page": 20,
"returned": 17,
"total_pages": 1,
"skipped_project_cards": 1
},
"applied_filters": {
"city": "istanbul",
"sort": "price_asc",
"rooms": [
"3+1"
],
"county": [
"kadikoy"
],
"price_max": 9000000,
"price_min": 5000000,
"listing_type": "sale",
"property_class": "housing"
}
},
"meta": {
"billable": true,
"endpoint_family": "search"
},
"success": true
}
Errors
Handle these documented responses before retrying or showing customer-facing failures.
Validation Error
A parameter is missing or outside its allowed values. This response is not billable.
{
"errors": {
"property_class": [
"The property_class field is invalid."
]
},
"message": "The request validation failed"
}Unknown Location
A city, county, district or area slug does not exist. Use a slug from autocomplete or filters. This response is not billable.
{
"meta": {
"billable": false,
"retryable": false,
"endpoint_family": "search"
},
"error": {
"code": "VALIDATION_ERROR",
"message": "The location is unknown. Use a slug from autocomplete or filters."
},
"success": false
}Upstream Unavailable
Hepsiemlak could not be reached or capacity is busy. Retry after a short pause. This response is not billable.
{
"meta": {
"billable": false,
"retryable": true,
"endpoint_family": "search"
},
"error": {
"code": "UPSTREAM_UNAVAILABLE",
"message": "Hepsiemlak could not be reached. Please retry shortly."
},
"success": false
}Generate Code with AI
Copy a ready-made prompt with all the endpoint details, parameters, and example responses. Paste it into ChatGPT, Claude, or any AI assistant to instantly generate working code.
Try It Live
Test this endpoint in our interactive playground with real data.