/real-estate/

Deprecated: use POST /v1/real-estate-properties instead. Sunset: 2026-09-10. Creates a new real estate property in the BKBN platform. This endpoint allows you to register a new property with all its details. The property will be associated with the authenticated client's workspace. Returns the unique identifier of the created property. Save this ID for future actions.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params

Property to create or update. Every field is optional. On PATCH, send only the fields you want to change: an omitted field and an explicit null both leave the stored value unchanged, so a field cannot be cleared by sending null. A field you do send replaces the stored value outright (a list or map replaces the whole stored one, so [] or {} empties it), except the objects address, characteristics, energyCertificate, prices and swissReferences, which are merged field by field. Text fields added to this API take at most 255 characters unless their description says otherwise, lists at most 100 entries, and no text may contain a NUL character; a violation is a 400 naming the field. UNKNOWN in an enum is only ever returned, for a value newer than this API; sending it back is a 400 too (except in characteristics, where it is a regular answer). Note POST is an upsert: if objectReferenceId already names a property in your workspace, the stored property is updated rather than a second one created, so a retry is safe.

string

Display title of the property, shown to the creative and on the order.

uuid

Backbone id of the broker this property belongs to. Despite the name this is the agent, not the property owner — it decides who can see the property and order for it. Send this or ownerReferenceId.

string

Free-form text carried alongside the property for your own use. It is not a listing state: we store it and return it unchanged, and nothing on our side reads it.

string

This property's id in your own system. Set it on create and you can address the property by it afterwards (/real-estate-properties/by-reference/{objectReferenceId}) instead of storing our UUID. Re-using one on POST updates that property instead of creating a second. Keep it unique per workspace: two properties may legitimately share one across different brokers, and then the by-reference lookups answer 400 (ambiguous) until you address the property by its id.

string

The broker's id in your own system — the same value you sent as userReferenceId when creating them. An alternative to ownerId, so you need not store our user UUIDs.

address
object

Postal address of the property. Required before an order can be placed — it is where the creative is sent. Include coordinates: nothing on our side geocodes the text, so without them the property is stored at (0, 0), which loses distance-based creative routing and rejects a KEYS_PICKUP order at placement. On PATCH this object is merged sub-field by sub-field rather than replaced, so omitting coordinates keeps the stored ones: send them with every address change, or a moved property keeps routing creatives to its old location.

floorInfo
object

Which floors exist and how they are labelled.

string
enum

What the property is used for (e.g. RESIDENTIAL, COMMERCIAL). Note the read endpoints return this same value under the name propertyType. Required by the marketing-materials endpoint, which fails on a property that has none.

Allowed:
string
enum

Kind of property (e.g. APARTMENT, HOUSE). Required by the marketing-materials endpoint, as propertyUsage is.

string
enum

Whether the property is for sale or to let (e.g. SELL, RENT). Required by the marketing-materials endpoint, as propertyUsage is.

Allowed:
price
object

Asking price of the property. Listing data only — it has no bearing on what Backbone charges for the shoot.

string

Free-text selling points for the property.

int32

Which floor the property itself is on.

number

Surface area of the property, in the unit given by areaUnit. Must be greater than zero. Superseded by surface, which carries the value and unit together.

string
enum

Unit area is expressed in (SQM or SQFT).

Allowed:
number

Number of rooms, in the local convention — halves are allowed.

int32

Number of separate units in the property.

int32

Number of floors the property spans.

keywords
array of strings

Descriptive keywords for the property. They are used as input to the marketing-text generation this API offers, so keep them customer-safe — internal codes or agent notes placed here can surface in the generated listing copy. Nothing in this API filters on them.

keywords
int32

Area to be photographed, in square metres. Stored on the property and returned unchanged; it does not select products or affect pricing today — the area band is part of the productCode you pick during product discovery.

boolean

Whether the property is furnished. Sent and returned as isFurnished.

surface
object

Surface area with its unit, e.g. { "value": 120.5, "unit": "SQM" }. Both parts are required and value must be greater than zero — a zero or negative value is rejected with a 400. Prefer this over the loose area / areaUnit pair.

number

Usable area (Nutzfläche) in m².

number

Total area in m².

number

Plot / land area in m².

int32

Year the property was built.

int32

Year of the last renovation.

int32

Number of bedrooms.

int32

