imot.bg Search API returns Bulgarian properties for sale or for rent as JSON, up to 40 per page. Send a location text such as София or a location_id from the autocomplete route. Filter by deal, property type or rooms, price in EUR and area in m², sort and page through the results.
Every returned item honours your price, area, deal and type filters. Promoted ads that ignore a filter on imot.bg are removed, so a page can hold fewer than 40 items; filtered_out shows how many. imot.bg shows at most 1,000 results per search (25 pages). total_results is the count imot.bg prints and can be a lower bound. A page past the last page returns an empty list with the true page number. Promoted ads stay on top of a sorted list.
imot.bg has no numeric bedroom filter. bedrooms selects the apartment type by room count: 1 is a 1-room apartment, 5 is five rooms or more. Send either bedrooms or property_type.
Not covered: bathrooms and coordinates are not published by imot.bg and are never returned; bathroom, floor and year filters are rejected with a 422. Price history, districts and new-building project units are not part of this API.
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.
11 optional filters available.
string
Optional
City, region or neighbourhood text, for example София or Varna. Send this or location_id.
Austin, Texas
string
Optional
A location_id value from the autocomplete route. Send this or location.
1234567890
string
Optional
sale (default) or rent.
example
string
Optional
One of: ednostaen (1-room), dvustaen (2-room), tristaen (3-room), chetiristaen (4-room), mnogostaen (5+ rooms), mezonet, atelie-tavan, ofis, magazin, zavedenie, sklad, hotel, promishleno-pomeshtenie, biznes-imot, etazh-ot-kashta, kashta, vila, garazh-parkomyasto, zemedelska-zemya; sale also partsel; rent also staya and myasto. The list differs between sale and rent.
example
integer
Optional
Rooms class 1 to 5 (5 means 5 or more). Selects the 1-room to multi-room apartment type. Not with property_type.
10
integer
Optional
Minimum price in EUR (rent: per month).
10
integer
Optional
Maximum price in EUR.
10
integer
Optional
Minimum area in m2.
10
integer
Optional
Maximum area in m2.
10
string
Optional
newest, price_asc, price_per_sqm_asc or newest_3_days. Default is the imot.bg order.
relevance
integer
Optional
One-based page number, 1 to 26 (default 1). imot.bg lists at most 1,000 results.
1
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": "1b177299482767651",
"url": "https://www.imot.bg/obiava-1b177299482767651-prodava-dvustaen-apartament-grad-sofiya-benkovski",
"floor": {
"label": "2-\u0440\u0438 \u0435\u0442. \u043e\u0442 3",
"total": 3,
"number": 2
},
"phone": "0899752570",
"price": {
"amount": 105000,
"currency": "EUR"
},
"title": "\u041f\u0440\u043e\u0434\u0430\u0432\u0430 2-\u0421\u0422\u0410\u0415\u041d",
"agency": null,
"photos": [
"https://cdn3.focus.bg/imot/photosimotbg/1/651/1b177299482767651_XC.jpg",
"https://cdn3.focus.bg/imot/photosimotbg/1/651/1b177299482767651_Tp.jpg"
],
"summary": "62 \u043a\u0432.\u043c, 2-\u0440\u0438 \u0435\u0442. \u043e\u0442 3, \u0429\u0435 \u0431\u044a\u0434\u0435 \u0432\u044a\u0432\u0435\u0434\u0435\u043d \u0432 \u0435\u043a\u0441\u043f\u043b\u043e\u0430\u0442\u0430\u0446\u0438\u044f 2027 \u0433., \u0414\u0418\u0420\u0415\u041a\u0422\u041d\u041e \u041e\u0422 \u0418\u041d\u0412\u0415\u0421\u0422\u0418\u0422\u041e\u0420\u0410! \u041f\u0440\u043e\u0434\u0430\u0432\u0430 \u0441\u0435 \u0434\u0432\u0443\u0441\u0442\u0430\u0435\u043d \u0430\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442 \u0432 \u043d\u043e\u0432\u043e\u0441\u0442\u0440\u043e\u044f\u0449\u0430 \u0441\u0435 \u0441\u0433\u0440\u0430\u0434\u0430 \u043e\u0442 \u0432\u0438\u0441\u043e\u043a \u043a\u043b\u0430\u0441 \u0432 \u043a\u0432. ...",
"area_sqm": 62,
"location": "\u0433\u0440\u0430\u0434 \u0421\u043e\u0444\u0438\u044f, \u0411\u0435\u043d\u043a\u043e\u0432\u0441\u043a\u0438",
"deal_type": "sale",
"promotion": [
"TOP"
],
"price_text": "105 000 \u20ac",
"year_built": 2027,
"photo_count": 9,
"property_type": "2-\u0421\u0422\u0410\u0415\u041d",
"is_private_seller": true
},
{
"id": "1b179265846101800",
"url": "https://www.imot.bg/obiava-1b179265846101800-prodava-dvustaen-apartament-grad-sofiya-serdika",
"floor": {
"label": "2-\u0440\u0438 \u0435\u0442. \u043e\u0442 23",
"total": 23,
"number": 2
},
"phone": "0877 000 900",
"price": {
"amount": 108221,
"currency": "EUR"
},
"title": "\u041f\u0440\u043e\u0434\u0430\u0432\u0430 2-\u0421\u0422\u0410\u0415\u041d",
"agency": {
"id": "kmv",
"url": "https://kmv.imot.bg",
"logo": "https://www.imot.bg/images/logos/med/kmv.pic",
"name": "\u041a\u041c\u0412 \u041f\u0420\u041e\u041f\u042a\u0420\u0422\u0418 \u041c\u0415\u041d\u0418\u0414\u0416\u041c\u042a\u041d\u0422 \u0415\u041e\u041e\u0414",
"address": "\u0436.\u043a.\u0414\u0438\u0430\u043d\u0430\u0431\u0430\u0434, \u0443\u043b.\u0412\u0430\u0441\u0438\u043b \u041a\u0430\u043b\u0447\u0435\u0432 2, \u0435\u0442.2, \u043e\u0444\u0438\u0441 4"
},
"photos": [
"https://imotstatic1.focus.bg/imot/photosimotbg/1/800/1b179265846101800_Jw.jpg",
"https://imotstatic1.focus.bg/imot/photosimotbg/1/800/1b179265846101800_1w.jpg"
],
"summary": "70 \u043a\u0432.\u043c, 2-\u0440\u0438 \u0435\u0442. \u043e\u0442 23, \u0429\u0435 \u0431\u044a\u0434\u0435 \u0432\u044a\u0432\u0435\u0434\u0435\u043d \u0432 \u0435\u043a\u0441\u043f\u043b\u043e\u0430\u0442\u0430\u0446\u0438\u044f 2029 \u0433., \u041a\u041c\u0412 \u041f\u0440\u043e\u043f\u044a\u0440\u0442\u0438 \u041c\u0435\u043d\u0438\u0434\u0436\u043c\u044a\u043d\u0442 \u0412\u0438 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430 \u0437\u0430 \u043f\u0440\u043e\u0434\u0430\u0436\u0431\u0430 \u0443\u0434\u043e\u0431\u0435\u043d \u0434\u0432\u0443\u0441\u0442\u0430\u0435\u043d \u0430\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442 \u0432 \u043d\u043e\u0432 \u0436\u0438\u043b\u0438\u0449\u0435\u043d \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441 \u043e\u0442 ...",
"area_sqm": 70,
"location": "\u0433\u0440\u0430\u0434 \u0421\u043e\u0444\u0438\u044f, \u0421\u0435\u0440\u0434\u0438\u043a\u0430",
"deal_type": "sale",
"promotion": [
"TOP"
],
"price_text": "108 221 \u20ac",
"year_built": 2029,
"photo_count": 7,
"property_type": "2-\u0421\u0422\u0410\u0415\u041d",
"is_private_seller": false
}
],
"location": {
"name": "\u0421\u043e\u0444\u0438\u044f",
"location_id": "\u0433\u0440\u0430\u0434 \u0421\u043e\u0444\u0438\u044f~"
},
"pagination": {
"page": 1,
"has_next": true,
"per_page": 40,
"result_cap": 1000,
"total_pages": 25,
"filtered_out": 0,
"total_results": 1000,
"total_results_is_lower_bound": true
},
"applied_filters": {
"deal": "sale",
"page": 1,
"sort": "price_asc",
"bedrooms": 2,
"currency": "EUR",
"max_area": 90,
"min_area": 60,
"max_price": 200000,
"min_price": 100000,
"property_type": "dvustaen"
}
},
"meta": {
"billable": true,
"endpoint_family": "search"
},
"success": true
}
Errors
Handle these documented responses before retrying or showing customer-facing failures.
Validation Error
A required parameter or a range is invalid. This response is not billable.
{
"errors": {
"page": [
"imot.bg shows at most 1,000 results per search (25 pages). The page must be 26 or lower."
]
},
"message": "The request validation failed"
}Not Found
The location was not found. Use the autocomplete route. This response is not billable.
{
"meta": {
"billable": false,
"retryable": false,
"endpoint_family": "search"
},
"error": {
"code": "NOT_FOUND",
"message": "The requested resource was not found."
},
"success": false
}Upstream Unavailable
imot.bg could not be reached or returned data that does not match the request. This response is not billable and is retryable.
{
"meta": {
"billable": false,
"retryable": true,
"endpoint_family": "search"
},
"error": {
"code": "UPSTREAM_UNAVAILABLE",
"message": "imot.bg 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.