XML format and structure

Header

<header>: Represents user and market information. Tags to include:

  1. <owner_email>: Represents the client's email address on your side. The email is just for tracking purposes. We use an Authorization protocol to connect client credentials on our side and your feed. This means that the client will be notified via email, once we enable your feed and the client needs to allow it.
  2. <site_urn>: Represents our marketplace where your system wants to publish clients properties.
ValueDescription
urn:site:imovirtualcomPublish at Imovirtual
urn:site:otodomplPublish at Otodom
urn:site:storiaroPublish at Storia

Header example URL

<header>
    <owner_email>
        <![CDATA[  ]]>
    </owner_email> // optional
    <site_urn>urn:site:imovirtualcom</site_urn>
</header>

Advert payload

<adverts>: Starts the encoding for individual adverts.
<advert>: Represents a property listing, and all elements and attributes for the advert will be under this tag. Every advert is individually identified by this tag, and there’s no limit on adverts' insertions.

The XML feed follows a specific structure:

Basic Elements
Basic Elements are to be applied to all adverts, and most of these elements are mandatory.
All basic elements must be wrapped in an <element_name> element and have the following structure:

<adverts>
    <advert>
           // simple elements
        <element_name>
            <![CDATA[  ]]>
        </element_name>
		// elements with child/children
        <element_name>
            <element_child>
                <![CDATA[  ]]>
            </element_child>
        </element_name>
    </advert>
</adverts>

Note: some elements and the values of their children's elements have specific values that must be checked against the basic elements in the XML template file.

Attributes per Categories

All attributes and characteristics must be wrapped in an element under ; you can add as many attributes as necessary for each property advert, based on category available attributes and have the following structure:

<attribute>
    <urn>attribute_name</urn>
    <value>attribute_value</value>
</attribute>

HTML vs XML tags

HTML tags in the description will not be properly interpreted without adding the <![CDATA[ at the start of the description and ]]> at the end. Without this, from XML perspective, those HTML tags are treated as XML tags, and since they are empty, they are removed. Update the XML file with the <![CDATA[ ]]> to the description to send HTML tags if necessary.

XML template file (for Imovirtual)

Here you will find all available attributes per categories and each ones are mandatory and required, as well all the available values.

