Застосунок Realistimo Шукайте та стежте за нерухомістю простіше. Завантажте з Google Play Google Play Застосунок Realistimo Шукайте та стежте за нерухомістю простіше. Завантажте з App Store App Store

XML feed for listing import

How to prepare an XML feed for importing listings into Realistimo. For on-demand sync see the REST API.

Overview

Overview

XML (this page)

What to publish in the feed and how import reads the fields.

REST

API key, POST /start, POST /latest-log, limits, and optional callback.

Tutorial

Get started

  1. Copy the minimal example below, or download a fuller sample XML.
  2. Set agency_uid to the source id Realistimo gave your agency, and broker_id values to agent source ids already linked in Realistimo.
  3. Add offers with a stable offer_uid, category/subcategory, location (internal_id), images, price, description, currency=eur.
  4. Host the feed on a public HTTPS URL and send it to [email protected].
  5. For manual sync: REST tutorial.

Geo lookup files: CSV · PostgreSQL dump

Explanation

How synchronisation works

“Required” below means: without a value, import/publish usually fails or the offer stays unpublished. Many attributes have default values.
How-to

How to prepare a feed

  1. Root <feed>, brokers in <Brokers>, offers in <offers>.
  2. Location: internal_id for the city, village, or neighborhood from the geo files. Without it the location is looked up in the description; if not found, the offer stays unpublished.
  3. Currency: send eur.
  4. On every real change, bump feed <updated> and <last_update> on affected offers.
  5. The URL must be reachable by server-side clients (no interactive Cloudflare challenge).
Reference

Minimal example

Copy this skeleton, replace placeholders, and set current timestamps (YYYY-MM-DD HH:MM:SS, not older than 30 days).

<?xml version="1.0" encoding="UTF-8"?>
<feed>
  <updated>YYYY-MM-DD HH:MM:SS</updated>
  <agency_uid>YOUR_AGENCY_SOURCE_ID</agency_uid>
  <Brokers>
    <Broker>
      <BrokerID>YOUR_AGENT_SOURCE_ID</BrokerID>
      <BrokerName>Ivan Ivanov</BrokerName>
      <BrokerPhone>0888000000</BrokerPhone>
      <BrokerEmail>[email protected]</BrokerEmail>
    </Broker>
  </Brokers>
  <offers>
    <offer>
      <offer_uid>offer-1</offer_uid>
      <last_update>YYYY-MM-DD HH:MM:SS</last_update>
      <description>Test listing</description>
      <images>https://example.com/a.jpg</images>
      <price>100000</price>
      <surface>70</surface>
      <currency>eur</currency>
      <category>продажби</category>
      <subcategory>2-СТАЕН</subcategory>
      <internal_id>8545</internal_id>
      <broker_id>YOUR_AGENT_SOURCE_ID</broker_id>
    </offer>
  </offers>
</feed>

Download fuller sample XML (shape reference — still replace ids, timestamps, and content with yours).

Agency

TagDescriptionNotes
<updated>Feed version / dateRequired Must change when content changes; max 30 days old
<agency_uid>Agency source idRequired Must match the id configured for your agency
<agency_name>, <agency_phone>, <agency_email>MetadataOptional Not used by import; safe for compatibility
<result_url>Callback after importOptional Realistimo POSTs a latest-log-shaped JSON body; see REST

Brokers

<Brokers>/<Broker> provides broker contact details for the feed. Offer broker_id must match an agent source id already linked to your agency in Realistimo (set up during integration). The XML BrokerID values should use the same ids. An offer whose broker_id doesn't match a linked agent is not imported, unless the agency has a fallback agent configured.

TagNotes
<BrokerID>Required Agent source id (prefer ≠ agency_uid)
<BrokerName>Required Name (+ surname)
<BrokerPhone>, <BrokerEmail>, <BrokerPhoto>Optional

Offers (supported fields)

