Skip to main content
GET /schema is the complete and always current list of codes used by the API: types and subtypes of property, transactions, currencies, fields, levels, amenities. It is built from the same rules that the Housera form applies, so what the form accepts is exactly what the vocabulary publishes. It is public: it doesn’t require a key, so you can read it before you create your account.
Do not copy the lists from the vocabulary into your code. Read them from GET /schema (for example, when launching the application or once a day) and build your mapping on them. This way, a new subtype or amenity appears on your end without code modifications.

What it contains

The example is shortened: each list actually contains all elements.

Fields

Each entry in fields tells you:
  • type, the type of value: integer, decimal, boolean, text, code (a value from values), codes (a list of values from values), level (a level code), time (HH:MM), date (AAAA-LL-ZZ), country (ISO 3166-1 alpha-2), currency (ISO 4217), coordinates, object, objects;
  • unit, for numbers: m2, m, year, month, night, percent, kw, count and others, plus currency, that is, the currency of the listing (price_currency);
  • types and transactions, the combinations for which the field exists. Outside of these, the field is ignored and signaled in warnings[];
  • values, the allowed codes, with labels. When they are missing, values_from shows where they are (for example levels or currencies);
  • values_by_type, when the allowed values differ from one property type to another (for example, the construction materials of a warehouse compared to those of a house).
The vocabulary does not specify which fields are mandatory; these rules are in Fields of a listing. The safest test remains POST /listings/validate.

Retired codes

A code never disappears. When a code changes, the old one goes into retired, with its successor:
  • kind tells what kind of code it is: feature, subtype, field (a renamed field) or value:<câmp> (a value of a field).
  • If you submit the old code, Housera reads it as the successor. You lose nothing and do not receive an error.
  • In responses, you always receive the new code. Update your mapping when you see one of your codes in retired.

Language of labels

locale=ro (default) or locale=en only changes the labels (label). Codes are never translated: apartment remains apartment in any language.

Cache

The vocabulary changes rarely. The response has the header ETag and can be cached for one hour. To cheaply check if it has changed, send the ETag received in If-None-Match:
If nothing has changed, you receive 304 Not Modified, without a body. The limit for GET /schema is 60 requests per minute per IP address, separate from your keys’ limit.