price, rooms, floor), and the amenities are a list of codes (features). You send the same fields to POST /listings/validate, POST /listings, PATCH /listings/{code}, and PUT /listings/ref/{ref}.
This page explains the groups of fields and provides a complete example for the most used types. The complete list, with the type and unit of each field and with the property types for which they exist, is in vocabular, at GET /schema.
Identity
string
required
Property type:
apartment, house, room, complex, land, commercial, warehouse, garage, hospitality, special.string
Subtype, from the vocabulary of the type (e.g.,
studio, standard, penthouse for apartment; building, agricultural for land). Mandatory for all types that have subtypes, meaning all except room and complex.string
required
sale (sale), rent (rental) or short_stay (hotel regime). Not every type accepts every transaction: valid pairs are in types[].transactions of the vocabulary. The hotel regime can only be used when the vocabulary marks it available: true.Text
string
required
Title, between 10 and 90 characters, with real content (not “aaaaaaaaaa”).
string
required
Description, between 30 and 5,000 characters. Do not include phone numbers, emails, or website addresses in the text: contact goes through the listing page, and moderation rejects listings with contact details in the text.
string
Language of the title and description, as ISO 639-1 code (
ro, en). If missing, Housera deduces it from the text.Location
latitude, longitude, city, and street are mandatory for any listing. Optionally, send county, area (neighborhood), street_number, and landmark (a nearby landmark). Details are in location guide.
Price
integer
required
Whole amount, in the currency from
price_currency. The meaning follows the transaction: total price for sale, monthly rent for rental, price per night in hotel regime. It is always the price of the entire offer, never per square meter. Mandatory, except for developments (complex), where the “from” price is calculated from the types of units.string
default:"EUR"
Currency’s ISO 4217 code. Accepted currencies are in
currencies of the vocabulary (EUR, RON, USD, and others). All amounts of the listing (deposit, additional costs) are in the same currency.boolean
The price is negotiable.
price is the value in euros, which the search compares, with currency: "EUR". The amount and the currency you sent are in price_declared:
Areas
All areas are in m², with at most two decimals.
The vocabulary also contains secondary areas (balconies, terrace, yard, offices, production, storage), each for the types to which it makes sense.
Specifications
Fields that describe the property: rooms, floor, year, condition, heating, energy certificate, and many others. The mandatory ones depend on the type:
A few useful rules:
- Codes, not labels. Send
"condition": "renovated", not"Renovat". Codes and their labels (in Romanian and English) are in the vocabulary. - The floor as a number is accepted:
3is read asfloor_3,0asground,-1assemi_basement. In responses, you always receive the code. - Booleans are
trueorfalse. - Lists (
heating_types,orientations,materials) are lists of codes, even with a single element. - Withdrawn codes remain valid: if you send an old code, it is read as its successor (see
retiredin the vocabulary).
Amenities
features is a list of codes from the amenities catalog, for example ["ac", "elevator", "intercom"]. The catalog has several hundred codes, grouped (utilities, security, exterior, building…), each with the property types to which it applies. You can find it in features of the vocabulary.
An amenity that is not in the catalog or does not apply to the type of the listing does not block the submission: it is ignored and appears in warnings[].
Contact
The name and email of contact are those of the account that holds the key. The phone is the one from the account, unless you send another one:string
A valid phone number. It is saved in international format (E.164). Mandatory only if there is no phone in the account.
What does not exist for type and transaction
Each field exists only for certain combinations of type and transaction: the deposit (deposit_months) only for rentals, the number of loading gates (dock_doors_count) only for warehouses, layout only for apartments. A field submitted where it does not exist is not an error: it is ignored, and the response signals it to you in warnings[]:
warnings[] is empty.
Complete examples
All the examples below pass validation as they are.- Apartment
- House
- Land
- Commercial space
Residential developments
A development (complex) does not have a single floor, area, or price. Instead, you send the list of unit types in unit_types. At least one row must be complete: label, area_sqm, units_count, and price_from.
price_from. Project fields (status, delivery term, height regime) are in the vocabulary, in fields that have complex among types.
Media links
object
External links,
http or https, of up to 500 characters: video (a presentation video), tour (a virtual tour), plan (a plan).