Discover/Krisha API
live

Krisha APIkrisha.kz ↗

Search and retrieve property listings from krisha.kz. Access sale and rental data for apartments, houses, and commercial properties across Kazakhstan.

Endpoint health
verified 2d ago
get_listing_contact
search_listings
get_listing_detail
3/3 passing latest checkself-healing
Endpoints
3
Updated
11d ago

What is the Krisha API?

The Krisha.kz API exposes 3 endpoints for searching and retrieving property listings from Kazakhstan's largest real estate marketplace. Use search_listings to query apartments, houses, land, and commercial properties by city, deal type, room count, and price range, then pull full listing details — including coordinates, photos, area, and seller information — via get_listing_detail.

This call costs1 credit / call— charged only on success
Try it
City slug to filter by (e.g., 'almaty', 'astana'). Omitting returns listings from all cities; an unrecognised slug yields a stale_input error.
Page number for pagination (1-based). Pages are counted in units of per_page (rounded up to whole site pages of 20).
Result ordering from the site's sort menu; newest first is the site's default. Any other value is rejected with stale_input.
Number of rooms to filter by, comma-separated for multiple values (e.g., '2' or '2,3').
Maximum total area in square meters (inclusive), applied by the site's own search filter. Non-negative number, decimals allowed (e.g. 50). Omitted: no upper bound.
Approximate number of listings per call, 1-100. Rounded up to whole site pages of 20 regular cards (plus up to 3 promoted cards on the site's first page), each site page costing one round trip. Omitted: one site page (~20-23 listings).
Maximum price filter in tenge.
Minimum total area in square meters (inclusive), applied by the site's own search filter. Non-negative number, decimals allowed (e.g. 25 or 25.5). Omitted: no lower bound.
Type of deal.
Minimum price filter in tenge.
When true, applies the site's native 'От хозяев' (from owners) filter so only ads posted by private owners are returned; false or omitted leaves seller type unfiltered. Values other than true/false are rejected with stale_input.
Property type to search.
→ api.parse.bot/scraper/320b67d0-20cf-468a-a587-d9fd52942a2d/<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/320b67d0-20cf-468a-a587-d9fd52942a2d/search_listings?city=almaty&page=1&sort=add_date-desc&rooms=2&area_to=50&price_to=50000000&area_from=25&deal_type=prodazha&price_from=10000000&property_type=kvartiry' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 3 totalmissing one? ·

Search for real estate listings on krisha.kz with filters for deal type, property type, city, rooms, price range, total area range and an owners-only switch, ordered by the site's sort menu (default newest first, i.e. the site's add_date descending; price ascending/descending also available). All filters, including the area range and owners_only, are applied by krisha.kz's own search before results are returned, so the result set and total_count reflect the filtered search. owners_only=true applies the site's native 'От хозяев' (from owners) checkbox, restricting results to ads posted by private owners rather than agents/agencies/developers; omitted or false leaves the search unfiltered on seller type, and the response shape is identical either way (on the owners-only search the site's first page was observed without promoted 'hot' cards). The site serves fixed pages of 20 regular cards, and its first page additionally carries up to 3 promoted 'hot' cards (is_hot=true) that sit at the top regardless of sort or date. By default one call returns one site page (~20-23 listings). per_page (1-100) asks for more listings per call: it is rounded up to whole site pages (per_page=100 fetches 5 site pages, ~103 listings in 5 round trips), and page then tiles the result stream in units of that many site pages, so page=2 with per_page=100 returns site pages 6-10. site_pages_fetched reports how many site pages were fetched; a page past the end returns an empty listings array. Each listing carries the listing id, numeric price in tenge (a monthly rent for the rental deal type; for new-building offers the developer's starting price, with price_text keeping the site's wording), residential complex name when shown (null otherwise), full address, rooms, total area in m², floor and total floors, year built, locally computed price_per_m2 (price / area rounded to the nearest tenge), and the card date: date_text is the site's own text (day and abbreviated Russian month, no year) and published_at is that date resolved to ISO YYYY-MM-DD against the Almaty calendar (most recent past occurrence). The card shows a single date: it is the site's add_date, which the site also uses as the default sort key and which moves when a seller renews (bumps) an ad, so it is best read as 'listed or last bumped'; krisha.kz does not expose a separate last-update date on search results, so no updated_at is provided. Fields the card does not show are null: year_built appears on sale cards but was absent on every rental card observed; floor is absent for new-building layout offers. Seller contacts, photos and full descriptions are not included; description_snippet is the short card preview text. total_count reports the full result-set size as the site formats it (digits grouped with spaces). listing_ids lists the ids returned in this call as integers. A city slug the site does not recognise as a region is rejected with a stale_input error, as are sort values outside the site's menu, per_page outside 1-100, non-numeric area_from/area_to values, and owners_only values other than true/false.

Input
ParamTypeDescription
citystringCity slug to filter by (e.g., 'almaty', 'astana'). Omitting returns listings from all cities; an unrecognised slug yields a stale_input error.
pageintegerPage number for pagination (1-based). Pages are counted in units of per_page (rounded up to whole site pages of 20).
sortstringResult ordering from the site's sort menu; newest first is the site's default. Any other value is rejected with stale_input.
roomsstringNumber of rooms to filter by, comma-separated for multiple values (e.g., '2' or '2,3').
area_tonumberMaximum total area in square meters (inclusive), applied by the site's own search filter. Non-negative number, decimals allowed (e.g. 50). Omitted: no upper bound.
per_pageintegerApproximate number of listings per call, 1-100. Rounded up to whole site pages of 20 regular cards (plus up to 3 promoted cards on the site's first page), each site page costing one round trip. Omitted: one site page (~20-23 listings).
price_tointegerMaximum price filter in tenge.
area_fromnumberMinimum total area in square meters (inclusive), applied by the site's own search filter. Non-negative number, decimals allowed (e.g. 25 or 25.5). Omitted: no lower bound.
deal_typestringType of deal.
price_fromintegerMinimum price filter in tenge.
owners_onlybooleanWhen true, applies the site's native 'От хозяев' (from owners) filter so only ads posted by private owners are returned; false or omitted leaves seller type unfiltered. Values other than true/false are rejected with stale_input.
property_typestringProperty type to search.
Response
{
  "type": "object",
  "fields": {
    "sort": "string sort code applied (SortOrder wire value)",
    "listings": "array of listing objects, one per card fetched",
    "listing_ids": "array of integer listing IDs from window.data, across all site pages fetched",
    "total_count": "string with total number of matching listings after all filters, including the area range and owners_only (formatted with spaces)",
    "current_page": "integer indicating the requested page number",
    "listings[].id": "string listing ID (numeric string, same value as listing_id inputs elsewhere)",
    "listings[].area": "number total area in square meters (within area_from..area_to when those filters are given)",
    "listings[].city": "string city name shown on the card",
    "listings[].floor": "integer floor of the unit, or null when not shown (new-building layouts)",
    "listings[].price": "integer price in tenge parsed from the card (monthly rent for arenda; starting price for new-building offers)",
    "listings[].rooms": "integer number of rooms",
    "listings[].title": "string card title with rooms, area and floor",
    "listings[].is_hot": "boolean true for promoted 'hot' cards pinned at the top of the site's first page regardless of sort",
    "site_pages_fetched": "integer number of site pages fetched for this call (1 unless per_page > 20)",
    "listings[].subtitle": "string district/street line of the address as shown on the card",
    "listings[].date_text": "string date as shown on the card (day and abbreviated Russian month, e.g. '18 сент.'), or null when the card shows none",
    "listings[].price_text": "string price as displayed by the site, e.g. 'от 34 305 090 ₸'",
    "listings[].year_built": "integer year the building was built / is due for completion, or null when the card does not show it",
    "listings[].complex_name": "string residential complex name, or null when the card shows none",
    "listings[].full_address": "string city plus subtitle joined with ', '",
    "listings[].price_per_m2": "integer computed locally as price / area rounded to the nearest tenge; null when price or area is missing",
    "listings[].published_at": "string ISO date YYYY-MM-DD resolved from date_text: the site's add_date, i.e. when the ad was listed or last renewed/bumped; null when date_text is missing or unparseable",
    "listings[].total_floors": "integer total floors in the building, or null when not shown",
    "listings[].description_snippet": "string short preview text of the listing description"
  },
  "sample": {
    "data": {
      "sort": "price-asc",
      "listings": [
        {
          "id": "1015799559",
          "area": 45.4,
          "city": "Алматы",
          "floor": null,
          "price": 6500000,
          "rooms": 2,
          "title": "2-комнатная квартира · 45.4 м²",
          "is_hot": false,
          "subtitle": "Наурызбайский р-н, мкр Шугыла 342/1 — Абая",
          "date_text": "17 сент.",
          "price_text": "6 500 000 ₸",
          "year_built": 2026,
          "complex_name": "Altyn dala",
          "full_address": "Алматы, Наурызбайский р-н, мкр Шугыла 342/1 — Абая",
          "price_per_m2": 143172,
          "published_at": "2026-09-17",
          "total_floors": null,
          "description_snippet": "жил. комплекс Altyn dala, монолитный дом, 2026 г.п., потолки 3м., Продаю квартиру по переуступке Все вопросы по телефону"
        }
      ],
      "listing_ids": [
        1015799559
      ],
      "total_count": "16 619",
      "current_page": 1,
      "site_pages_fetched": 1
    },
    "status": "success"
  }
}

About the Krisha API

What the API covers

The Krisha.kz API gives structured access to sale and rental listings across Kazakhstan. search_listings accepts filters for city (slug values like almaty or astana), deal_type (prodazha for sale, arenda for rent), property_type (kvartiry, doma-dachi, kommercheskie, uchastki), rooms (comma-separated values), and price_from/price_to in tenge. Responses include a listings array with per-listing id, price_text, title, subtitle, and description_snippet, along with a flat listing_ids array and a total_count string for pagination planning.

Listing detail data

get_listing_detail takes a listing_id from search results and returns the full advert object: price, addressTitle, square, rooms, photos, map coordinates, description, and ownerName. The adverts array adds card-level data including fullAddress and priceM2 (price per square meter), which is useful for comparative analysis across neighborhoods.

Contact information

get_listing_contact returns owner_name, user_type (distinguishing private owners from agents), and the listing_id. Full phone numbers are not returned directly — the response includes a phones_url path and a note that phone retrieval requires solving a reCAPTCHA challenge on the source site. Plan your contact-retrieval workflows around this constraint.

Reliability & maintenanceVerified

The Krisha API is a managed, monitored endpoint for krisha.kz — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when krisha.kz 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 krisha.kz 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
2d 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
  • Aggregate apartment listings in Almaty and Astana filtered by room count and price range for a property search app
  • Track price-per-square-meter trends across neighborhoods using the priceM2 field from get_listing_detail
  • Identify whether a listing is from a private owner or an agent using the user_type field in get_listing_contact
  • Build a map-based property browser using map coordinates returned in the advert object
  • Monitor new commercial property listings (kommercheskie) in a target city by polling search_listings with deal_type and property_type filters
  • Compare land listings (uchastki) for sale within a defined tenge price band across multiple cities
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 krisha.kz have an official developer API?+
Krisha.kz does not publish a public developer API or documented REST interface for third-party use.
What does `search_listings` return and how does pagination work?+
search_listings returns a listings array with summary fields (id, price_text, title, subtitle, description_snippet), a flat listing_ids array, a total_count string, and a current_page integer. Use the page parameter to iterate through results. total_count is returned as a string, so parse it to an integer before using it for page-count arithmetic.
Can I retrieve full phone numbers for listing owners?+
get_listing_contact returns owner_name and user_type without requiring any challenge, but full phone numbers are gated behind a reCAPTCHA on the source site. The phones_url field points to where phone data can be fetched, but automated retrieval of phone numbers is not supported by this API.
Does the API cover new-development (zhk / жилой комплекс) project pages?+
Not currently. The API covers individual sale and rental listings searchable through search_listings and detailed via get_listing_detail. New-development project profiles and developer-level data are not exposed. You can fork this API on Parse and revise it to add an endpoint targeting those project pages.
Are listings from cities outside Almaty and Astana available?+
Yes. Omitting the city parameter in search_listings returns listings across all cities on krisha.kz. You can also pass other city slugs supported by the site. Coverage depends on listing volume in each city, which varies significantly outside the two major urban centers.
Page content last updated . Spec covers 3 endpoints from krisha.kz.
Related APIs in Real EstateSee all →
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.
centris.ca API
Search and retrieve real estate listings from Centris.ca, Canada's largest real estate platform. Filter by location, property type, price range, and keywords to find houses, condos, plexes, and multi-generational properties across Quebec. Get detailed listing information including price, address, room counts, and photos.
myhome.ge API
Access data from myhome.ge.
cbre.com API
Search CBRE's commercial real estate listings by location, property type, and transaction (lease or sale) to find available properties and spaces that match your criteria. Access detailed property information including pricing, agent contacts, and specific space details to evaluate investment or leasing opportunities.
domain.com.au API
Search and compare property listings for sale, rent, or sold properties across Australia, view detailed property information and agent profiles, and explore suburb insights to make informed real estate decisions. Access comprehensive data on agents, neighborhoods, and properties all in one place.
funda.nl API
Search for property listings on Funda.nl, the largest Dutch real estate platform. Access prices, addresses, property details, and agent contact information across Dutch cities and neighbourhoods. Supports paginated browsing and bulk retrieval of listings by area.
kv.ee API
Search and browse real estate listings from Estonia's largest property portal to find apartments, houses, and other properties with detailed information like prices, locations, and descriptions. View complete details for any listing including photos, specifications, and contact information for sellers.
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.