Discover/imot API
live

imot APIimot.bg

Search Bulgarian property listings for sale and rent, get full listing details, district-level average prices, and filter options from imot.bg via a single API.

Endpoint health
verified 4d ago
search_listings_for_sale
search_listings_for_rent
get_average_prices
get_search_form_options
get_listing_details
5/5 passing latest checkself-healing
Endpoints
5
Updated
26d ago

What is the imot API?

The imot.bg API provides access to Bulgaria's major real estate marketplace through 5 endpoints covering for-sale listings, rental listings, individual property details, district average prices, and search filter options. The get_listing_details endpoint returns structured data including price in EUR and BGN, area, floor, construction type, photo URLs, contact phone, and a full description text — all from a single listing ID or URL.

Try it
Page number for pagination.
Currency for prices.
Location filter in Bulgarian (e.g. 'град София', 'Пловдив').
Maximum area in square meters.
Minimum area in square meters.
Maximum price in the specified currency.
Minimum price in the specified currency.
Sort order for results. 2 = newest first.
Comma-separated property type names in Bulgarian. Accepted values: 1-СТАЕН, 2-СТАЕН, 3-СТАЕН, 4-СТАЕН, МНОГОСТАЕН, МЕЗОНЕТ, АТЕЛИЕ/ТАВАН, ОФИС, МАГАЗИН, ЗАВЕДЕНИЕ, СКЛАД, ХОТЕЛ, ПРОМ.ПОМЕЩЕНИЕ, ЕТАЖ ОТ КЪЩА, КЪЩА, ВИЛА, ПАРЦЕЛ, ГАРАЖ/ПАРКОМЯСТО, ЗЕМЕДЕЛСКА ЗЕМЯ, БИЗНЕС ИМОТ.
api.parse.bot/scraper/fcccf2c5-b878-42f1-a63a-1d246dfba689/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/fcccf2c5-b878-42f1-a63a-1d246dfba689/search_listings_for_sale?page=1&currency=EUR&location=%D0%B3%D1%80%D0%B0%D0%B4+%D0%A1%D0%BE%D1%84%D0%B8%D1%8F&max_area=200&min_area=40&max_price=200000&min_price=50000&sort_order=2&property_types=1-%D0%A1%D0%A2%D0%90%D0%95%D0%9D' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 imot-bg-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.

from parse_apis.imot_bg_property_listings_api import Imot, PropertyType, Currency

imot = Imot()

# Search for 2-room apartments for sale in Sofia
for listing in imot.listingsummaries.search_for_sale(
    location="град София",
    property_types=PropertyType.TWO_ROOM,
    currency=Currency.EUR,
    max_price=200000,
):
    print(listing.title, listing.price, listing.info)

    # Get full details for the first listing found
    detail = listing.details()
    print(detail.price, detail.price_per_sqm, detail.description)
    break

# Get average prices by district for Sofia
city_prices = imot.cityprices.get(town="София", year="2025")
for district in city_prices.results:
    print(district.district, district.prices)

# Get available search filter options
options = imot.searchoptions.get()
print(options.property_types, options.locations)
All endpoints · 5 totalmissing one? ·

Search for property listings for sale on imot.bg. Supports filtering by location, price range, area, property type, and pagination. Returns a paginated list of matching listings sorted by newest first by default. Each listing includes an id usable with get_listing_details for full property information.

Input
ParamTypeDescription
pageintegerPage number for pagination.
currencystringCurrency for prices.
locationstringLocation filter in Bulgarian (e.g. 'град София', 'Пловдив').
max_areaintegerMaximum area in square meters.
min_areaintegerMinimum area in square meters.
max_priceintegerMaximum price in the specified currency.
min_priceintegerMinimum price in the specified currency.
sort_orderintegerSort order for results. 2 = newest first.
property_typesstringComma-separated property type names in Bulgarian. Accepted values: 1-СТАЕН, 2-СТАЕН, 3-СТАЕН, 4-СТАЕН, МНОГОСТАЕН, МЕЗОНЕТ, АТЕЛИЕ/ТАВАН, ОФИС, МАГАЗИН, ЗАВЕДЕНИЕ, СКЛАД, ХОТЕЛ, ПРОМ.ПОМЕЩЕНИЕ, ЕТАЖ ОТ КЪЩА, КЪЩА, ВИЛА, ПАРЦЕЛ, ГАРАЖ/ПАРКОМЯСТО, ЗЕМЕДЕЛСКА ЗЕМЯ, БИЗНЕС ИМОТ.
Response
{
  "type": "object",
  "fields": {
    "page": "current page number as string",
    "count": "integer total number of listings on this page",
    "listings": "array of listing summary objects with id, title, url, price, info"
  },
  "sample": {
    "data": {
      "page": "1",
      "count": 41,
      "listings": [
        {
          "id": "1a177764345916850",
          "url": "https://www.imot.bg/obiava-1a177764345916850-prodava-ednostaen-apartament-grad-sofiya-vrabnitsa-2",
          "info": "42 кв.м, 1-ви ет. от 9, ТЕЦ",
          "price": "107 000 €209 273.81 лв.",
          "title": "Продава 1-СТАЕНград София, Връбница 2"
        }
      ]
    },
    "status": "success"
  }
}

About the imot API

