---
title: "Create a new inventory location"
method: POST
path: "/inventory/locations"
tags: ["InventoryLocations"]
---

# Create a new inventory location

`POST /inventory/locations`

Creates a new inventory location at the given site. Locations
are the buckets against which stock counts and adjustments are
recorded.

## Request body

- object
  - `site_id` string, uuid — Site the new inventory location belongs to. Locations are scoped to a single site so that stock counts and adjustments stay isolated per site, even when sites share the same product catalogue.
  - `name` string, required — A display name for the location.

## Response `201`

A single inventory location.

- object
  - `data` InventoryLocation, required — A physical inventory location within a site — for example, "Treatment store", "Retail floor", or "Back of house". Locations are the bucket against which stock counts and adjustments are recorded; products can exist in multiple locations.
    - `id` string, uuid — The ID of the location.
    - `organisation_id` string, uuid — The ID of the organisation this location belongs to.
    - `site_id` string, uuid — The ID of the site this location belongs to.
    - `name` string, required — A display name for the location.
    - `created_at` string, date-time — The date and time the location was created.
    - `updated_at` string, date-time — The date and time the location was last updated.

## Other responses

- `401` — The user is unauthenticated
- `403` — The authenticated user does not have permission.
- `422` — The request didn't pass validation

---

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