Discover/myhome API
live

myhome APImyhome.ge

Search, filter, and retrieve real estate listings from myhome.ge. Get prices in USD/GEL, location IDs, property details, images, and coordinates.

Endpoint health
verified 2h ago
list_locations
search_listings
get_listing
3/3 passing latest checkself-healing
Endpoints
3
Updated
3h ago

What is the myhome API?

The myhome.ge API provides access to Georgian real estate data through 3 endpoints covering listing search, full property details, and the complete location catalog. The search_listings endpoint returns up to 24 listings per page with prices in both USD and GEL, area in square meters, transaction type, and property type. You can filter by city, district, urban area, room count, bedroom count, and price range using IDs from the list_locations endpoint.

This call costs2 credits / call— charged only on success
Try it
1-based page number; 24 listings per page.
Comma-separated room-count type IDs as used by the site's Rooms filter: 1-5 = that many rooms, 7 = 6, 8 = 7, 9 = 8, 10 = 9, 11 = 10+.
Sort field.
Comma-separated bedroom-count IDs: 1-9 = that many bedrooms, 10 = 10+.
Comma-separated city IDs from list_locations.cities[*].city_id (e.g. 1 for Tbilisi). Omitted = all of Georgia.
Currency in which price_from/price_to are interpreted.
Maximum total price, in the unit selected by currency.
Comma-separated urban-area (sub-district) IDs from list_locations.cities[*].districts[*].urbans[*].urban_id.
Comma-separated transaction type IDs: 1 = For Sale, 2 = For Rent, 3 = Lease, 7 = Daily rent, 10 = By leased (land only). Omitted = all.
Minimum total price, in the unit selected by currency.
Sort direction.
Restrict to listings posted by private owners or by developers (the site's Owner / Construction company checkboxes). Omitted = all sellers including agencies.
Comma-separated district IDs from list_locations.cities[*].districts[*].district_id.
Comma-separated building status IDs: 1 = Old building, 2 = New building, 3 = Under construction (other IDs exist for plots/commercial). Omitted = all.
Comma-separated property type IDs: 1 = Apartment, 2 = Private house, 3 = Country house, 4 = Plot, 5 = Commercial area, 6 = Hotel. Omitted = all.
api.parse.bot/scraper/2b407a57-edb5-4aae-b330-6b762bc259b6/<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/2b407a57-edb5-4aae-b330-6b762bc259b6/search_listings?city_ids=1&deal_types=1&real_estate_types=1' \
  -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 myhome-ge-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.

"""Walkthrough: myhome.ge Real Estate SDK — browse locations, search, and inspect listings."""
from parse_apis.myhome_ge_api import MyHome, SortField, SortOrder, ListingNotFound

client = MyHome()

# Discover location IDs the search accepts.
city = client.cities.list(limit=3).first()
if city is not None:
    print(city.name, f"(city_id={city.city_id})")
    for district in city.districts[:3]:
        print(f"  {district.name} (district_id={district.district_id})")

# Search apartments for sale in the discovered city, cheapest first.
if city is not None:
    for hit in client.listing_summaries.search(
        city_ids=str(city.city_id),
        deal_types="1",
        real_estate_types="1",
        sort_by=SortField.PRICE,
        sort_order=SortOrder.ASC,
        limit=5,
    ):
        print(hit.title, f"${hit.price_usd:,.0f}", hit.district)

# Drill down from a search hit to full listing details.
if city is not None:
    summary = client.listing_summaries.search(
        city_ids=str(city.city_id),
        deal_types="1",
        limit=1,
    ).first()
    if summary is not None:
        listing = summary.details()
        print(listing.title, f"${listing.price_usd:,.0f}")
        print("condition:", listing.condition, "| build year:", listing.build_year)
        print("images:", len(listing.image_urls))

# Point lookup by a known listing ID, with error handling.
if summary is not None:
    try:
        detail = client.listings.get(listing_id=summary.listing_id)
        print(detail.title, detail.rooms, "rooms", detail.area_sqm, "sqm")
    except ListingNotFound:
        print("listing no longer available")

print("exercised: cities.list / listing_summaries.search / details / listings.get")
All endpoints · 3 totalmissing one? ·

Returns one page (24 listings) of myhome.ge real estate search results matching the given filters, plus the total matching count and page boundaries. Each row is one listing with raw numeric prices (USD and GEL), area in square meters, location (city, district, sub-district/urban area, street address), nearest metro station, building status, room and bedroom counts, seller type (Private, Agency, Developer) and the published/last-updated timestamp. Fields the site does not provide for a listing are null; in particular `condition` (Black frame, White frame, Green frame, Renovated, ...) is not part of the site's search results and is always null here — call get_listing for it. All filters are optional and combine with AND; multi-value filters take comma-separated IDs. Location IDs come from list_locations. Default ordering is newest first. Pagination: `page` (1-based, default 1); `has_more` is true while further pages exist, and a page past the end returns an empty `listings` array. Two upstream calls per invocation.

Input
ParamTypeDescription
pageinteger1-based page number; 24 listings per page.
roomsstringComma-separated room-count type IDs as used by the site's Rooms filter: 1-5 = that many rooms, 7 = 6, 8 = 7, 9 = 8, 10 = 9, 11 = 10+.
sort_bystringSort field.
bedroomsstringComma-separated bedroom-count IDs: 1-9 = that many bedrooms, 10 = 10+.
city_idsstringComma-separated city IDs from list_locations.cities[*].city_id (e.g. 1 for Tbilisi). Omitted = all of Georgia.
currencystringCurrency in which price_from/price_to are interpreted.
price_tointegerMaximum total price, in the unit selected by currency.
urban_idsstringComma-separated urban-area (sub-district) IDs from list_locations.cities[*].districts[*].urbans[*].urban_id.
deal_typesstringComma-separated transaction type IDs: 1 = For Sale, 2 = For Rent, 3 = Lease, 7 = Daily rent, 10 = By leased (land only). Omitted = all.
price_fromintegerMinimum total price, in the unit selected by currency.
sort_orderstringSort direction.
seller_typestringRestrict to listings posted by private owners or by developers (the site's Owner / Construction company checkboxes). Omitted = all sellers including agencies.
district_idsstringComma-separated district IDs from list_locations.cities[*].districts[*].district_id.
building_statusesstringComma-separated building status IDs: 1 = Old building, 2 = New building, 3 = Under construction (other IDs exist for plots/commercial). Omitted = all.
real_estate_typesstringComma-separated property type IDs: 1 = Apartment, 2 = Private house, 3 = Country house, 4 = Plot, 5 = Commercial area, 6 = Hotel. Omitted = all.
Response
{
  "type": "object",
  "fields": {
    "page": "requested page number",
    "total": "total number of listings matching the filters (site count)",
    "has_more": "true when a following page exists",
    "listings": "array of listing objects: listing_id (string, use with get_listing), title, real_estate_type, transaction_type, price_usd, price_gel, price_per_sqm_usd, price_per_sqm_gel (raw numbers), price_negotiable, area_sqm, yard_area_sqm, city, district, sub_district, street_address, nearest_metro (null when none), building_status, condition (always null in search results), rooms, bedrooms, floor, total_floors, seller_type (Private/Agency/Developer), seller_name, published_date (site-local 'YYYY-MM-DD HH:MM:SS' last-updated timestamp), is_vip, image_url, url",
    "per_page": "listings per page (24)",
    "last_page": "number of the last available page"
  },
  "sample": {
    "data": {
      "page": 1,
      "total": 75614,
      "has_more": true,
      "listings": [
        {
          "url": "https://www.myhome.ge/en/real-estate/5-room-apartment-for-sale-in-saburtalo-26101061",
          "city": "Tbilisi",
          "floor": 25,
          "rooms": 5,
          "title": "5 room apartment for sale in saburtalo",
          "is_vip": true,
          "area_sqm": 201,
          "bedrooms": 4,
          "district": "Vake-Saburtalo",
          "condition": null,
          "image_url": "https://static-statements.tnet.ge/uploads/202609/20260919/statements/3Eohg1d6aae9527219c7.webp",
          "price_gel": 1407834,
          "price_usd": 540000,
          "listing_id": "26101061",
          "seller_name": "Nika",
          "seller_type": "Agency",
          "sub_district": "Saburtalo",
          "total_floors": 31,
          "nearest_metro": "Delisi",
          "yard_area_sqm": null,
          "published_date": "2026-09-19 18:05:53",
          "street_address": "Asatiani M. Street 10",
          "building_status": "New building",
          "price_negotiable": false,
          "real_estate_type": "Apartment",
          "transaction_type": "For Sale",
          "price_per_sqm_gel": 7004,
          "price_per_sqm_usd": 2687
        }
      ],
      "per_page": 24,
      "last_page": 3151
    },
    "status": "success"
  }
}

About the myhome API

Searching Listings

The search_listings endpoint accepts a wide set of filters: city_ids, district_ids, and urban_ids (all sourced from list_locations), plus rooms, bedrooms, price_from, price_to, currency, sort_by, and a 1-based page parameter. Each call returns up to 24 listing objects alongside total (the full match count), last_page, and has_more. Each listing row includes a listing_id string, title, real_estate_type, transaction_type, price_usd, price_gel, and area in square meters.

Full Listing Details

get_listing takes a single listing_id (as returned by search_listings) and returns every search-result field plus additional detail: condition (e.g. Green frame, Newly Renovated, Black frame), build_year band, ceiling_height_m, latitude/longitude, image_urls (array of full-size image URLs), the seller's free-text description, and both created_date and published_date timestamps in YYYY-MM-DD HH:MM:SS format.

Location Catalog

list_locations returns the complete hierarchical location tree: cities with their city_id and name, each containing districts (with district_id) and each district's urbans (sub-districts with urban_id). These IDs map directly to the filter parameters in search_listings. Cities outside major municipalities may have no districts, and districts may have no urban subdivisions.

Coverage and Scope

All data reflects myhome.ge, Georgia's primary real estate portal, covering residential and commercial listings across the country. Listings span sales and rentals. The location catalog covers all Georgian cities indexed by the site, and the search results reflect the site's own total count for any given filter combination.

Reliability & maintenanceVerified

The myhome API is a managed, monitored endpoint for myhome.ge — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when myhome.ge 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 myhome.ge 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
2h ago
Latest check
3/3 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
  • Build a property price tracker that monitors USD and GEL prices for Tbilisi apartments by district over time.
  • Aggregate room-count and price distributions across urban areas to generate neighborhood-level market reports.
  • Feed listing coordinates from get_listing into a map interface to visualize Georgian real estate inventory geographically.
  • Extract condition and build_year fields from get_listing to filter newly renovated properties in specific cities.
  • Sync myhome.ge listing data into a CRM or lead-generation pipeline using listing_id as a stable identifier.
  • Use list_locations to populate city and district dropdowns in a property search UI without hardcoding IDs.
  • Compare price-per-square-meter across urban sub-districts by combining search_listings area and price fields.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does myhome.ge have an official developer API?+
myhome.ge does not publish a documented public developer API or offer developer credentials to third parties.
How does pagination work in search_listings, and what is the maximum page size?+
Each call to search_listings returns exactly 24 listings (per_page: 24). The response includes total (the full match count), last_page (the highest valid page number), and has_more (a boolean). Pass the page parameter (1-based) to step through results. There is no option to increase the page size beyond 24.
Does the API return contact details or phone numbers for listing sellers?+
Not currently. The API covers listing metadata, prices, location, property attributes, images, and coordinates. Seller contact details are not included in search_listings or get_listing responses. You can fork this API on Parse and revise it to add a seller-contact endpoint if that data is accessible on the listing page.
What interior condition values can appear in get_listing?+
The condition field in get_listing reflects the seller-selected condition label from the site: common values include Black frame, White frame, Green frame, and Newly Renovated. The field is nullable — if the seller did not specify a condition, it returns null.
Does the API cover rental listings in addition to sales?+
Yes. The transaction_type field in search_listings and get_listing distinguishes sales from rentals. You can filter by transaction type when calling search_listings to target one or the other. However, short-term or daily rental listings are not guaranteed to be distinct from long-term rentals at the API level — filtering by transaction type returns whatever the site categorizes under that type. You can fork this API on Parse and revise it to add a dedicated short-term rental filter endpoint if needed.
Page content last updated . Spec covers 3 endpoints from myhome.ge.
Related APIs in Real EstateSee all →
homegate.ch API
Access data from Homegate.ch.
nekretnine.rs API
Search and browse real estate listings across Serbia's top property marketplace to find detailed information about available properties including prices, locations, and property features. Filter through thousands of listings to discover your ideal home or investment property with comprehensive property details and specifications.
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.
housing.com API
Search and retrieve real estate listings on Housing.com. Browse properties for sale, rent, plots, and commercial spaces across major Indian cities with filtering by locality and property type.
halooglasi.com API
Search and filter property listings across Serbia's largest real estate classifieds platform by price, location, rooms, and category. Retrieve detailed information about specific properties including full descriptions, pricing, amenities, and location data, with pagination support.
opendoor.com API
Search for homes on Opendoor across US markets and instantly access listing prices, addresses, and detailed property information to compare available options. Use the data to find properties that match your criteria and get comprehensive details on homes you're interested in.
krisha.kz API
Search and browse real estate listings across Krisha.kz to find properties for sale, rent, or new developments, then access detailed information and contact details for each listing. Get comprehensive property data including prices, descriptions, and seller information to make informed decisions about properties in Kazakhstan.
inmuebles24.com API
Search and browse real estate listings from inmuebles24.com, Mexico's leading property portal. Filter by property type, operation type, and location, with pagination support to explore available rentals and sales across regions and property categories.