# Create a property

`POST https://testing-backend.estactics.com/api/properties/create`

Adds a new property. Send `photos` and `floorPlansPhotos` as empty lists when you have none yet.

Authentication: `Authorization: Bearer YOUR_API_KEY`. Required permission: `properties.MANAGE`.

## Body parameters

- `title` (string, required): Listing title.
- `description` (string): Listing description.
- `propertyType` (APARTMENT | VILLA | TOWNHOUSE | DUPLEX | PENTHOUSE | LOFT | STUDIO | BUNGALOW | COTTAGE | FARMHOUSE | WAREHOUSE | SHOWROOM | RESIDENTIAL_BUILDING | COMMERCIAL_BUILDING | OFFICE | RETAIL_SHOP | RESTAURANT | PLOT | HOTEL, required): Kind of property.
- `dealType` (SALE | RENT | SALE_AND_RENT, required): Whether it is for sale, for rent, or both.
- `status` (PENDING | AVAILABLE | RESERVED | SOLD | RENTED | NOT_AVAILABLE | ARCHIVED): Availability.
- `brandId` (integer): ID of the brand that lists the property.
- `developerId` (integer): ID of the developer.
- `externalAgentId` (integer): ID of the external agent selling the property.
- `sellerClientId` (integer): ID of the client selling the property.
- `isPublishedToWebsite` (boolean): True when the property appears on your website.
- `photos` (array of string, required): Photo URLs. Upload them first, see the Upload property files guide.
- `floorPlansPhotos` (array of string, required): Floor plan image URLs.
- `propertyFiles` (object): Documents grouped by folder.
- `country` (string): Country.
- `city` (string): City.
- `state` (string): State or district.
- `area` (string): Area or neighborhood.
- `address` (string): Street address.
- `zipcode` (string): Postal code.
- `latitude` (number): Latitude.
- `longitude` (number): Longitude.
- `bedrooms` (integer): Number of bedrooms.
- `bathrooms` (integer): Number of bathrooms.
- `showers` (integer): Number of showers.
- `toilets` (integer): Number of toilets.
- `livingRooms` (integer): Number of living rooms.
- `kitchens` (integer): Number of kitchens.
- `parkingSpaces` (integer): Number of parking spaces.
- `buildingFloor` (integer): Floor of the unit.
- `houseFloors` (integer): Floors in the house.
- `unitNumber` (string): Unit number.
- `features` (array of string): Features. See List property features.
- `furnished` (FULLY | PARTIALLY | UNFURNISHED): How furnished it is.
- `orientation` (string): Which way it faces. See List orientations.
- `constructionStage` (OFF_PLAN | UNDER_CONSTRUCTION | UNFINISHED | COMPLETED | RESALE): Construction stage.
- `estimatedCompletionDate` (string): Estimated completion date.
- `yearOfConstruction` (integer): Year built.
- `yearOfRenovation` (integer): Year renovated.
- `energyEfficiencyRating` (string): Energy rating.
- `plotSize` (number): Plot size in square meters.
- `interiorSize` (number): Interior size in square meters.
- `coveredSize` (number): Covered size in square meters.
- `gardenSize` (number): Garden size in square meters.
- `roofGardenSize` (number): Roof garden size in square meters.
- `basementSize` (number): Basement size in square meters.
- `coveredVerandaSize` (number): Covered veranda size in square meters.
- `uncoveredVerandaSize` (number): Uncovered veranda size in square meters.
- `coveredParkingSize` (number): Covered parking size in square meters.
- `section` (string): Land registry section.
- `plotNumber` (integer): Land registry plot number.
- `sheetPlan` (string): Land registry sheet and plan.
- `titleDeedId` (string): Title deed number.
- `price` (integer): Price.
- `reducedPrice` (integer): Reduced price.
- `vatRate` (number): VAT rate.
- `commissionPercentage` (integer): Commission percentage.

## Example request body

```json
{
  "title": "Sea view apartment",
  "propertyType": "APARTMENT",
  "dealType": "SALE",
  "status": "AVAILABLE",
  "photos": [],
  "floorPlansPhotos": [],
  "propertyFiles": {},
  "bedrooms": 2,
  "price": 320000
}
```

## Example response

```json
{
  "success": true,
  "data": {
    "id": 310
  }
}
```