TagDescriptionNotes
<last_update>Offer change timeRecommended Date/time or unix timestamp. When present and not newer than the last imported change, most fields are skipped on published offers
<offer_uid>Stable idRequired Do not change on edits
<offer_code>Reference codeOptional
<title>Title fragmentOptional Separate from description
<description>DescriptionRecommended Strongly desired for publication
<images>URLsRequired Separator ;
<price>PriceRequired Digits only, no thousands separator: everything after the first comma or period is cut off (100,000 imports as 100). Spaces are fine. 0 or 1 = “Price negotiable”. Zeroed for parent construction/complex
<surface>Area m²Required Required for most types. Garage and parking space default to 18 m² when the area is missing. For land see plot and land
<surface_parcel>Yard/parcelOptional Yard area in m². Used as the property's area too when surface is missing
<currency>CurrencyRequired eur. If it is missing, the price is shown at almost half its value.
<category>продажби / наемиRequired
<subcategory>Property typeRequired Must be an exact supported value (see below)
<internal_id>Geo internal idRequired id for the city, village, or neighborhood from the geo files. If missing or wrong, the location is looked up in the description; if not found, the offer stays unpublished
<subregion_id>Mapped location idOptional Used only by some legacy integrations. Don't rely on it — send internal_id
<construction_type>епк / панел / тухла / гредоредOptional Lowercase only, see values
<floor>, <floorAll>Floor / floorsOptional floor value 0 is ignored
<building_condition>Construction stageOptional See values
<build_year>YYYY-MM-DD / YYYYOptional Full date or year only (2005). A year on its own is accepted from 1800 to 10 years ahead and ignored otherwise. Older buildings display as a period (“Before 1989” or “Between 1990 and 2004”)
<furnished>0 / 14 / 23 / 65Optional 14 = furnished, 65 = semi furnished, 0 and 23 = unfurnished. A missing or other value is recorded as “Not sure”, even if the description says “furnished” — so always send this tag
<heating_ids>IDs via ,Optional 4, 6, and 18 = solid fuel, 35 = AC, 44 = electricity, 46 = city central heating, 80 = gas. Other ids are ignored
<parking_ids>52, 93Optional 52 = garage, 93 = parking space. Other ids are ignored
<rooms_count>, <bedroom_count>, <bath_count>CountsOptional See default values
<exterior_ids>IDs via ,Optional 42 = elevator, 10 = asphalt road. Other ids are ignored
<broker_id>Agent source idRequired Must match an agent linked in Realistimo
<construction_id>Parent offer_uidOptional See building/complex how-to
<youtube_link> / <youTube_link>YouTubeOptional
<virtual_panorama_link>Virtual tourOptional Links from Matterport, Giraffe360, CloudPano, Panoee, imot360, Zelanos, Renderimo, Webobook, and Kuula (bit.ly short link) are recognized. Other links are skipped without blocking publication
<Exclusive>0/1Optional

Values

subcategory (supported values)

Send values exactly as listed, in capital letters. An unknown value stops the offer's import.

building_condition

Case matters.

construction_type

Lowercase only: Тухла is not recognized.

Default values

When a tag is missing or empty, import records:

TagDefault value
<heating_ids>Electricity
<rooms_count>For an apartment — based on subcategory (2-СТАЕН = 2), otherwise 1
<bedroom_count>Room count minus 1, at least 1
<bath_count>1, but not more than the room count
<building_condition>With Act 16
<construction_type>Not sure (sale only)
<furnished>Not sure (all types)
<surface>The area from the description, if stated there; garage and parking space default to 18 m²

Heating, rooms, bedrooms, bathrooms, construction stage, and construction type are not populated for plots, agricultural land, garages, parking spaces, or new construction.

Ignored tags

These tags are not applied during import. They may appear in the feed but have no effect on the offer: balcony_count, land_category, parcel_in_regulation, new_construction.
How-to

Building / complex → apartments

  1. Parent: subcategory is one of НОВА СГРАДА, СГРАДА НОВО СТРОИТЕЛСТВО, ЗАТВОРЕН КОМПЛЕКС.
  2. Child: <construction_id>PARENT_OFFER_UID</construction_id>.
  3. Order in XML does not matter. Empty tag clears the link. Self-ref / invalid parent is ignored.

Plot and land

There are no separate tags for a plot — it is submitted like a regular offer:

  1. <subcategory>ПАРЦЕЛ</subcategory> for a building plot, or ЗЕМЕДЕЛСКА ЗЕМЯ for agricultural land. Forest, vineyard, pasture, and orchard can't be submitted yet.
  2. <surface> is the property area in m². A value between 0 and 1 is read as decares: 0.8 = 800 m² (with a period, not a comma). If surface is missing, surface_parcel is used, then the area from the description.
  3. <internal_id> for the city or village is enough — a neighborhood is not required.
  4. Rooms, floor, construction type, and furnishing are not needed.
  5. Asphalt road: <exterior_ids>10</exterior_ids>. There are no tags for electricity and water — write exactly “ток и вода на граница” in the (Bulgarian) description (or just “ток на граница” / “вода на граница”). Other wordings may not be recognized.
  6. The intended use is also read from the description. If it is not stated there, a ПАРЦЕЛ gets both “Residential building” and “Commercial building”, while for ЗЕМЕДЕЛСКА ЗЕМЯ the field stays empty.
  7. land_category and parcel_in_regulation are ignored.
<offer>
  <offer_uid>parcel-1</offer_uid>
  <last_update>YYYY-MM-DD HH:MM:SS</last_update>
  <title>Парцел в село Лозен</title>
  <description>Равен парцел с лице към улица. Ток и вода на граница.</description>
  <images>https://example.com/p1.jpg;https://example.com/p2.jpg</images>
  <price>85000</price>
  <surface>1200</surface>
  <currency>eur</currency>
  <category>продажби</category>
  <subcategory>ПАРЦЕЛ</subcategory>
  <internal_id>9433</internal_id>
  <exterior_ids>10</exterior_ids>
  <broker_id>YOUR_AGENT_SOURCE_ID</broker_id>
</offer>
See also

REST API and support

Розсилка про нерухомість

Так ви будете в курсі новин про нерухомість, статистики та новин від Realistimo, без спаму:

Ви успішно підписалися.
Будь ласка, введіть email. Будь ласка, введіть коректний email. Будь ласка, оберіть тип профілю. Будь ласка, введіть місто. Будь ласка, оберіть місто зі списку варіантів, що випадає під час заповнення поля. Виникла проблема. Будь ласка, спробуйте пізніше.
US AIzaSyBR3omDZNtlfDZ-DUvziDqXSz06vDg5mk4