Searching Listings

Both search_listings_for_sale and search_listings_for_rent accept location strings in Bulgarian (e.g. 'град София', 'Пловдив'), price range via min_price/max_price, area range via min_area/max_area, a currency parameter, and page for pagination. The rent endpoint additionally accepts a property_types parameter — a comma-separated list of Bulgarian property type names such as 1-СТАЕН, 2-СТАЕН, МНОГОСТ. Both endpoints return a count of listings on the current page and an array of listings objects, each containing an id, title, url, price, and summary info. The id from any result can be passed directly to get_listing_details.

Listing Detail

get_listing_details accepts either a listing_id (e.g. '1a177764345916850') or a full url. It returns the full listing record: title, location, price in both EUR and BGN, price_per_sqm, price_info (VAT status), a parameters object covering area, floor, and construction type, a description string with the seller's full text, a photos array of image URLs, and a phone contact number.

Average Prices by District

get_average_prices accepts a town name in Bulgarian and a four-digit year string. It returns an array of district-level objects each containing a district name and a prices array — all denominated in EUR per square meter. This is useful for benchmarking a specific listing's price against the neighbourhood average.

Filter Discovery

get_search_form_options takes no inputs and returns the current list of valid property_types strings accepted by the search endpoints, plus a locations array when available. Run this first to avoid passing unrecognised filter values to a search call.

Reliability & maintenanceVerified

The imot API is a managed, monitored endpoint for imot.bg — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when imot.bg 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 imot.bg 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.

Last verified
4d ago
Latest check
5/5 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Monitor new for-sale listings in a specific Sofia district by polling search_listings_for_sale with a location filter and sort_order=2.
  • Build a rental price comparison tool using search_listings_for_rent filtered by area and property type across multiple Bulgarian cities.
  • Extract structured property data — area, floor, construction type, photos — from individual imot.bg listings via get_listing_details.
  • Generate district-level price heatmaps for Bulgarian cities using get_average_prices with year-over-year comparisons.
  • Validate search filter values before executing queries by calling get_search_form_options to retrieve current property_types.
  • Aggregate contact phone numbers and descriptions from multiple listings for a CRM enrichment pipeline using get_listing_details in batch.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does imot.bg have an official developer API?+
imot.bg does not publish a documented public developer API. This Parse API provides structured programmatic access to the data available on the site.
What does `get_listing_details` return that the search endpoints do not?+
get_listing_details returns the full property record: description text, photos array, phone contact number, a parameters object (area, floor, construction type), price_per_sqm, and price_info for VAT status. The search endpoints return only summary fields — id, title, url, price, and info — sufficient to identify a listing but not to inspect it fully.
Are average price statistics available for all Bulgarian cities?+
get_average_prices queries imot.bg's statistical aggregation page and returns district-level EUR/sqm data for the city and year you specify. Coverage depends on what imot.bg aggregates; smaller towns with limited transaction volume may return sparse or empty results for some districts.
Does the API expose sold/completed transaction history or just active listings?+
The API covers currently active listings via the search endpoints and district-level average price statistics via get_average_prices. Historical sold transaction records with individual sale prices are not currently exposed. You can fork this API on Parse and revise it to add an endpoint targeting imot.bg's transaction history pages if that data is available on the site.
Can I filter for-sale listings by property type the same way rent listings are filtered?+
search_listings_for_rent explicitly supports a property_types parameter accepting values like 1-СТАЕН, 2-СТАЕН, МНОГОСТ. The search_listings_for_sale endpoint description does not list property_types as a supported input. You can fork this API on Parse and revise the for-sale endpoint to add that filter if the underlying page supports it.
Page content last updated . Spec covers 5 endpoints from imot.bg.
Related APIs in Real EstateSee all →
imovirtual.com API
Search and browse real estate listings across Portugal, view detailed property information including prices and specifications, and discover new housing developments. Find your ideal home by accessing comprehensive market data all in one place.
immobiliare.it API
Search Italian property listings for sale or rent, browse real estate agencies, and explore price trends across Italian cities — all via immobiliare.it.
immonet.de API
Search real estate listings across Germany and retrieve detailed property information including pricing, features, and location data from immonet.de. Find properties for sale or rent with comprehensive market data.
immowelt.de API
Search and browse real estate listings across Germany on Immowelt.de, with access to property details, images, and features for both rentals and sales. Filter results by location and sorting preferences to find properties that match your needs.
ingatlan.com API
Search real estate listings and development projects on ingatlan.com to find properties with detailed information like prices, descriptions, and project details. Get comprehensive data on available homes and construction projects even when direct access is restricted.
imovelweb.com.br API
Search and browse detailed real estate listings on imovelweb.com.br by city, state, and neighborhood. Retrieve structured property data including pricing, size, room counts, features, and full listing descriptions — ready for analysis, comparison, or portfolio tracking.
immoscout24.ch API
Search residential and commercial property listings on ImmoScout24 by location, price, and room count, then access detailed information including images, company details, and property types. Find your ideal property with comprehensive filtering options and complete listing data all in one place.
m.olx.ro API
Search and retrieve structured real estate listings from OLX Romania, including apartments, houses, land, and other properties with detailed information. Access category IDs and browse available properties by type to find what you're looking for on Romania's popular classifieds platform.