Darscover XML Property Feed Integration Guide
Welcome to the Darscover property feed integration guide. This document provides all the necessary information for your technical team to automate the process of listing your properties on our portal.
Key Information
- Feed Model: Full Snapshot
- Format: XML (UTF-8 Encoded)
- Update Frequency: We fetch new feeds every 4 hours.
1. Overview: The Full Snapshot Model
Our system uses a "Full Snapshot" model. This means that each time we process your feed, we treat it as the complete, authoritative list of your active properties.
- ✅ Additions: Properties in your feed that are new to our system will be added.
- 🔄 Updates: Properties that already exist will be updated with the latest information.
- ❌ Deletions: Any of your properties in our system that are not found in your latest feed will be removed.
The XML file must be hosted on a publicly accessible URL (e.g., https://agency.com/feeds/darscover.xml). Once your feed is ready, please email the URL to our technical team at dev@darscover.com to begin the import process.
2. Getting Started: Minimal XML Example
To create a valid listing, you only need to provide the essential fields. Here is an example of a minimal valid property that can be used for initial testing.
<?xml version="1.0" encoding="UTF-8"?>
<darscoverFeed>
<properties>
<property>
<agentReference>RES-MIN-001</agentReference>
{/* Accepted: residential, room, office, commercial, parking, airRights, storage, building */}
<category>residential</category>
{/* Accepted: for_sale, for_rent */}
<transactionType>for_sale</transactionType>
<listingDetails>
<price>320000</price>
{/* For sales. Accepted: empty, rented, owner_occupied */}
<sellingCondition>owner_occupied</sellingCondition>
<availableFrom>2025-09-01T00:00:00Z</availableFrom>
<description>A modern 2-bedroom apartment in a central location.</description>
</listingDetails>
<location>
<locality>Birkirkara</locality>
<street>Triq il-Wied</street>
<number>88</number>
<postcode>BKR 9011</postcode>
</location>
<details>
<residential>
<features>
{/* Accepted: apartment, penthouse, villa, etc. */}
<propertyType>apartment</propertyType>
<bedrooms>2</bedrooms>
<bathrooms>1</bathrooms>
{/* Accepted: needs_renovating, good */}
<condition>good</condition>
</features>
</residential>
</details>
<media>
<image order="1"><url>[https://your-cdn.com/images/RES-MIN-001/1.jpg](https://your-cdn.com/images/RES-MIN-001/1.jpg)</url></image>
</media>
</property>
</properties>
</darscoverFeed>
3. Full XML Reference
For the best possible listing quality, we recommend providing all available data. A complete XML template including every possible field for all property categories is available for download in the section below.
4. Data Dictionary & Enum Values
Please ensure you use the exact values listed below for the specified fields to prevent validation errors.
Important: Case-Sensitivity All enum values are case-sensitive and must be provided exactly as shown.
Core Property Enums
| XML Field | Accepted Values |
|---|---|
| category | residential, room, office, commercial, parking, airRights, storage, building |
| transactionType | for_sale, for_rent |
| sellingCondition | empty, rented, owner_occupied |
General Enums
| XML Field | Accepted Values |
|---|---|
| condition | needs_renovating, good |
| energyCertificateRating | a, b, c, d, e, f, g |
| floor | basement, semi_basement, ground_floor, mezzanine, top_floor, 1st floor, ... (up to 60th floor) |
| door | letter, number, sole_door, left, right, exterior, interior, center, etc. |
Residential & Room Enums
| XML Field | Accepted Values |
|---|---|
| propertyType | apartment, penthouse, duplex, studio, bungalow, farmhouse, house_of_character, maisonette, palazzo, terraced_house, town_house, villa |
| orientation | north, south, east, west |
| roofAccess | private, shared |
| heatingType | individual, central_heating, no_heating |
| bedType | single, double, twin, none |
| roomView | without_windows, street, courtyard |
| gender | male, female |
| occupation | student, professional |
Office Enums
| XML Field | Accepted Values |
|---|---|
| layout | open_plan, divided_by_screens, divided_by_walls |
Commercial Enums
| XML Field | Accepted Values |
|---|---|
| propertyType | commercial_premises, warehouse |
| businessLocation | shopping_center, street_level, mezzanine, basement, upstairs, other |
| previousBusiness | b&b, hotel, restaurant, bar, shop, supermarket, gym, spa, etc. |
Parking Enums
| XML Field | Accepted Values |
|---|---|
| propertyType | single_garage, parking_space |
| maxCapacity | small_car, large_car, motorbike, car&bike, two_cars+ |
Air Rights / Land Enums
| XML Field | Accepted Values |
|---|---|
| type | land, airspace |
| landType | developed, buildable, non_buildable |
| typeOfUse | high_rise_residential, single_family_residence, tertiary_offices, tertiary_commercial, tertiary_hotels, industrial, public_services, other |
Building Enums
| XML Field | Accepted Values |
|---|---|
| typeOfUse | residential, offices, commercial, hotel, industrial, other |
Suggested Values for locality
While locality is a free-text field, using these standard names is highly recommended for best results.
- Malta Areas: Attard, Balzan, Birkirkara, Sliema, St. Julian's, Valletta, etc.
- Gozo Areas: Għajnsielem, Għarb, Rabat (Victoria Gozo), Xagħra, Xlendi, etc.
5. Links to Templates
To assist your development team, we have prepared the following files.
6. Best Practices & FAQ
-
How often is my feed processed? We fetch and process feeds every 15 minutes. Changes to your feed should be reflected on the portal within that timeframe.
-
What image specifications should I follow? Please provide the highest resolution images available (we recommend at least 1200px wide) in JPEG or WEBP format. The
orderattribute on the<image>tag is mandatory, withorder="1"being the primary image for the property. -
What happens if my XML is invalid? Our system performs validation on every feed. If your XML is invalid or does not conform to the structure, the import will fail, and an automated email will be sent to your registered technical contact with details about the error. The previously successful version of your feed will remain live.
7. Support
If you have any technical questions regarding the feed integration, please contact our support team at dev@darscover.com.