Skip to main content
POST
Create a property

Overview

Creates a new property record from manually entered data, for example when adding a property that doesn’t come from an automated source feed. Supporting documents can be attached in the same request. Send the request as multipart/form-data so that files can be included alongside the property fields.
Location fields are auto-derived server-side from address — a verified live create with only address and property_type came back with municipality, municipal_unit, region, regional_unit, neighborhood, latitude, and longitude all populated automatically via geocoding. There’s no need to resolve these yourself before creating a record.
notes must be valid HTML, not plain text — sending plain text returns 400 {"notes": ["Content must be valid HTML."]}. Wrap content in a tag, e.g. <p>your text</p>. On Update a property, the same invalid input returns a 500 instead of this 400, so validate HTML client-side before sending to either endpoint.

Request

Body (multipart/form-data)

Core fields

Always send purpose as the fixed value "property_management" on create. It isn’t a field you vary per request.

Classification


Location

Per the backend’s own schema, municipality is not a field you can set directly — send address and the server geocodes municipality, region, regional_unit, and neighborhood automatically (verified against a live response). Use region / regional_unit / neighborhood below only if you need to override the geocoded result.

Property details

property_type is the only field below with a server-enforced enum, verified against the backend’s own schema. property_usage, heating_type, energy_class, condition, and view are free-text strings (up to 255 characters) as far as the API is concerned — the values listed for them are conventions used by the Ask Wire web app, not constraints the API enforces.

Cadastral details

sheet_number, plan_number, parcel_block_number, parcel_number, and block_number are not fields on this endpoint — per the backend schema, only the fields below are accepted here. Those other identifiers belong to a separate Cyprus cadastral-search lookup flow in the app, not to asset creation.

Files


Example request


Response

Returns 201 Created with the full created asset record — same shape as Update a property. Verified against a live response for a minimal create (address + property_type only):
See Update a property for the full response field reference — the shape is identical.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

multipart/form-data
property_type
enum<string>
required
Available options:
Apartment,
House,
Field,
Plot,
Warehouse,
Shop,
Office,
Storage,
Retail,
Right to Build,
Parking space,
Other
portfolio
string | null
ref_asset_id
string | null
reference_id
string | null
notes
string | null

Must be valid HTML, e.g.

text

.

address
string | null
latitude
number | null
longitude
number | null
district
string | null

Free-text district name.

zone_name
string | null
country
enum<string>
Available options:
greece,
cyprus
region
integer | null
regional_unit
integer | null
neighborhood
integer | null
listing_type
enum<string> | null
Available options:
rent,
sale,
sold,
listing_status
enum<string> | null
Available options:
active,
inactive,
property_usage
string | null

Free text, not a server-enforced enum.

price
string<decimal> | null
sales_price
string<decimal> | null
build_area
number | null
land_area
number | null
basement_area
number | null
covered_veranda_area
number | null
uncovered_veranda_area
number | null
construction_year
integer | null
renovated
boolean | null
renovation_year
integer | null
building_floor_count
integer | null
floor_number
integer | null
number_of_bedrooms
integer | null
number_of_bathrooms
integer | null
parking_space
integer | null
has_parking_space
boolean | null
storage_space
integer | null
heating_type
string | null

Free text, not a server-enforced enum.

cooling_type
string | null
energy_class
string | null

Free text, not a server-enforced enum.

condition
string | null

Free text, not a server-enforced enum.

view
string | null

Free text, not a server-enforced enum.

right_of_ownership
string | null
description
string | null
seller
string | null
owner
string | null
auction
boolean
road_access
boolean
garden
boolean | null
swimming_pool
boolean | null
building_coefficient
number | null
coverage_ratio
number | null
parcel_id
string | null
Maximum string length: 30
registration_number
string | null
registration_block
string | null
registration_codes
object[] | null
purpose
enum<string>
default:property_management

Fixed value. Always send "property_management" on create.

Available options:
property_management
files
file[]

Response

201 - application/json

The created property

A manually managed property record, as returned by create, retrieve, and update. Verified against live responses.

id
integer
ref_asset_id
string | null
reference_id
string | null
municipality
object | null
municipal_unit
object | null
region
integer | null
regional_unit
integer | null
neighborhood
integer | null
marketability_report_id
integer | null
marketability_report_status
string | null
marketability_report_task_id
integer | null
marketability_report_task_status
string | null
marketability_report_task_approved_at
string<date-time> | null
marketability_report_reference
string | null
adjusted_price_sqm
number | null
files
any[]
sub_assets
any[]
registration_codes
object[]
deleted
boolean
notes
string | null

HTML content.

created_at
string<date-time>
modified_at
string<date-time>
listing_type
enum<string> | null
Available options:
rent,
sale,
sold,
title
string | null
url
string | null
images
string | null
source
string | null
eauction_code
string | null
price
string | null

Decimal string, e.g. "150000.0000".

sales_price
string | null
price_per_sqm
string | null
auction
boolean
auction_status
string | null
auction_kind
string | null
auction_notice_date
string<date-time> | null
auction_conduct_date
string<date-time> | null
address
string | null
country
enum<string>
Available options:
greece,
cyprus
district
string | null
zone_name
string | null
client_id
string | null
client_name
string | null
owner
string | null
seller
string | null
latitude
number | null
longitude
number | null
property_type
enum<string> | null
Available options:
Apartment,
House,
Field,
Plot,
Warehouse,
Shop,
Office,
Storage,
Retail,
Right to Build,
Parking space,
Other
property_usage
enum<string> | null
Available options:
residential,
commercial,
mixed
portfolio
string | null
purpose
string | null
build_area
number | null
land_area
number | null
basement_area
number | null
covered_veranda_area
number | null
uncovered_veranda_area
number | null
construction_year
integer | null
renovated
boolean | null
renovation_year
integer | null
building_floor_count
integer | null
floor_number
integer | null
parking_space
integer | null
has_parking_space
boolean | null
storage_space
integer | null
garden
boolean | null
swimming_pool
boolean | null
road_access
boolean | null
heating_type
string | null
cooling_type
string | null
energy_class
string | null
condition
string | null
view
string | null
right_of_ownership
string | null
description
string | null
overview
string | null
map_url
string | null
coverage_ratio
number | null
building_coefficient
number | null
registration_number
string | null
registration_block
string | null
parcel_id
string | null
listing_status
enum<string> | null
Available options:
active,
inactive,
share_on_sale
string | null
number_of_bedrooms
integer | null
number_of_bathrooms
integer | null