Number of bathrooms.

energyCertificate
object

Energy certificate: type (CONSUMPTION or DEMAND), year, consumption and demand in kWh/m²·a, validUntil, energyClass (A_PLUS is the "A+" class), co2Emissions in kg/m²·a, primaryEnergySources, includesWarmWater. Merged field by field, not replaced: sending one field leaves the others as they were, and there is no way to clear a field once set — so switching type from CONSUMPTION to DEMAND leaves the old consumption value in place.

localizations
array of objects

Per-language marketing texts, each { languageCode, title, description, furnishingDescription, locationDescription, excerpt, otherDescription }. Sending this list replaces the whole stored set, so include every language you want kept — it is not merged language by language, and an empty list clears it. Every entry needs a languageCode, and two entries sharing one are rejected with a 400, compared case-insensitively (de and DE collide).

localizations
objectOwner
object

The property owner: { name, email, phone, organization }, every part optional. This is the actual owner, unlike ownerId / ownerReferenceId, which identify the agent. A contact you send replaces the stored one outright, so a partial contact drops the fields you leave out; omitting the field or sending null leaves the stored contact alone, and {} erases it. This is a third party's personal data and nothing else on our side removes it, so that empty write is how an erasure request is honoured short of deleting the property.

string

Name of the selling organization.

sellerContactPerson
object

Who to contact about the sale. Same shape as objectOwner, though organization is only meaningful there. Replaces the stored contact outright, and is erased by an empty object as objectOwner is.

sellerVisitPerson
object

Who accompanies viewings. Note this is property-level reference data: the person the creative actually meets for a shoot is the order's organizationMethod contact, which is not taken from here.

string

Email address for seller inquiries.

string

Human-facing reference shown in listings and on portals.

string

Your id of the house this property is a unit of.

string

Your id of this specific unit within its house.

string

Your id of the building object.

string

Your id of the project (development) this property belongs to. Stored and returned as given; it cannot be cleared through this API once set.

uuid

Backbone id of the parent property this one is a unit of — the id a create or read returned for it. The parent must be an active property in your workspace (404 otherwise), and units nest one level only: a property that is already a unit cannot be a parent (409).

string

Alternative to parentRealtyId: the parent's objectReferenceId. The parent must already exist (404), and a reference shared by several properties is rejected rather than guessed (422). Ignored when parentRealtyId is sent. Write-only: reads return parentRealtyId.

string

ImmobilienScout24 (IS24) object id.

string

Id of the property's main language record in your system.

string
enum

Availability state in your system: ACTIVE, PRIVATE, REFERENCE, RESERVED, TAKEN, SOLD, ARCHIVED or DELETED. Descriptive only — ARCHIVED or DELETED here does not archive or delete the property; use the DELETE endpoint for that.

date-time

When the property becomes available, as an ISO 8601 UTC instant.

date-time

When the property's availability ends, as an ISO 8601 UTC instant.

propertyCategories
array of strings

Property categories, main category first (e.g. APARTMENT, LOFT, DETACHED_HOUSE, OFFICE, PARKING_SPACE). Replaces the stored list when sent.

propertyCategories
boolean

Whether the address should be hidden in public listings.

string

Free-text description of the location and surroundings, at most 20000 characters.

string

Building / zoning designation of the plot.

string
enum

How far the plot is developed / serviced: FULL, PARTIAL or UNDEVELOPED.

Allowed:
number

Cellar area in m².

number

Balcony area in m².

number

Terrace area in m².

number

Loggia area in m².

number

Garden area in m².

number

Ceiling height in metres.

number

Permissible floor load in kg/m².

number

Elevator load capacity in kg.

number

Utilization ratio (floor area ratio) of the plot.

number

Construction utilization ratio of the plot.

int32

Number of showers.

int32

Number of toilets.

int32

Number of guest toilets.

int32

Number of balconies.

int32

Number of land parcels.

boolean

Whether the build year is unknown.

conditions
array of strings

Condition of the property, main condition first (e.g. NEW_BUILDING, FIRST_OCCUPANCY, LIKE_NEW, MODERNIZED, REFURBISHED, IN_NEED_OF_RENOVATION). Replaces the stored list when sent.

conditions
boolean

Whether a building permission exists.

boolean

Whether the plot can be built on at short notice.

boolean

