---
title: "Create a new office"
method: POST
path: "/offices"
tags: ["Offices"]
---

# Create a new office

`POST /offices`

## Request body

- OfficeInput
  - `code` string, required
  - `country` string, required
  - `city` string, required
  - `address` string, required
  - `coordinates` Coordinates, required
    - `latitude` number, required
    - `longitude` number, required
  - `capacity` integer, required
  - `monthlyRental` number, required — Monetary value in EUR
  - `estateOwner` object, required
    - `name` string, required
    - `phone` string, required
    - `account` string, required
  - `amenities` OfficeAmenity[], required
    - `code` string, required — Unique code identifier of the amenity
    - `name` string, required — Display name of the amenity
  - `imgURL` string

## Response `201`

Office created successfully

- Office
  - `code` string, required
  - `country` string, required
  - `city` string, required
  - `address` string, required
  - `capacity` integer, required
  - `monthlyRental` number, required — Monetary value in EUR
  - `estateOwner` object, required
    - `name` string, required
    - `phone` string, required
    - `account` string, required
  - `amenities` string[], required
  - `imgURL` string

## Other responses

- `400` — Invalid office input request body @see {@link OfficeInput}
- `409` — Office with this code already exists
- `422` — Invalid office configuration (e.g. invalid country code, unknown amenity)
- `500` — An internal server error occurred.
- `503` — The service is temporarily unavailable. Maybe there is maintenance?

## Changes

- **2025-01-24** `542ef1d43cc7` — 3 breaking, 1 warning, 1 info
  - added the new required request property `coordinates`
  - added the new required request property `estateOwner`
  - removed the required property `estate` from the response with the `201` status
  - removed the request property `estate`
  - …1 more
- **2025-01-17** `4573748c6338` — 5 info
  - added the optional property `errorGUID` to the response with the `400` status
  - added the optional property `errorGUID` to the response with the `409` status
  - added the optional property `errorGUID` to the response with the `422` status
  - added the optional property `errorGUID` to the response with the `500` status
  - …1 more
- **2025-01-09** `a59b7402c514` — 3 breaking, 2 info
  - the response property `code` became optional for the status `400`
  - the response property `code` became optional for the status `500`
  - the response property `code` became optional for the status `503`
  - added the non-success response with the status `409`
  - …1 more
- **2025-01-09** `29074eeb2bb5` — 3 info
  - added the media type `application/json` for the response with the status `400`
  - added the non-success response with the status `500`
  - added the non-success response with the status `503`
- …earlier changes not shown

[Full history](https://skmtc.dev/ducin-public/apis/itcorpo-api/changes/offices/post.md)

---

[API](https://skmtc.dev/ducin-public/apis/itcorpo-api.md) · [All operations](https://skmtc.dev/ducin-public/apis/itcorpo-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ducin-public/itcorpo-api/revisions/80675117301b/schema)