<?xml version="1.0" encoding="UTF-8"?>
<!-- mandatory | root element -->
<data>
    <header>
        <!-- mandatory | agency email on your side -->
        <owner_email>[email protected]</owner_email>
        <!-- mandatory | site target | site where agency manages his inventory -->
        <site_urn>urn:site:imovirtualcom</site_urn>
    </header>
    <!-- mandatory | list of all adverts to be published or updated on agency account -->
    <adverts>
        <!-- mandatory | repeat element per each advert -->
        <advert>
            <!-- optional|mandatory | custom fields 
            to help identify the advert as unique -->
            <custom_fields>
                <!-- mandatory | alfanumeric | external_id
                unique partner advert id used to add or update the advert
                -->
                <id>ABC0123456789</id>
                <!--  optional | alfanumeric | reference_id
                agency reference id to show in advert details page
                -->
                <reference_id>ABC0123456789</reference_id>
            </custom_fields>
            <!-- mandatory | string | title | less than 70 characters -->
            <title>advert title</title>
            <!-- mandatory | string | description | less than 4096 characters 
            use html tags for formating the description -->
            <description>Fugiat architecto beatae delectus asperiores et. Repellat harum dolore quia ipsam ullam. Voluptas eius recusandae repellat quis accusantium.</description>
            <!-- category & category type - mandatory string 
            allowed values:
                apartamentos para venda               urn:concept:apartments-for-sale
                apartamentos para renda               urn:concept:apartments-for-rent
                apartamentos para ferias              urn:concept:apartments-for-vacation
                
                moradias para venda                   urn:concept:houses-for-sale
                moradias para renda                   urn:concept:houses-for-rent
                moradias para ferias                  urn:concept:houses-for-vacation
                
                quartos para renda                    urn:concept:rooms-for-rent
                
                terrenos para venda                   urn:concept:lots-for-sale
                terrenos para renda                   urn:concept:lots-for-rent
                
                lojas para venda                      urn:concept:stores-for-sale
                lojas para renda                      urn:concept:stores-for-rent
                
                armazens para venda                   urn:concept:warehouses-for-sale
                armazens para renda                   urn:concept:warehouses-for-rent
                
                garagens-e-estacionamento para venda  urn:concept:garages-for-sale
                garagens-e-estacionamento para renda  urn:concept:garages-for-rent
                
                escritorios para venda                urn:concept:offices-for-sale
                escritorios para renda                urn:concept:offices-for-rent
                
                predios para venda                    urn:concept:buildings-for-sale
                predios para renda                    urn:concept:buildings-for-rent
                
                quintas-e-herdades para venda         urn:concept:farms-and-estates-for-sale
                quintas-e-herdades para renda         urn:concept:farms-and-estates-for-rent
                
                trespasse                             urn:concept:goodwill
            -->
            <category_urn>urn:concept:apartments-for-sale</category_urn>
            <!-- consultant contact details - optional
            it will displayed at advert details page depending on user package 
            if omitted agency contact details will be displayed
            -->
            <contact>
                <!-- consultant name - mandatory string -->
                <name>Consultant Name</name>
                <!-- consultant email - mandatory string
                unique email for consultant. it will be used to add or update consultant data
                -->
                <email>consultant.email@domain</email>
                <!-- consultant phone - mandatory string
                9 digit format
                -->
                <phone>910000000</phone>
                <!-- consultant photo - optional string - url for consultant photo
                minimum resolution allowed: 60x60
                recommended resolution: 66x66
                maximum file size allowed: 5 MB
                -->
                <photo>http://path.to/consultant/photo.jpg</photo>
            </contact>
            <!-- mandatory | property rent or sales price -->
            <price>
                <!-- mandatory | double | price valude
                use a dot for decimal
    
                max value for apartments: 5000000
                max value for houses: 15000000
                max value for lots: 30000000
                max value for buildings: 47500000
    
                price 0 is allowed and will be displayed as "on demand" or "sob consulta" 
                for that on-demand atributte shall be included
                -->
                <value>123000</value>
                <!-- mandatory | string | price currency
                Imovirtual uses EUR
                -->
                <currency>EUR</currency>
            </price>
            <!-- mandatory | array of images
            minimum 1, maximum 60
            minimum resolution allowed: 300x300
            recommended resolution: 1280x1024
            maximum file size allowed: 5 MB
            -->
            <images>
                <!-- repeat element for each image -->
                <image>
                    <!-- image URL | mandatory -->
                    <url>http://domain/image1.jpg</url>
                    <!-- image text | optional -->
                    <text>image A</text>
                    <!-- image order | optional 
                    if omitted by default will be the order of the images on the array 
                    -->
                    <order>1</order>
                </image>
            </images>
            <!-- optional | property movie
            the url for a Youtube or Vimeo movie to be displayed on the advert detail page 
            -->
            <movie_url>https://www.youtube.com/watch?v=xxxxxxxx</movie_url>
            <!-- mandatory | property coordinates -->
            <location>
                <!-- mandatory | latitude -->
                <lat>41.573603</lat>
                <!-- mandatory | longitude-->
                <lon>-7.214126</lon>
                <!-- optional | exact coordinates 
                by default false
				if true will display a pin in the advert details map view -->
                <exact>true</exact>
            </location>
            <!-- mandatory | array of property attributes -->
            <attributes>
                <!-- repeat element for each attribute/urn -->
                <!-- mandatory|optional tipology number
                allowed values:
                    T0    urn:concept:none
                    T1    urn:concept:1
                    T2    urn:concept:2
                    T3    urn:concept:3
                    T4    urn:concept:4
                    T5    urn:concept:5
                    T6    urn:concept:6
                    T7    urn:concept:7
                    T8    urn:concept:8
                    T9    urn:concept:9
                    T9+  urn:concept:more
                mandatory for apartamentos and moradias
                optional for quintas-e-herdades
                ignored for other categories
                -->
                <attribute>
                    <urn>urn:concept:number-of-rooms</urn>
                    <value>urn:concept:none</value>
                </attribute>
                <!-- mandatory|optional double area: urn:concept:net-area-m2 , urn:concept:gross-area-m2, urn:concept:terrain-area-m2
                use a dot for decimal
                allowed values:
                for apartamentos, lojas, armazens, escritorios, predios and trespasse:
                    urn:concept:net-area-m2 - mandatory area element is considered the net area 
                    urn:concept:gross-area-m2 - optional element is considered the gross area
    
                for moradias:
                    urn:concept:net-area-m2 - mandatory area element is considered the net area 
                    urn:concept:terrain-area-m2 - required element is considered the plot/terrain area
                    urn:concept:gross-area-m2 - optional element is considered the gross area

    
                for quartos and garagens-e-estacionamento:
                    urn:concept:net-area-m2 - mandatory area element is considered the net area

                for terrenos:
                    urn:concept:net-area-m2 - mandatory area element is considered the net area
                -->
                <attribute>
                    <urn>urn:concept:net-area-m2</urn>
                    <value>120</value>
                </attribute>
                <attribute>
                    <urn>urn:concept:gross-area-m2</urn>
                    <value>150.6</value>
                </attribute>
                <attribute>
                    <urn>urn:concept:terrain-area-m2</urn>
                    <value>1500</value>
                </attribute>
                <!-- optional | int | year
                property construction year
                -->
                <attribute>
                    <urn>urn:concept:construction-year</urn>
                    <value>2000</value>
                </attribute>
                <!-- optional | number of bathrooms
                available for categories apartments and houses (rent and sales)
                allowed values:
                    1       urn:concept:1
                    2       urn:concept:2
                    3       urn:concept:3
                    4+      urn:concept:4-or-more
                -->
                <attribute>
                    <urn>urn:concept:number-of-bathrooms</urn>
                    <value>urn:concept:2</value>
                </attribute>
                <!-- mandatory - certificado energetico
                    except for categories "quartos para renda", "terrenos", "garagens"
                    energy certificate values:
                    A+      urn:concept:a-plus
                    A       urn:concept:a
                    B       urn:concept:b
                    B-      urn:concept:b-minus
                    C       urn:concept:c
                    D       urn:concept:d
                    E       urn:concept:e
                    F       urn:concept:f
                    G       urn:concept:g"
                    Isento  urn:concept:exempt
                    if omitted by default will be urn:concept:exempt, as also refers to "Em Trâmite"
                -->
                <attribute>
                    <urn>urn:concept:energy-certificate</urn>
                    <value>urn:concept:a</value>
                </attribute>
                <!--  mandatory for apartments and houses for vacations |  integer | local accommodation license identifier number
                the "/AL" suffix will be added automatically
                -->
                <attribute>
                    <urn>urn:concept:number-of-user-license</urn>
                    <value>1286529</value>
                </attribute>
                <!-- optional | caracteristicas 
                allows duplication of name for each caracteristica value
                
                allowed values for apartamentos and moradias:
                    acessibilidade-a-pessoas-com-mobilidade-condicionada      urn:concept:reduced-mobility-accessible
                    alarme                                                    urn:concept:alarm
                    aquecimento-central                                       urn:concept:central-heating
                    ar-condicionado                                           urn:concept:air-conditioning
                    arvores-de-fruto                                          urn:concept:fruit-trees
                    condominio-fechado                                        urn:concept:gated-community
                    cozinha-equipada                                          urn:concept:equipped-kitchen
                    elevador                                                  urn:concept:elevator
                    estacionamento                                            urn:concept:parking
                    garagem-box                                               urn:concept:garage-box
                    hidromassagem-jacuzzi                                     urn:concept:whirlpool-jacuzzi
                    jardim                                                    urn:concept:garden
                    lareira                                                   urn:concept:fireplace
                    mobilado                                                  urn:concept:furnished
                    piscina                                                   urn:concept:pool
                    quintal-horta                                             urn:concept:vegetable-garden
                    varanda                                                   urn:concept:balcony
                    vigilancia-seguranca                                      urn:concept:security-surveillance
                    vista-de-campo-serra                                      urn:concept:countryside-mountain-view
                    vista-de-mar                                              urn:concept:sea-view
                    vista-de-rio                                              urn:concept:river-view

                allowed values for quartos:
                    acessibilidade-a-pessoas-com-mobilidade-condicionada      urn:concept:reduced-mobility-accessible
                    alarme                                                    urn:concept:alarm
                    ar-condicionado                                           urn:concept:air-conditioning
                    casa-de-banho-privada                                     urn:concept:private-bathroom
                    condominio-fechado                                        urn:concept:gated-community
                    elevador                                                  urn:concept:elevator
                    estacionamento                                            urn:concept:parking
                    garagem-box                                               urn:concept:garage-box
                    hidromassagem-jacuzzi                                     urn:concept:whirlpool-jacuzzi
                    internet                                                  urn:concept:internet
                    jardim                                                    urn:concept:garden
                    piscina                                                   urn:concept:pool
                    quintal-horta                                             urn:concept:vegetable-garden
                    som-ambiente                                              urn:concept:built-in-speakers
                    tomada-de-telefone                                        urn:concept:phone-plug
                    tv                                                        urn:concept:tv
                    varanda-quintal                                           urn:concept:balcony
                    vigilancia-seguranca                                      urn:concept:security-surveillance
                    vista-de-campo-serra                                      urn:concept:countryside-mountain-view
                    vista-de-mar                                              urn:concept:sea-view
                    vista-de-rio                                              urn:concept:river-view
                    
                allowed values for terrenos:
                    cerca                                                     urn:concept:fence
                    conectado a rede de água                                  urn:concept:connected-to-water-network
                    localizado numa area protegida                            urn:concept:located-in-a-protected-environment-area
            -->
                <attribute>
                    <urn>urn:concept:characteristics</urn>
                    <value>urn:concept:central-heating</value>
                </attribute>
                <attribute>
                    <urn>urn:concept:characteristics</urn>
                    <value>urn:concept:alarm</value>
                </attribute>
                <!-- optional | other caracteristicas
                allows duplication of name for each caracteristica value

                allowed values for quintas-e-herdades:
                    piscina         urn:concept:pool
                    lago            urn:concept:lake
                    capela          urn:concept:chapel
                    jardim          urn:concept:garden
                    furo-de-agua    urn:concept:water-hole

                allowed values for escritorios, lojas and trespasse:
                    com-wc          urn:concept:has-bathroom
                    com-cozinha     urn:concept:has-kitchen
            -->
                <attribute>
                    <urn>urn:concept:other-characteristics</urn>
                    <value>urn:concept:urn:concept:pool</value>
                </attribute>
                <!-- optional | state
                allowed values for apartments, houses, farms
                   Under Construction       urn:concept:under-construction
                   New                      urn:concept:new
                   To Recuperate            urn:concept:to-recuperate
                   Renovated                urn:concept:renovated
                   Ruin                     urn:concept:ruin
                   Used                     urn:concept:used
                -->
                <attribute>
                    <urn>urn:concept:state</urn>
                    <value>urn:concept:to-recuperate</value>
                </attribute>
                <attribute>
                    <!-- optional | yes and no elements
				    
                    for all categories
                    urn element for "preço negociável"        urn:concept:price-negotiable
                    urn element for "aceita permuta"          urn:concept:accepts-exchange
                    urn element for "preco sob-consulta"      urn:concept:on-demand
                    urn element for "acompanhamento virtual"  urn:concept:remote-services
                    
                    for all sales categories
                    urn element for "propriedade banco"    urn:concept:bank-property
                    
                    for category urn:concept:rooms-for-rent
                    urn element for "para estudantes"      urn:concept:student-accommodation
                     
                    for category urn:concept:offices-for-rent
                    urn element for "para coworking"       urn:concept:coworking
                    
                    allowed values:
                        urn:concept:no   by default if omitted
                        urn:concept:yes  attribute(s) will be marked as yes on the advert details page
                     -->
                    <urn>urn:concept:price-negotiable</urn>
                    <value>urn:concept:yes</value>
                </attribute>
                <!-- optional | purpose
                allowed values for lots
                   Commerce            urn:concept:commerce
                   Habitation          urn:concept:habitation
                   Agricultural Zone   urn:concept:agricultural-zone
                   Leisure Zone        urn:concept:leisure-zone
                   Green Zone          urn:concept:green-zone
                -->
                <attribute>
                    <urn>urn:concept:purpose</urn>
                    <value>urn:concept:commerce</value>
                </attribute>
            </attributes>
        </advert>
    </adverts>
</data>