# Manage Inventory Locations

With the `/v2/inventory_locations` endpoints, you can create and delete inventory locations in inventory warehouses, list inventory locations, and update inventory location names and barcodes.

## Inventory Locations Properties

Inventory locations have six properties:

| Property | Type | Description |
|  --- | --- | --- |
| `inventory_location_id` | *string* | Generated automatically when you create an inventory location. This property is required to **update** or **delete** a specific inventory location and if you want to **update SKU stock levels**. You can also use it as a query parameter when [listing SKU inventory levels](/manage-inventory-levels). |
| `inventory_warehouse_id` | *string* | Generated automatically when you create an inventory warehouse. This property is required if you want to **add a new** inventory location. |
| `name` | *string* | The name that will appear in ShipStation for this inventory location. The `name` property reflects the `area - unit - shelf - bin` warehouse layout set for your warehouse locations in ShipStation. You'll define the inventory location name when you add a new inventory location. You can **update** this property for an existing inventory location. |
| `barcode` | *string* | Optional physical barcode label for warehouse location bins/shelves used during pick/pack operations. Enables warehouse staff to scan location barcodes to verify correct pick location and integrates with mobile picking workflows. Accepts any string format (e.g., "1234567890", "LOC-12345"). Can be set when creating a location or **updated** for an existing location. |
| `created_at` | *string* (date-time) | The date and time the inventory location was created. |
| `updated_at` | *string* (date-time) | The date and time the inventory location was last updated. |


## List Inventory Locations

To see which inventory locations are associated with which inventory warehouses, you’ll need to list all inventory locations.

**GET /v2/inventory_locations**

To see which inventory warehouse is associated with a specific inventory location, add the `inventory_location_id` to the endpoint path.

**GET /v2/inventory_locations/{inventory_loation_id}**

## Add an Inventory Location

When adding an inventory location, you’ll define its `name` and set which `inventory_warehouse_id` it will be associated with in the request body.

The inventory location `name` must correspond to the location layout you’ve defined in ShipStation: area - unit - shelf - bin. For example, the location of a specific SKU is in:

- Area: A1
- Unit: 12
- Shelf: B2
- Bin: 24


The location name should be `A1 - 12 - B2 - 24`

### Example Request & Response

**POST /v2/inventory_locations**

## Update an Inventory Location

You can update the name and barcode of an existing inventory location using the PUT method with the **/v2/inventory_locations** endpoint. Just add the `inventory_location_id` you wish to update to the endpoint path, then include the `name` and/or `barcode` properties in the request body with the updated values.

## Delete an Inventory Location

Deleting an inventory location is a bit of a special case because all inventory must be removed from the location before it can be deleted.

You can add the `remove_inventory` query parameter to the endpoint path if you wish to remove inventory in the same request to delete the location.

| Query Parameter | Type | Description |
|  --- | --- | --- |
| `remove_inventory` | *enumerated string* | - `1`, removes all inventory from the location before deleting it.
- `0`, If 0 or missing and the location has On Hand inventory, the request will fail.

 |


### Example Request & Response

**DELETE /v2/inventory_locations/{inventory_location_id}**