---
title: "Create locations"
method: POST
path: "/v1/locations"
tags: ["locations"]
---

# Create locations

`POST /v1/locations`

Create multiple locations in bulk.

Create one or more locations for the organization.

## Request body

- CreateLocationPayload[]
  - `name` string, required — Display name for the location (max 30 characters)
  - `address` string, required — Physical street address (min 5 characters)
  - `timezone` string — Timezone (IANA format, e.g., 'America/New_York')

## Response `200`

Successful Response

- CreateLocationResponse — Response model for bulk location creation.
  - `status` 'success'
  - `summary` Summary, required — Summary of operation.
    - `total` integer, required — Total number of operations in request
    - `success_count` integer, required — Number of successful operations
    - `failure_count` integer, required — Number of failed operations
  - `results` union[] — List of location creation results
    - union
      - CreateLocationSuccessResult — Success result for location creation.
        - `status` 'success'
        - `data` CreateLocationSuccessData, required — Data returned for a successfully created location.
          - `id` integer, required — Unique identifier of the created location
      - CreateLocationErrorResult — Error result for location creation.
        - `status` 'error'
        - `error` ErrorDetails, required — Error message
          - `code` 'VALIDATION_ERROR' | 'BATCH_SIZE_EXCEEDED' | 'NO_CAMERAS_PROVIDED' | 'PARTIAL_OPERATIONS_NOT_SUPPORTED' | 'CAMERA_ALREADY_EXISTS' | 'CAMERA_NOT_FOUND' | 'NO_LICENSES_AVAILABLE' | 'INVALID_MAC_ADDRESS' | 'INVALID_IP_ADDRESS' | 'DUPLICATE_MAC_ADDRESSES' | 'NVR_CAPACITY_EXCEEDED' | 'NVR_NOT_FOUND' | 'INVALID_NVR_NAME' | 'LOCATION_NOT_FOUND' | 'NVR_REGISTRATION_FAILED' | 'NVR_ALREADY_REGISTERED' | 'PING_REQUEST_TIMEOUT' | 'PING_REQUEST_FAILED' | 'SPEEDTEST_REQUEST_TIMEOUT' | 'SPEEDTEST_REQUEST_FAILED' | 'NO_NVRS_PROVIDED' | 'DUPLICATE_NVR_NAMES' | 'LOCATION_ACCESS_DENIED' | 'LOCATION_NAME_ALREADY_EXISTS' | 'LOCATION_CREATION_FAILED' | 'NO_LOCATIONS_PROVIDED' | 'DUPLICATE_LOCATION_NAMES' | 'ALERT_EVENT_NOT_FOUND' | 'ALERT_NO_VIDEO_AVAILABLE' | 'ALERT_CAMERA_NOT_FOUND' | 'ALERT_CLIP_GENERATION_FAILED' | 'ALERT_NOT_FIREARM' | 'FIREARM_ALERT_NOT_FOUND' | 'INVALID_RECIPIENT_EMAILS' | 'PREMIUM_ALERT_CAMERA_LIMIT_EXCEEDED' | 'CAMERA_ALREADY_IN_USE' | 'ACCESS_EVENT_NOT_FOUND' | 'ACCESS_EVENT_NO_VIDEO_AVAILABLE' | 'ACCESS_EVENT_CLIP_GENERATION_FAILED' | 'CAMERA_GROUP_NOT_FOUND' | 'CAMERA_GROUP_NAME_ALREADY_EXISTS' | 'CAMERA_GROUP_CREATION_FAILED' | 'NO_GROUPS_PROVIDED' | 'DUPLICATE_GROUP_NAMES' | 'INVALID_GROUP_ID' | 'DUPLICATE_GROUP_IDS', required — Centralized error codes for Developer API endpoints.
          - `message` string, required — Error message
          - `field` string — Error field
          - `docs` string — Error docs

## Other responses

- `422` — Validation error

---

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