Document

A feed is a single <properties> element. Each <property> carries its own <agency> and <agent>; there are no separate agency or agent lists and no removal list.

document shape
<?xml version="1.0" encoding="UTF-8"?>
<havho_feed providerId="acme-realty">
    <properties>
        <property> <!-- agency, agent and listing fields --> </property>
    </properties>
</havho_feed>
Element / attributeRequiredNotes
<havho_feed> (root)RequiredConfirms the document type without relying on the URL extension.
<properties>RequiredWrapper for the active listings; may be empty. One <property> per listing. Listings missing from it are removed from our database on the next sync.
version, generated_at, updated_since attributesOptionalTolerated. When version is present its major must be 2.
providerId attributeOptionalOnly read the first time this feed imports, to seed the agreed identity — see the callout in the Field Reference. Never put it on a <property>, <agency> or <agent>.

Property element

<property>
    <id>CPT-S-1842</id>
    <agency>
      <id>AGY-77</id>
      <name>Atlantic Edge Properties</name>
    </agency>
    <agent>
      <id>AGT-1049</id>
      <fullName>Naledi Mokoena</fullName>
      <email>naledi.mokoena@example.co.za</email>
      <phone>+27 82 555 0142</phone>
      <location>Cape Town, Atlantic Seaboard</location>
      <photoUrl>https://cdn.example.com/agents/agt-1049.jpg</photoUrl>
      <ffcNumber>FFC-2026-114829</ffcNumber>
    </agent>
    <type>sale</type>
    <status>active</status>
    <propertyType>apartment</propertyType>
    <title>Sea-facing apartment in Green Point</title>
    <description>Renovated two-bedroom apartment with open-plan living areas and sea views.</description>
    <price>4250000</price>
    <address>14 Ocean View Drive, Green Point, Cape Town, Western Cape</address>
    <suburb>Green Point</suburb>
    <city>Cape Town</city>
    <province>Western Cape</province>
    <beds>2</beds>
    <baths>2</baths>
    <garage>1</garage>
    <parking>1</parking>
    <unitSize>98</unitSize>
    <photoUrls>
      <url>https://cdn.example.com/listing/1842/image1.jpg</url>
      <url>https://cdn.example.com/listing/1842/image2.jpg</url>
      <url>https://cdn.example.com/listing/1842/image3.jpg</url>
    </photoUrls>
    <features>
      <feature>Pool</feature>
      <feature>Security Estate</feature>
    </features>
  </property>

For a <type>rent</type> listing, add <availableNow>true</availableNow> and <availableFrom>2026-10-01</availableFrom>.

<agency> and <agent> are required on every property and identify themselves with <id>. They repeat for each of their properties. Never send <providerId>: it is set automatically from the feed. <sourceUpdatedAt> and <status> are optional and normally left out. See the Field Reference.

Type & value conventions

Full example

See examples/sample-feed.xml — the same data as sample-feed.json.