POST /api/cian/offers
Price: 20 credits
Get full CIAN real-estate offer details by offer ID (or offer URL): deal type, offer type, price (with per-square-meter and multi-currency values), total/living/kitchen area, rooms, floor, decoration, building (material, year, floors, ceiling height, lifts, parking, completion deadline), address with coordinates and nearby metro/districts, description, photos, the new-building complex, the seller/agent, view count, price history and the about-flat/about-building feature list.
Fetch a single CIAN offer by numeric ID or an offer URL. Returns one item with id, url, title, deal_type (sale/rent), offer_type, category, status, price (numeric) with price_per_meter and price_rur/usd/eur, currency, sale_type, rooms_count, total_area/living_area/kitchen_area, floor_number, combined_wcs_count, windows_view_type, decoration, build_year, material_type, floors_count, ceiling_height, passenger/cargo_lifts_count, parking_type, deadline_year/quarter, address, latitude/longitude, undergrounds (metro with travel time), districts, description, image+images, published_at, created_at, edited_at, newbuilding (complex ref), seller (agent/agency), view_count, price_history and features (about flat/building).
access-token string requiredtimeout integer — Max scrapping execution timeout (in seconds) (default: 300; min: 20; max: 1500)offer string required — CIAN offer ID or an offer URL containing it (examples: "317927888", "https://www.cian.ru/sale/flat/317927888/"; minLength: 1)@type string (default: "CianOffer")id integer requiredurl string nullabledeal_type string nullableoffer_type string nullablecategory string nullablestatus string nullableflat_type string nullableis_apartments boolean nullableprice integer nullableprice_rur integer nullableprice_usd integer nullableprice_eur integer nullableprice_per_meter integer nullablecurrency string nullablesale_type string nullablerooms_count integer nullabletotal_area number nullableliving_area number nullablekitchen_area number nullablefloor_number integer nullablecombined_wcs_count integer nullablewindows_view_type string nullabledecoration string nullablebuild_year integer nullablematerial_type string nullablefloors_count integer nullableceiling_height number nullablepassenger_lifts_count integer nullablecargo_lifts_count integer nullableparking_type string nullabledeadline_year integer nullabledeadline_quarter string nullableaddress string nullablelatitude number nullablelongitude number nullableundergrounds array (default: [])@type string (default: "CianUnderground")id integer nullablename string requiredline_color string nullabletravel_type string nullabletravel_time integer nullabledistricts array (default: [])@type string (default: "CianDistrict")id integer nullablename string requiredtype string nullabledescription string nullableimage string nullableimages array (default: [])published_at integer nullablecreated_at string nullableedited_at string nullablenewbuilding object nullable@type string (default: "CianNewbuildingRef")id integer nullablename string requiredurl string nullabledeadline_year integer nullabledeadline_quarter string nullableis_finished boolean nullableseller object nullable@type string (default: "CianSeller")id integer nullablename string nullabletype string nullableaccount_type string nullablecompany_name string nullableis_agent boolean nullableis_builder boolean nullableis_developer boolean nullableoffers_count integer nullableimage string nullableview_count integer nullableprice_history array (default: [])@type string (default: "CianPriceChange")date string nullableprice integer nullablecurrency string nullablefeatures array (default: [])@type string (default: "CianFeature")group string nullablelabel string requiredvalue string nullable422 — The request body did not validate Check the fields against this schema. A URN with the wrong prefix is the most common cause.408 — The request ran past its time limit Raise `timeout` in the request body, up to the maximum this endpoint documents. Lowering `count` or turning off the `with_*` flags also helps, because less work finishes sooner.412 — Offer not found (well-formed but nonexistent or removed listing) Retrying will not help: either the entity does not exist, or the input points at a different one.429 — Too many requests: a rate limit or a usage window is exhausted When the response carries an X-Retry-After header, wait that many seconds and retry: the same number is in the body as `detail.retry_after`, and the limit clears once that window passes. The message in the body names the limit that was hit.500 — Something broke on our side Retrying will not help. If it keeps happening, send us the X-Request-ID from the response headers.529 — Rate limit reached, or the endpoint is overloaded Wait at least 30 seconds, then retry.X-Error — Error message text (present only on error)X-Request-ID — Unique request identifierX-Execution-Time — Execution time in secondsX-Result-Count — How many records the body carries. 0 means an empty result, which is a normal answer and not by itself an error. A non-zero count can come back together with X-Error when the failure happened partway through — read this header and X-Error independently.X-Total-Available-Results — How many records exist for this query, when the endpoint can say. On a `dry_run` request this is the answer and the body is empty. It saturates: the endpoint's documented maximum means 'at least that many', any smaller number is exact.X-Warning — Present when the request body carried keys this endpoint does not document. They were ignored, so any filter you meant to apply through them did not apply. Check the spelling against this schema and retry.X-Retry-After — Seconds to wait before retrying. Present only on 429.