---
title: "Create lock"
method: POST
path: "/locks"
tags: ["Locks"]
---

# Create lock

`POST /locks`

## Request body

- object
  - `lock` object, required
    - `name` string, required — The name of the lock
    - `description` string, nullable — The description of the lock
    - `latitude` number, float, nullable — The latitude of the lock.
    - `longitude` number, float, nullable — The longitude of the lock.
    - `geofence_restriction_enabled` boolean, nullable — Whether the lock is geofence restricted. Geofence restriction enforces that users may only unlock when they are near the lock.
    - `reader_restriction_enabled` boolean, nullable — Whether reader restriction is enabled. Reader restriction enforces that users may only unlock when standing in front of the door.
    - `time_restriction_enabled` boolean, nullable — Whether the lock is time restricted. Time restriction enforces that users may only unlock at specific hours.
    - `order_id` integer, nullable — The position of the lock, determining the sort order of the locks.
    - `floor_id` integer, nullable — The floor ID of the lock
    - `place_id` integer, required — The place ID of the lock
    - `favorite` boolean — Whether the lock is marked as a favorite by the user. Only shown if requested.

## Response `200`

OK

- union
  - object
    - `id` integer, required — The ID of the lock
    - `configured` boolean, required — Whether the lock has been configured.
    - `description` string, nullable, required — The description of the lock
    - `locked_down_since` string, date-time, nullable, required — Since when the lock has been locked down.
    - `locked_down` boolean, required — Whether the lock is locked down. When locked down the lock is locked for everyone.
    - `name` string, required — The name of the lock
    - `online` boolean, nullable, required — Whether the lock is online.
    - `open` boolean, required — Whether the lock is open
    - `unlocked_until` string, date-time, nullable, required
    - `unlocked` boolean, required — Whether the lock is unlocked.
    - `place_id` integer, required — The place ID of the lock
    - `place` object, required — The place of the lock
      - `id` integer, required — The ID of the place
      - `name` string, required — The name of the place
      - `latitude` number, float, nullable, required — The latitude of the place
      - `longitude` number, float, nullable, required — The longitude of the place
  - object
    - `id` integer, required — The ID of the lock
    - `resource_type` 'Lock', required — The resource type of the lock
    - `created_at` string, date-time, required — When the lock was created
    - `updated_at` string, date-time, required — When the lock was updated
    - `configured` boolean, required — Whether the lock has been configured.
    - `description` string, nullable, required — The description of the lock
    - `first_to_arrive_required_until` string, date-time, nullable, required — Until when the first to arrive trigger is required to be satisfied.
    - `first_to_arrive_satisfied` boolean, required — Whether the first to arrive condition is currently satisfied.
    - `latitude` number, float, nullable, required — The latitude of the lock.
    - `locked_down` boolean, required — Whether the lock is locked down. When locked down the lock is locked for everyone.
    - `locked_down_since` string, date-time, nullable, required — Since when the lock has been locked down.
    - `longitude` number, float, nullable, required — The longitude of the lock.
    - `name` string, required — The name of the lock
    - `on_scheduled_unlock` boolean, required — If the lock is on a scheduled unlock.
    - `online` boolean, nullable, required — Whether the lock is online.
    - `open` boolean, required — Whether the lock is open
    - `order_id` integer, nullable, required — The position of the lock, determining the sort order of the locks.
    - `unlocked` boolean, required — Whether the lock is unlocked.
    - `geofence_restriction_enabled` boolean, nullable, required — Whether the lock is geofence restricted. Geofence restriction enforces that users may only unlock when they are near the lock.
    - `geofence_restriction_radius` number, required — The radius of the geofence restriction.
    - `reader_restriction_enabled` boolean, nullable, required — Whether reader restriction is enabled. Reader restriction enforces that users may only unlock when standing in front of the door.
    - `time_restriction_enabled` boolean, nullable, required — Whether the lock is time restricted. Time restriction enforces that users may only unlock at specific hours.
    - `time_restriction_time_zone` string, nullable, required — What time zone the time restriction applies to.
    - `favorite` boolean — Whether the lock is marked as a favorite by the user. Only shown if requested.
    - `place_id` integer, required — The place ID of the lock
    - `place` object, required — The place of the lock
      - `id` integer, required — The ID of the place
      - `name` string, required — The name of the place
      - `latitude` number, float, nullable, required — The latitude of the place
      - `longitude` number, float, nullable, required — The longitude of the place
    - `floor_id` integer, nullable, required — The floor ID of the lock
    - `groups_count` integer, required
    - `unlocked_until` string, date-time, nullable, required

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `422` — Unprocessable Content

---

[API](https://skmtc.dev/kisi/apis/kisi-api.md) · [All operations](https://skmtc.dev/kisi/apis/kisi-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/kisi/kisi-api/revisions/998700ffff5a/schema)