Whether a preliminary building enquiry is required.

string
enum

Construction method: SOLID or LIGHT.

Allowed:
string
enum

Heat generation: DISTRICT, ELECTRICITY, GAS, GEOTHERMAL_PROBE, HEATPUMP_AIR_AND_WATER, HEATPUMP, OIL, PHOTOVOLTAICS, SOLAR_THERMAL, WOOD_PELLET, WOOD or COAL.

string
enum

Heat distribution: RADIATOR or FLOOR.

Allowed:
boolean

Whether heating costs are included in the service charge.

flooringTypes
array of strings

Flooring types present, as free-form values. Replaces the stored list when sent.

flooringTypes
number
deprecated

Price per square metre. Deprecated: same stored value as prices.buy.perSquareMeter, which you should send instead.

string
enum
deprecated

What pricePerSquareMeter refers to: ALL, M2 or KM2. Deprecated: same stored value as prices.buy.referring.

Allowed:
number
deprecated

Net rent. Deprecated: same stored value as prices.rent.net.

number
deprecated

Gross rent. Deprecated: same stored value as prices.rent.gross.

number
deprecated

Additional rent costs. Deprecated: same stored value as prices.rent.extra.

number

Heating costs.

number

Maintenance reserve contribution.

number

Actual rental income.

number

Rent subsidy.

number
deprecated

Deposit. Deprecated: same stored value as prices.deposit.

string
enum
deprecated

Billing interval of the rent: ONETIME, DAY, WEEK, MONTH or YEAR. Deprecated: same stored value as prices.rent.interval.

Allowed:
boolean

Whether the price is given on inquiry only.

boolean

Whether the property is sold by auction.

number

Buyer commission payable to the broker, in percent.

number

Seller commission payable to the broker, in percent.

string

Free-text note about the commission, at most 2000 characters.

boolean

Whether the property is commission-free.

number

Total commission amount payable to the broker.

number

Total commission amount the seller pays the broker.

number

Total commission amount the buyer pays the broker.

prices
object

Prices under one shared currency: { currency, buy: { price, perSquareMeter, referring }, rent: { net, gross, extra, interval }, deposit }. Merged field by field on PATCH. currency (ISO 4217) is required when you add or change an amount and none is stored yet (400 otherwise), and it also re-stamps the currency of price. buy.price is the same stored value as price, and the other amounts share storage with the deprecated flat price fields.

characteristics
object

Amenity and situation flags, most as APPLIES, DOES_NOT_APPLY or UNKNOWN (e.g. hasElevator, hasBalcony, isWheelchairAccessible), plus numberOfGarages and numberOfCarPorts. Merged field by field on PATCH: a flag you leave out keeps its stored value.

departmentIds
array of strings

Ids of the departments handling the property in your system.

departmentIds
publishers
array of objects

Portal / publisher configurations, each { id, options: [{ key, value }], promotions }. Replaces the stored list when sent.

publishers
boolean

Whether the property is published in your system.

boolean

Whether the property has a price reduction.

boolean

Whether the property is a new listing.

boolean

Whether a map should be shown with the listing.

swissReferences
object

Swiss register references: egid, ewid, egrid and minergieCertification (e.g. MINERGIE, MINERGIE_P, MINERGIE_A_ECO). Merged field by field on PATCH.

parcelNumbers
array of strings

Land-register parcel numbers. Replaces the stored list when sent.

parcelNumbers
parkingLots
array of objects

Parking offered with the property, each { type, count, price, listingType }; type is free-form (e.g. GARAGE). Replaces the stored list when sent.

parkingLots
string

URL of the mobile-optimised listing, at most 2000 characters.

number

Rentable area in m².

number

Building volume in m³.

number

Hall height in metres, for commercial halls. Distinct from ceilingHeight.

number

Crane capacity in tonnes.

number

Combined balcony and terrace area in m², as some CRMs report it. Independent of balconyArea and terraceArea.

boolean

Whether a certificate of eligibility (Wohnberechtigungsschein) is required.

boolean

Whether the property is marketed exclusively.

customFields
object

Your own custom fields as a flat string-to-string map: at most 100 keys, keys up to 200 and values up to 2000 characters (400 otherwise). Stored and returned as given, never interpreted. Replaces the whole stored map when sent.

Response

Language
Credentials
Bearer
JWT
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
*/*