> For the complete documentation index, see [llms.txt](https://docs.fulfillmenttools.com/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fulfillmenttools.com/documentation/by-pillar/global-inventory-hub/storage-locations-and-zones/storage-locations-endpoints.md).

# Storage locations endpoints

## The StorageLocation object

```json
{"openapi":"3.0.1","info":{"title":"fulfillmenttools","version":"VERSIONLESS"},"components":{"schemas":{"StorageLocation":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForReplacement"},{"$ref":"#/components/schemas/VersionedResource"}],"properties":{"facilityRef":{"description":"The id of the facility reference.","type":"string"},"id":{"description":"The id of this storage location","type":"string"},"schemaVersion":{"type":"number"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"zoneName":{"deprecated":true,"description":"Deprecated! This field will not be filled in newly created storage locations. Resolve the zone name separately via the facilities/{id}/zones endpoint. The name of the Zone to which this storage location belongs","type":"string"}},"required":["id","facilityRef","traits"],"type":"object","xml":{"name":"StorageLocation"},"title":"StorageLocation","description":"StorageLocation"},"StorageLocationForReplacement":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForCreation"}],"properties":{"version":{"format":"int64","type":"integer"}},"required":["version"],"type":"object","xml":{"name":"StorageLocationForReplacement"},"title":"StorageLocationForReplacement","description":"StorageLocationForReplacement"},"StorageLocationForCreation":{"allOf":[{"$ref":"#/components/schemas/CustomAttributesResource"}],"properties":{"information":{"description":"A free text information about this storage location, max length 1024","maxLength":1024,"type":"string"},"name":{"description":"The name of this storage location","maxLength":15,"type":"string"},"runningSequences":{"description":"The Sequence item/s of this location","items":{"$ref":"#/components/schemas/StorageLocationSequenceItem"},"maxItems":10,"type":"array"},"scannableCodes":{"description":"Barcodes representing this storage location","items":{"type":"string"},"maxItems":5,"type":"array"},"tenantLocationId":{"description":"The internal tenant id for this location","type":"string"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location, includes both local config and and defaults. Do not use to write to traits, use traitConfig instead.","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"type":{"$ref":"#/components/schemas/StorageLocationType"},"zoneName":{"description":"The name of the Zone to which this storage location belongs","type":"string"},"zoneRef":{"description":"The id of the Zone to which this storage location belongs","type":"string"}},"required":["name","runningSequences","scannableCodes","type"],"type":"object","xml":{"name":"StorageLocationForCreation"},"title":"StorageLocationForCreation","description":"StorageLocationForCreation"},"CustomAttributesResource":{"properties":{"customAttributes":{"description":"Attributes that can be added to this entity. These attributes **cannot** be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.","nullable":true,"type":"object"}},"title":"CustomAttributesResource","type":"object","description":"CustomAttributesResource"},"StorageLocationSequenceItem":{"properties":{"nextStorageLocationRef":{"description":"The next storage from which to pick up after this one","type":"string"},"previousStorageLocationRef":{"description":"The previous storage from which to pick up after this one","type":"string"},"score":{"deprecated":true,"description":"Running sequence score - read-only","type":"number"},"type":{"$ref":"#/components/schemas/StorageLocationSequenceType"}},"required":["type"],"type":"object","xml":{"name":"StorageLocationSequenceItem"},"title":"StorageLocationSequenceItem","description":"StorageLocationSequenceItem"},"StorageLocationSequenceType":{"description":"Describes the type of a storage location sequence type\n  * `PICKING_SEQUENCE`- The sequence in wich the storage locations are picked.\n  * `RESTOW_SEQUENCE`- The sequence in wich the storage locations are restowed.","enum":["PICKING_SEQUENCE","RESTOW_SEQUENCE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationSequenceType"},"StorageLocationTraitConfig":{"description":"The configuration of the traits of this storage location","items":{"properties":{"enabled":{"type":"boolean"},"trait":{"$ref":"#/components/schemas/StorageLocationTrait"}},"required":["trait","enabled"],"type":"object"},"type":"array","title":"StorageLocationTraitConfig"},"StorageLocationTrait":{"description":"Describes what kind of actions this stock is available for\n  * `PICKABLE`- The stock is available for picking\n  * `ACCESSIBLE`- The stock is available for stock movements (stowing, inbound, etc)\n  * `KEEP_ON_ZERO`- The stock will not be deleted when emptied\n  * `OUTBOUND`- The stock is intended for outbound processes\n  * `IN_MOTION`- The stock is in motion, used by StowJobs.","enum":["PICKABLE","ACCESSIBLE","KEEP_ON_ZERO","OUTBOUND","IN_MOTION"],"type":"string","xml":{"name":"StorageLocationTrait"},"title":"StorageLocationTrait"},"StorageLocationType":{"description":"Describes the kind of a storage location:\n  * `SINGLE_STORAGE`- it is only allowed to store stock with the same tenantArticleId here\n  * `BULK_STORAGE`- stocks belonging to different tenantArticleIds can be stored here","enum":["SINGLE_STORAGE","BULK_STORAGE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationType"},"VersionedResource":{"properties":{"created":{"description":"The date this entity was created at the platform. This value is generated by the service.","format":"date-time","type":"string"},"lastModified":{"description":"The date this entity was modified last. This value is generated by the service.","format":"date-time","type":"string"},"version":{"description":"The version of the document to be used in optimistic locking mechanisms.","format":"int64","type":"integer"}},"required":["version"],"type":"object","title":"VersionedResource","description":"VersionedResource"}}}}
```

## List storage locations (search)

> Search for StorageLocation

```json
{"openapi":"3.0.1","info":{"title":"fulfillmenttools","version":"VERSIONLESS"},"tags":[{"description":"Endpoints to create, update, and read storage locations and zones.","name":"Storage Locations (Inventory)"}],"servers":[{"url":"https://{tenant}.api.fulfillmenttools.com","variables":{"tenant":{"default":"your-tenant-name"}}}],"security":[{"BearerToken":[]}],"components":{"securitySchemes":{"BearerToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"StorageLocationSearchPayload":{"properties":{"after":{"deprecated":false,"description":"The cursor to start after for forward pagination. The value is provided in the `pageInfo.endCursor` field of the response. Cannot be used with `before` or `last`.","type":"string"},"before":{"description":"The cursor to start before for backward pagination. The value is provided in the `pageInfo.startCursor` field of the response. Cannot be used with `after` or `size` (first).","type":"string"},"last":{"description":"Number of items to return for backward pagination. Cannot be used with 'size' (first). Default: 20.","maximum":250,"minimum":1,"type":"number"},"options":{"$ref":"#/components/schemas/SearchOptions"},"query":{"$ref":"#/components/schemas/StorageLocationSearchQuery"},"size":{"description":"Number of items to return for forward pagination. Cannot be used with 'last'. Default: 20.","maximum":250,"minimum":1,"type":"number"},"sort":{"description":"Use for sorting the result.","items":{"$ref":"#/components/schemas/StorageLocationSort"},"maxItems":1,"minItems":1,"type":"array"},"startAfterId":{"deprecated":true,"description":"The ID to start after. Deprecated, use `after` with the value provided in `pageInfo.endCursor` instead.","type":"string"}},"required":["query"],"title":"StorageLocationSearchPayload","type":"object","description":"StorageLocationSearchPayload"},"SearchOptions":{"properties":{"withTotal":{"description":"Set to true to include the total count of items in the search result.","type":"boolean"}},"title":"SearchOptions","type":"object","description":"SearchOptions"},"StorageLocationSearchQuery":{"properties":{"and":{"items":{"$ref":"#/components/schemas/StorageLocationSearchQuery"},"maxItems":500,"type":"array"},"created":{"allOf":[{"$ref":"#/components/schemas/DateFilter"}],"description":"Search entries by created. Applying a narrow and well-considered filter value is strongly recommended, as it can greatly improve response times, especially when working with large datasets."},"customAttributes":{"additionalProperties":{"anyOf":[{"$ref":"#/components/schemas/BooleanFilter"},{"$ref":"#/components/schemas/StringEqFilter"},{"$ref":"#/components/schemas/NumberEqFilter"},{"$ref":"#/components/schemas/DateFilter"}]},"description":"Search by custom attributes","type":"object"},"facilityRef":{"allOf":[{"$ref":"#/components/schemas/StringFilter"}],"description":"Search by facilityRef"},"id":{"allOf":[{"$ref":"#/components/schemas/StringFilter"}],"description":"Search by id"},"name":{"allOf":[{"$ref":"#/components/schemas/StringFilter"}],"description":"Search by name"},"or":{"items":{"$ref":"#/components/schemas/StorageLocationSearchQuery"},"maxItems":500,"type":"array"},"referenced":{"allOf":[{"$ref":"#/components/schemas/StorageLocationReferencedFilter"}],"description":"Nested search by referenced"},"scannableCodes":{"allOf":[{"$ref":"#/components/schemas/StringListFilter"}],"description":"Search by scannableCodes"},"tenantLocationId":{"allOf":[{"$ref":"#/components/schemas/StringFilter"}],"description":"Search by tenantLocationId"},"traits":{"allOf":[{"$ref":"#/components/schemas/StorageLocationTraitEnumListFilter"}],"description":"Search by traits"},"type":{"allOf":[{"$ref":"#/components/schemas/StorageLocationTypeEnumFilter"}],"description":"Search by type"},"zoneRef":{"allOf":[{"$ref":"#/components/schemas/StringFilter"}],"description":"Search by zoneRef"}},"title":"StorageLocationSearchQuery","type":"object","description":"StorageLocationSearchQuery"},"DateFilter":{"properties":{"after":{"description":"Search using ISO‑8601 dates relative to today. Prefix with “–” for past dates. Results include events after the specified date. Example: “–P1D” for yesterday, “P1W” for next week.","maxLength":256,"type":"string"},"before":{"description":"Search using ISO‑8601 dates relative to today. Prefix with “–” for past dates. Results include events before the specified date. Example: “–P1D” for yesterday, “P1W” for next week.","maxLength":256,"type":"string"},"eq":{"format":"date-time","type":"string"},"gt":{"format":"date-time","type":"string"},"gte":{"format":"date-time","type":"string"},"lt":{"format":"date-time","type":"string"},"lte":{"format":"date-time","type":"string"},"notEq":{"format":"date-time","type":"string"}},"title":"DateFilter","type":"object","description":"DateFilter"},"BooleanFilter":{"properties":{"eq":{"type":"boolean"},"notEq":{"type":"boolean"}},"title":"BooleanFilter","type":"object","description":"BooleanFilter"},"StringEqFilter":{"properties":{"eq":{"maxLength":256,"type":"string"},"notEq":{"maxLength":256,"type":"string"}},"title":"StringEqFilter","type":"object","description":"StringEqFilter"},"NumberEqFilter":{"properties":{"eq":{"type":"number"},"gt":{"type":"number"},"gte":{"type":"number"},"lt":{"type":"number"},"lte":{"type":"number"},"notEq":{"type":"number"}},"title":"NumberEqFilter","type":"object","description":"NumberEqFilter"},"StringFilter":{"properties":{"eq":{"maxLength":256,"type":"string"},"in":{"items":{"maxLength":256,"type":"string"},"maxItems":25,"type":"array"},"notEq":{"maxLength":256,"type":"string"},"notIn":{"items":{"maxLength":256,"type":"string"},"maxItems":25,"type":"array"}},"title":"StringFilter","type":"object","description":"StringFilter"},"StorageLocationReferencedFilter":{"properties":{"stock":{"allOf":[{"$ref":"#/components/schemas/StorageLocationReferencedStockFilter"}],"description":"Nested search by stock"}},"title":"StorageLocationReferencedFilter","type":"object","description":"StorageLocationReferencedFilter"},"StorageLocationReferencedStockFilter":{"properties":{"hasStocks":{"allOf":[{"$ref":"#/components/schemas/BooleanFilter"}],"description":"Whether the storage locations has any stocks on it."},"sumOfValues":{"allOf":[{"$ref":"#/components/schemas/NumberFilter"}],"description":"The sum of all stock values in this storage location, i.e. how much stock is stored in this location."}},"title":"StorageLocationReferencedStockFilter","type":"object","description":"StorageLocationReferencedStockFilter"},"NumberFilter":{"properties":{"eq":{"type":"number"},"gt":{"type":"number"},"gte":{"type":"number"},"in":{"items":{"type":"number"},"maxItems":25,"type":"array"},"lt":{"type":"number"},"lte":{"type":"number"},"notEq":{"type":"number"},"notIn":{"items":{"type":"number"},"maxItems":25,"type":"array"}},"title":"NumberFilter","type":"object","description":"NumberFilter"},"StringListFilter":{"properties":{"contains":{"$ref":"#/components/schemas/StringEqFilter"}},"title":"StringListFilter","type":"object","description":"StringListFilter"},"StorageLocationTraitEnumListFilter":{"properties":{"contains":{"allOf":[{"$ref":"#/components/schemas/StorageLocationTraitEnumFilter"}],"description":"Search by traits"}},"title":"StorageLocationTraitEnumListFilter","type":"object","description":"StorageLocationTraitEnumListFilter"},"StorageLocationTraitEnumFilter":{"properties":{"eq":{"description":"Search by traits","enum":["PICKABLE","ACCESSIBLE","KEEP_ON_ZERO","OUTBOUND","IN_MOTION"],"type":"string"},"in":{"description":"Search by traits","items":{"enum":["PICKABLE","ACCESSIBLE","KEEP_ON_ZERO","OUTBOUND","IN_MOTION"],"type":"string"},"maxItems":500,"type":"array"},"notEq":{"description":"Search by traits","enum":["PICKABLE","ACCESSIBLE","KEEP_ON_ZERO","OUTBOUND","IN_MOTION"],"type":"string"}},"title":"StorageLocationTraitEnumFilter","type":"object","description":"StorageLocationTraitEnumFilter"},"StorageLocationTypeEnumFilter":{"properties":{"eq":{"description":"Search by type","enum":["SINGLE_STORAGE","BULK_STORAGE"],"type":"string"},"in":{"description":"Search by type","items":{"enum":["SINGLE_STORAGE","BULK_STORAGE"],"type":"string"},"maxItems":500,"type":"array"},"notEq":{"description":"Search by type","enum":["SINGLE_STORAGE","BULK_STORAGE"],"type":"string"}},"title":"StorageLocationTypeEnumFilter","type":"object","description":"StorageLocationTypeEnumFilter"},"StorageLocationSort":{"properties":{"created":{"enum":["ASC","DESC"],"type":"string"},"customAttributes":{"additionalProperties":true,"maxProperties":1,"minProperties":1,"type":"object"},"lastModified":{"enum":["ASC","DESC"],"type":"string"},"name":{"enum":["ASC","DESC"],"type":"string"},"tenantLocationId":{"enum":["ASC","DESC"],"type":"string"},"zoneRef":{"enum":["ASC","DESC"],"type":"string"}},"title":"StorageLocationSort","type":"object","description":"StorageLocationSort"},"StorageLocationPaginatedResult":{"properties":{"pageInfo":{"allOf":[{"$ref":"#/components/schemas/PageInfo"}],"description":"Pagination information for the search result."},"storageLocations":{"items":{"$ref":"#/components/schemas/StorageLocation"},"type":"array"},"total":{"description":"The total number of items matching the search criteria. Only filled, if withTotal is set to true in the search options.","minimum":0,"type":"number"}},"required":["pageInfo","storageLocations"],"title":"StorageLocationPaginatedResult","type":"object","description":"StorageLocationPaginatedResult"},"PageInfo":{"properties":{"endCursor":{"description":"The cursor to use to fetch the next page of items. Use with parameter `after`.","type":"string"},"hasNextPage":{"description":"If true, there are more items after the current page.","type":"boolean"},"hasPreviousPage":{"description":"If true, there are more items before the current page.","type":"boolean"},"startCursor":{"description":"The cursor to use to fetch the previous page of items.","type":"string"}},"required":["hasNextPage","hasPreviousPage","startCursor","endCursor"],"title":"PageInfo","type":"object","description":"PageInfo"},"StorageLocation":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForReplacement"},{"$ref":"#/components/schemas/VersionedResource"}],"properties":{"facilityRef":{"description":"The id of the facility reference.","type":"string"},"id":{"description":"The id of this storage location","type":"string"},"schemaVersion":{"type":"number"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"zoneName":{"deprecated":true,"description":"Deprecated! This field will not be filled in newly created storage locations. Resolve the zone name separately via the facilities/{id}/zones endpoint. The name of the Zone to which this storage location belongs","type":"string"}},"required":["id","facilityRef","traits"],"type":"object","xml":{"name":"StorageLocation"},"title":"StorageLocation","description":"StorageLocation"},"StorageLocationForReplacement":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForCreation"}],"properties":{"version":{"format":"int64","type":"integer"}},"required":["version"],"type":"object","xml":{"name":"StorageLocationForReplacement"},"title":"StorageLocationForReplacement","description":"StorageLocationForReplacement"},"StorageLocationForCreation":{"allOf":[{"$ref":"#/components/schemas/CustomAttributesResource"}],"properties":{"information":{"description":"A free text information about this storage location, max length 1024","maxLength":1024,"type":"string"},"name":{"description":"The name of this storage location","maxLength":15,"type":"string"},"runningSequences":{"description":"The Sequence item/s of this location","items":{"$ref":"#/components/schemas/StorageLocationSequenceItem"},"maxItems":10,"type":"array"},"scannableCodes":{"description":"Barcodes representing this storage location","items":{"type":"string"},"maxItems":5,"type":"array"},"tenantLocationId":{"description":"The internal tenant id for this location","type":"string"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location, includes both local config and and defaults. Do not use to write to traits, use traitConfig instead.","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"type":{"$ref":"#/components/schemas/StorageLocationType"},"zoneName":{"description":"The name of the Zone to which this storage location belongs","type":"string"},"zoneRef":{"description":"The id of the Zone to which this storage location belongs","type":"string"}},"required":["name","runningSequences","scannableCodes","type"],"type":"object","xml":{"name":"StorageLocationForCreation"},"title":"StorageLocationForCreation","description":"StorageLocationForCreation"},"CustomAttributesResource":{"properties":{"customAttributes":{"description":"Attributes that can be added to this entity. These attributes **cannot** be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.","nullable":true,"type":"object"}},"title":"CustomAttributesResource","type":"object","description":"CustomAttributesResource"},"StorageLocationSequenceItem":{"properties":{"nextStorageLocationRef":{"description":"The next storage from which to pick up after this one","type":"string"},"previousStorageLocationRef":{"description":"The previous storage from which to pick up after this one","type":"string"},"score":{"deprecated":true,"description":"Running sequence score - read-only","type":"number"},"type":{"$ref":"#/components/schemas/StorageLocationSequenceType"}},"required":["type"],"type":"object","xml":{"name":"StorageLocationSequenceItem"},"title":"StorageLocationSequenceItem","description":"StorageLocationSequenceItem"},"StorageLocationSequenceType":{"description":"Describes the type of a storage location sequence type\n  * `PICKING_SEQUENCE`- The sequence in wich the storage locations are picked.\n  * `RESTOW_SEQUENCE`- The sequence in wich the storage locations are restowed.","enum":["PICKING_SEQUENCE","RESTOW_SEQUENCE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationSequenceType"},"StorageLocationTraitConfig":{"description":"The configuration of the traits of this storage location","items":{"properties":{"enabled":{"type":"boolean"},"trait":{"$ref":"#/components/schemas/StorageLocationTrait"}},"required":["trait","enabled"],"type":"object"},"type":"array","title":"StorageLocationTraitConfig"},"StorageLocationTrait":{"description":"Describes what kind of actions this stock is available for\n  * `PICKABLE`- The stock is available for picking\n  * `ACCESSIBLE`- The stock is available for stock movements (stowing, inbound, etc)\n  * `KEEP_ON_ZERO`- The stock will not be deleted when emptied\n  * `OUTBOUND`- The stock is intended for outbound processes\n  * `IN_MOTION`- The stock is in motion, used by StowJobs.","enum":["PICKABLE","ACCESSIBLE","KEEP_ON_ZERO","OUTBOUND","IN_MOTION"],"type":"string","xml":{"name":"StorageLocationTrait"},"title":"StorageLocationTrait"},"StorageLocationType":{"description":"Describes the kind of a storage location:\n  * `SINGLE_STORAGE`- it is only allowed to store stock with the same tenantArticleId here\n  * `BULK_STORAGE`- stocks belonging to different tenantArticleIds can be stored here","enum":["SINGLE_STORAGE","BULK_STORAGE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationType"},"VersionedResource":{"properties":{"created":{"description":"The date this entity was created at the platform. This value is generated by the service.","format":"date-time","type":"string"},"lastModified":{"description":"The date this entity was modified last. This value is generated by the service.","format":"date-time","type":"string"},"version":{"description":"The version of the document to be used in optimistic locking mechanisms.","format":"int64","type":"integer"}},"required":["version"],"type":"object","title":"VersionedResource","description":"VersionedResource"},"ApiError":{"items":{"$ref":"#/components/schemas/ErrorInner"},"type":"array","xml":{"name":"ApiError"},"title":"ApiError","description":"ApiError"},"ErrorInner":{"properties":{"description":{"type":"string"},"requestVersion":{"description":"The version provided within an invalid request.","format":"int64","type":"integer"},"summary":{"type":"string"},"version":{"format":"int64","type":"integer"}},"required":["summary"],"type":"object","title":"ErrorInner","description":"ErrorInner"}}},"paths":{"/api/storagelocations/search":{"post":{"deprecated":false,"description":"Search for StorageLocation","operationId":"searchStorageLocation","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageLocationSearchPayload"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageLocationPaginatedResult"}}},"description":"Your search result"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user is not allowed to operate against this API instance"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user, although recognized, is not authorized to use this endpoint"}},"summary":"List storage locations (search)","tags":["Storage Locations (Inventory)"]}}}}
```

## GET /api/facilities/{facilityId}/storagelocations/{storageLocationId}

> Get facility storage location

```json
{"openapi":"3.0.1","info":{"title":"fulfillmenttools","version":"VERSIONLESS"},"tags":[{"description":"Endpoints to create, update, and read storage locations and zones.","name":"Storage Locations (Inventory)"}],"servers":[{"url":"https://{tenant}.api.fulfillmenttools.com","variables":{"tenant":{"default":"your-tenant-name"}}}],"security":[{"BearerToken":[]}],"components":{"securitySchemes":{"BearerToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"StorageLocation":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForReplacement"},{"$ref":"#/components/schemas/VersionedResource"}],"properties":{"facilityRef":{"description":"The id of the facility reference.","type":"string"},"id":{"description":"The id of this storage location","type":"string"},"schemaVersion":{"type":"number"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"zoneName":{"deprecated":true,"description":"Deprecated! This field will not be filled in newly created storage locations. Resolve the zone name separately via the facilities/{id}/zones endpoint. The name of the Zone to which this storage location belongs","type":"string"}},"required":["id","facilityRef","traits"],"type":"object","xml":{"name":"StorageLocation"},"title":"StorageLocation","description":"StorageLocation"},"StorageLocationForReplacement":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForCreation"}],"properties":{"version":{"format":"int64","type":"integer"}},"required":["version"],"type":"object","xml":{"name":"StorageLocationForReplacement"},"title":"StorageLocationForReplacement","description":"StorageLocationForReplacement"},"StorageLocationForCreation":{"allOf":[{"$ref":"#/components/schemas/CustomAttributesResource"}],"properties":{"information":{"description":"A free text information about this storage location, max length 1024","maxLength":1024,"type":"string"},"name":{"description":"The name of this storage location","maxLength":15,"type":"string"},"runningSequences":{"description":"The Sequence item/s of this location","items":{"$ref":"#/components/schemas/StorageLocationSequenceItem"},"maxItems":10,"type":"array"},"scannableCodes":{"description":"Barcodes representing this storage location","items":{"type":"string"},"maxItems":5,"type":"array"},"tenantLocationId":{"description":"The internal tenant id for this location","type":"string"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location, includes both local config and and defaults. Do not use to write to traits, use traitConfig instead.","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"type":{"$ref":"#/components/schemas/StorageLocationType"},"zoneName":{"description":"The name of the Zone to which this storage location belongs","type":"string"},"zoneRef":{"description":"The id of the Zone to which this storage location belongs","type":"string"}},"required":["name","runningSequences","scannableCodes","type"],"type":"object","xml":{"name":"StorageLocationForCreation"},"title":"StorageLocationForCreation","description":"StorageLocationForCreation"},"CustomAttributesResource":{"properties":{"customAttributes":{"description":"Attributes that can be added to this entity. These attributes **cannot** be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.","nullable":true,"type":"object"}},"title":"CustomAttributesResource","type":"object","description":"CustomAttributesResource"},"StorageLocationSequenceItem":{"properties":{"nextStorageLocationRef":{"description":"The next storage from which to pick up after this one","type":"string"},"previousStorageLocationRef":{"description":"The previous storage from which to pick up after this one","type":"string"},"score":{"deprecated":true,"description":"Running sequence score - read-only","type":"number"},"type":{"$ref":"#/components/schemas/StorageLocationSequenceType"}},"required":["type"],"type":"object","xml":{"name":"StorageLocationSequenceItem"},"title":"StorageLocationSequenceItem","description":"StorageLocationSequenceItem"},"StorageLocationSequenceType":{"description":"Describes the type of a storage location sequence type\n  * `PICKING_SEQUENCE`- The sequence in wich the storage locations are picked.\n  * `RESTOW_SEQUENCE`- The sequence in wich the storage locations are restowed.","enum":["PICKING_SEQUENCE","RESTOW_SEQUENCE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationSequenceType"},"StorageLocationTraitConfig":{"description":"The configuration of the traits of this storage location","items":{"properties":{"enabled":{"type":"boolean"},"trait":{"$ref":"#/components/schemas/StorageLocationTrait"}},"required":["trait","enabled"],"type":"object"},"type":"array","title":"StorageLocationTraitConfig"},"StorageLocationTrait":{"description":"Describes what kind of actions this stock is available for\n  * `PICKABLE`- The stock is available for picking\n  * `ACCESSIBLE`- The stock is available for stock movements (stowing, inbound, etc)\n  * `KEEP_ON_ZERO`- The stock will not be deleted when emptied\n  * `OUTBOUND`- The stock is intended for outbound processes\n  * `IN_MOTION`- The stock is in motion, used by StowJobs.","enum":["PICKABLE","ACCESSIBLE","KEEP_ON_ZERO","OUTBOUND","IN_MOTION"],"type":"string","xml":{"name":"StorageLocationTrait"},"title":"StorageLocationTrait"},"StorageLocationType":{"description":"Describes the kind of a storage location:\n  * `SINGLE_STORAGE`- it is only allowed to store stock with the same tenantArticleId here\n  * `BULK_STORAGE`- stocks belonging to different tenantArticleIds can be stored here","enum":["SINGLE_STORAGE","BULK_STORAGE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationType"},"VersionedResource":{"properties":{"created":{"description":"The date this entity was created at the platform. This value is generated by the service.","format":"date-time","type":"string"},"lastModified":{"description":"The date this entity was modified last. This value is generated by the service.","format":"date-time","type":"string"},"version":{"description":"The version of the document to be used in optimistic locking mechanisms.","format":"int64","type":"integer"}},"required":["version"],"type":"object","title":"VersionedResource","description":"VersionedResource"},"ApiError":{"items":{"$ref":"#/components/schemas/ErrorInner"},"type":"array","xml":{"name":"ApiError"},"title":"ApiError","description":"ApiError"},"ErrorInner":{"properties":{"description":{"type":"string"},"requestVersion":{"description":"The version provided within an invalid request.","format":"int64","type":"integer"},"summary":{"type":"string"},"version":{"format":"int64","type":"integer"}},"required":["summary"],"type":"object","title":"ErrorInner","description":"ErrorInner"}}},"paths":{"/api/facilities/{facilityId}/storagelocations/{storageLocationId}":{"get":{"description":"","operationId":"getFacilityStorageLocation","parameters":[{"description":"ID of facility from which you want to get the storage locations. Also accepts tenantFacilityId in urn format (e.g. urn:fft:facility:tenantFacilityId:{your-tenant-facility-id})","in":"path","name":"facilityId","required":true,"schema":{"type":"string"}},{"description":"the ID of the storageLocation","in":"path","name":"storageLocationId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/StorageLocation"},"type":"array"}}},"description":"Facility was found & you are allowed to get the storage locations. The result is in the body."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user is not allowed to operate against this API instance"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user, although recognized, is not authorized to use this endpoint"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Facility not found"}},"summary":"Get facility storage location","tags":["Storage Locations (Inventory)"]}}}}
```

## GET /api/facilities/{facilityId}/storagelocations

> List facility storage locations

```json
{"openapi":"3.0.1","info":{"title":"fulfillmenttools","version":"VERSIONLESS"},"tags":[{"description":"Endpoints to create, update, and read storage locations and zones.","name":"Storage Locations (Inventory)"}],"servers":[{"url":"https://{tenant}.api.fulfillmenttools.com","variables":{"tenant":{"default":"your-tenant-name"}}}],"security":[{"BearerToken":[]}],"components":{"securitySchemes":{"BearerToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"StorageLocation":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForReplacement"},{"$ref":"#/components/schemas/VersionedResource"}],"properties":{"facilityRef":{"description":"The id of the facility reference.","type":"string"},"id":{"description":"The id of this storage location","type":"string"},"schemaVersion":{"type":"number"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"zoneName":{"deprecated":true,"description":"Deprecated! This field will not be filled in newly created storage locations. Resolve the zone name separately via the facilities/{id}/zones endpoint. The name of the Zone to which this storage location belongs","type":"string"}},"required":["id","facilityRef","traits"],"type":"object","xml":{"name":"StorageLocation"},"title":"StorageLocation","description":"StorageLocation"},"StorageLocationForReplacement":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForCreation"}],"properties":{"version":{"format":"int64","type":"integer"}},"required":["version"],"type":"object","xml":{"name":"StorageLocationForReplacement"},"title":"StorageLocationForReplacement","description":"StorageLocationForReplacement"},"StorageLocationForCreation":{"allOf":[{"$ref":"#/components/schemas/CustomAttributesResource"}],"properties":{"information":{"description":"A free text information about this storage location, max length 1024","maxLength":1024,"type":"string"},"name":{"description":"The name of this storage location","maxLength":15,"type":"string"},"runningSequences":{"description":"The Sequence item/s of this location","items":{"$ref":"#/components/schemas/StorageLocationSequenceItem"},"maxItems":10,"type":"array"},"scannableCodes":{"description":"Barcodes representing this storage location","items":{"type":"string"},"maxItems":5,"type":"array"},"tenantLocationId":{"description":"The internal tenant id for this location","type":"string"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location, includes both local config and and defaults. Do not use to write to traits, use traitConfig instead.","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"type":{"$ref":"#/components/schemas/StorageLocationType"},"zoneName":{"description":"The name of the Zone to which this storage location belongs","type":"string"},"zoneRef":{"description":"The id of the Zone to which this storage location belongs","type":"string"}},"required":["name","runningSequences","scannableCodes","type"],"type":"object","xml":{"name":"StorageLocationForCreation"},"title":"StorageLocationForCreation","description":"StorageLocationForCreation"},"CustomAttributesResource":{"properties":{"customAttributes":{"description":"Attributes that can be added to this entity. These attributes **cannot** be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.","nullable":true,"type":"object"}},"title":"CustomAttributesResource","type":"object","description":"CustomAttributesResource"},"StorageLocationSequenceItem":{"properties":{"nextStorageLocationRef":{"description":"The next storage from which to pick up after this one","type":"string"},"previousStorageLocationRef":{"description":"The previous storage from which to pick up after this one","type":"string"},"score":{"deprecated":true,"description":"Running sequence score - read-only","type":"number"},"type":{"$ref":"#/components/schemas/StorageLocationSequenceType"}},"required":["type"],"type":"object","xml":{"name":"StorageLocationSequenceItem"},"title":"StorageLocationSequenceItem","description":"StorageLocationSequenceItem"},"StorageLocationSequenceType":{"description":"Describes the type of a storage location sequence type\n  * `PICKING_SEQUENCE`- The sequence in wich the storage locations are picked.\n  * `RESTOW_SEQUENCE`- The sequence in wich the storage locations are restowed.","enum":["PICKING_SEQUENCE","RESTOW_SEQUENCE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationSequenceType"},"StorageLocationTraitConfig":{"description":"The configuration of the traits of this storage location","items":{"properties":{"enabled":{"type":"boolean"},"trait":{"$ref":"#/components/schemas/StorageLocationTrait"}},"required":["trait","enabled"],"type":"object"},"type":"array","title":"StorageLocationTraitConfig"},"StorageLocationTrait":{"description":"Describes what kind of actions this stock is available for\n  * `PICKABLE`- The stock is available for picking\n  * `ACCESSIBLE`- The stock is available for stock movements (stowing, inbound, etc)\n  * `KEEP_ON_ZERO`- The stock will not be deleted when emptied\n  * `OUTBOUND`- The stock is intended for outbound processes\n  * `IN_MOTION`- The stock is in motion, used by StowJobs.","enum":["PICKABLE","ACCESSIBLE","KEEP_ON_ZERO","OUTBOUND","IN_MOTION"],"type":"string","xml":{"name":"StorageLocationTrait"},"title":"StorageLocationTrait"},"StorageLocationType":{"description":"Describes the kind of a storage location:\n  * `SINGLE_STORAGE`- it is only allowed to store stock with the same tenantArticleId here\n  * `BULK_STORAGE`- stocks belonging to different tenantArticleIds can be stored here","enum":["SINGLE_STORAGE","BULK_STORAGE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationType"},"VersionedResource":{"properties":{"created":{"description":"The date this entity was created at the platform. This value is generated by the service.","format":"date-time","type":"string"},"lastModified":{"description":"The date this entity was modified last. This value is generated by the service.","format":"date-time","type":"string"},"version":{"description":"The version of the document to be used in optimistic locking mechanisms.","format":"int64","type":"integer"}},"required":["version"],"type":"object","title":"VersionedResource","description":"VersionedResource"},"ApiError":{"items":{"$ref":"#/components/schemas/ErrorInner"},"type":"array","xml":{"name":"ApiError"},"title":"ApiError","description":"ApiError"},"ErrorInner":{"properties":{"description":{"type":"string"},"requestVersion":{"description":"The version provided within an invalid request.","format":"int64","type":"integer"},"summary":{"type":"string"},"version":{"format":"int64","type":"integer"}},"required":["summary"],"type":"object","title":"ErrorInner","description":"ErrorInner"}}},"paths":{"/api/facilities/{facilityId}/storagelocations":{"get":{"description":"","operationId":"getFacilityStorageLocations","parameters":[{"description":"ID of facility from which you want to get the storage locations. Also accepts tenantFacilityId in urn format (e.g. urn:fft:facility:tenantFacilityId:{your-tenant-facility-id})","in":"path","name":"facilityId","required":true,"schema":{"type":"string"}},{"description":"all entities after given Id","in":"query","name":"startAfterId","required":false,"schema":{"type":"string"}},{"description":"number of entities to show","in":"query","name":"size","required":false,"schema":{"default":25,"type":"integer"}},{"description":"limit result to storage locations with scannable code","in":"query","name":"scannableCode","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/StorageLocation"},"type":"array"}}},"description":"Facility was found & you are allowed to get the storage locations. The result is in the body."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user is not allowed to operate against this API instance"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user, although recognized, is not authorized to use this endpoint"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Facility not found"}},"summary":"List facility storage locations","tags":["Storage Locations (Inventory)"]}}}}
```

## Update facility storage location

> Replaces the current storage locations of this Facility with the provided in the body.

```json
{"openapi":"3.0.1","info":{"title":"fulfillmenttools","version":"VERSIONLESS"},"tags":[{"description":"Endpoints to create, update, and read storage locations and zones.","name":"Storage Locations (Inventory)"}],"servers":[{"url":"https://{tenant}.api.fulfillmenttools.com","variables":{"tenant":{"default":"your-tenant-name"}}}],"security":[{"BearerToken":[]}],"components":{"securitySchemes":{"BearerToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"StorageLocationForReplacement":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForCreation"}],"properties":{"version":{"format":"int64","type":"integer"}},"required":["version"],"type":"object","xml":{"name":"StorageLocationForReplacement"},"title":"StorageLocationForReplacement","description":"StorageLocationForReplacement"},"StorageLocationForCreation":{"allOf":[{"$ref":"#/components/schemas/CustomAttributesResource"}],"properties":{"information":{"description":"A free text information about this storage location, max length 1024","maxLength":1024,"type":"string"},"name":{"description":"The name of this storage location","maxLength":15,"type":"string"},"runningSequences":{"description":"The Sequence item/s of this location","items":{"$ref":"#/components/schemas/StorageLocationSequenceItem"},"maxItems":10,"type":"array"},"scannableCodes":{"description":"Barcodes representing this storage location","items":{"type":"string"},"maxItems":5,"type":"array"},"tenantLocationId":{"description":"The internal tenant id for this location","type":"string"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location, includes both local config and and defaults. Do not use to write to traits, use traitConfig instead.","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"type":{"$ref":"#/components/schemas/StorageLocationType"},"zoneName":{"description":"The name of the Zone to which this storage location belongs","type":"string"},"zoneRef":{"description":"The id of the Zone to which this storage location belongs","type":"string"}},"required":["name","runningSequences","scannableCodes","type"],"type":"object","xml":{"name":"StorageLocationForCreation"},"title":"StorageLocationForCreation","description":"StorageLocationForCreation"},"CustomAttributesResource":{"properties":{"customAttributes":{"description":"Attributes that can be added to this entity. These attributes **cannot** be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.","nullable":true,"type":"object"}},"title":"CustomAttributesResource","type":"object","description":"CustomAttributesResource"},"StorageLocationSequenceItem":{"properties":{"nextStorageLocationRef":{"description":"The next storage from which to pick up after this one","type":"string"},"previousStorageLocationRef":{"description":"The previous storage from which to pick up after this one","type":"string"},"score":{"deprecated":true,"description":"Running sequence score - read-only","type":"number"},"type":{"$ref":"#/components/schemas/StorageLocationSequenceType"}},"required":["type"],"type":"object","xml":{"name":"StorageLocationSequenceItem"},"title":"StorageLocationSequenceItem","description":"StorageLocationSequenceItem"},"StorageLocationSequenceType":{"description":"Describes the type of a storage location sequence type\n  * `PICKING_SEQUENCE`- The sequence in wich the storage locations are picked.\n  * `RESTOW_SEQUENCE`- The sequence in wich the storage locations are restowed.","enum":["PICKING_SEQUENCE","RESTOW_SEQUENCE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationSequenceType"},"StorageLocationTraitConfig":{"description":"The configuration of the traits of this storage location","items":{"properties":{"enabled":{"type":"boolean"},"trait":{"$ref":"#/components/schemas/StorageLocationTrait"}},"required":["trait","enabled"],"type":"object"},"type":"array","title":"StorageLocationTraitConfig"},"StorageLocationTrait":{"description":"Describes what kind of actions this stock is available for\n  * `PICKABLE`- The stock is available for picking\n  * `ACCESSIBLE`- The stock is available for stock movements (stowing, inbound, etc)\n  * `KEEP_ON_ZERO`- The stock will not be deleted when emptied\n  * `OUTBOUND`- The stock is intended for outbound processes\n  * `IN_MOTION`- The stock is in motion, used by StowJobs.","enum":["PICKABLE","ACCESSIBLE","KEEP_ON_ZERO","OUTBOUND","IN_MOTION"],"type":"string","xml":{"name":"StorageLocationTrait"},"title":"StorageLocationTrait"},"StorageLocationType":{"description":"Describes the kind of a storage location:\n  * `SINGLE_STORAGE`- it is only allowed to store stock with the same tenantArticleId here\n  * `BULK_STORAGE`- stocks belonging to different tenantArticleIds can be stored here","enum":["SINGLE_STORAGE","BULK_STORAGE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationType"},"StorageLocation":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForReplacement"},{"$ref":"#/components/schemas/VersionedResource"}],"properties":{"facilityRef":{"description":"The id of the facility reference.","type":"string"},"id":{"description":"The id of this storage location","type":"string"},"schemaVersion":{"type":"number"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"zoneName":{"deprecated":true,"description":"Deprecated! This field will not be filled in newly created storage locations. Resolve the zone name separately via the facilities/{id}/zones endpoint. The name of the Zone to which this storage location belongs","type":"string"}},"required":["id","facilityRef","traits"],"type":"object","xml":{"name":"StorageLocation"},"title":"StorageLocation","description":"StorageLocation"},"VersionedResource":{"properties":{"created":{"description":"The date this entity was created at the platform. This value is generated by the service.","format":"date-time","type":"string"},"lastModified":{"description":"The date this entity was modified last. This value is generated by the service.","format":"date-time","type":"string"},"version":{"description":"The version of the document to be used in optimistic locking mechanisms.","format":"int64","type":"integer"}},"required":["version"],"type":"object","title":"VersionedResource","description":"VersionedResource"},"ApiError":{"items":{"$ref":"#/components/schemas/ErrorInner"},"type":"array","xml":{"name":"ApiError"},"title":"ApiError","description":"ApiError"},"ErrorInner":{"properties":{"description":{"type":"string"},"requestVersion":{"description":"The version provided within an invalid request.","format":"int64","type":"integer"},"summary":{"type":"string"},"version":{"format":"int64","type":"integer"}},"required":["summary"],"type":"object","title":"ErrorInner","description":"ErrorInner"}}},"paths":{"/api/facilities/{facilityId}/storagelocations/{storageLocationId}":{"put":{"description":"Replaces the current storage locations of this Facility with the provided in the body.","operationId":"putFacilityStorageLocation","parameters":[{"description":"ID of facility from whom you want to put the storage locations","in":"path","name":"facilityId","required":true,"schema":{"type":"string"}},{"description":"the ID of the storageLocation","in":"path","name":"storageLocationId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageLocationForReplacement"}}},"description":"Patch set","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageLocation"}}},"description":"Storage location was found & you were allowed to update it."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user is not allowed to operate against this API instance"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user, although recognized, is not authorized to use this endpoint"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Facility or Storage Location not found"}},"summary":"Update facility storage location","tags":["Storage Locations (Inventory)"]}}}}
```

## Create facility storage location

> Creates a new storage location in this facility.

```json
{"openapi":"3.0.1","info":{"title":"fulfillmenttools","version":"VERSIONLESS"},"tags":[{"description":"Endpoints to create, update, and read storage locations and zones.","name":"Storage Locations (Inventory)"}],"servers":[{"url":"https://{tenant}.api.fulfillmenttools.com","variables":{"tenant":{"default":"your-tenant-name"}}}],"security":[{"BearerToken":[]}],"components":{"securitySchemes":{"BearerToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"StorageLocationForCreation":{"allOf":[{"$ref":"#/components/schemas/CustomAttributesResource"}],"properties":{"information":{"description":"A free text information about this storage location, max length 1024","maxLength":1024,"type":"string"},"name":{"description":"The name of this storage location","maxLength":15,"type":"string"},"runningSequences":{"description":"The Sequence item/s of this location","items":{"$ref":"#/components/schemas/StorageLocationSequenceItem"},"maxItems":10,"type":"array"},"scannableCodes":{"description":"Barcodes representing this storage location","items":{"type":"string"},"maxItems":5,"type":"array"},"tenantLocationId":{"description":"The internal tenant id for this location","type":"string"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location, includes both local config and and defaults. Do not use to write to traits, use traitConfig instead.","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"type":{"$ref":"#/components/schemas/StorageLocationType"},"zoneName":{"description":"The name of the Zone to which this storage location belongs","type":"string"},"zoneRef":{"description":"The id of the Zone to which this storage location belongs","type":"string"}},"required":["name","runningSequences","scannableCodes","type"],"type":"object","xml":{"name":"StorageLocationForCreation"},"title":"StorageLocationForCreation","description":"StorageLocationForCreation"},"CustomAttributesResource":{"properties":{"customAttributes":{"description":"Attributes that can be added to this entity. These attributes **cannot** be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.","nullable":true,"type":"object"}},"title":"CustomAttributesResource","type":"object","description":"CustomAttributesResource"},"StorageLocationSequenceItem":{"properties":{"nextStorageLocationRef":{"description":"The next storage from which to pick up after this one","type":"string"},"previousStorageLocationRef":{"description":"The previous storage from which to pick up after this one","type":"string"},"score":{"deprecated":true,"description":"Running sequence score - read-only","type":"number"},"type":{"$ref":"#/components/schemas/StorageLocationSequenceType"}},"required":["type"],"type":"object","xml":{"name":"StorageLocationSequenceItem"},"title":"StorageLocationSequenceItem","description":"StorageLocationSequenceItem"},"StorageLocationSequenceType":{"description":"Describes the type of a storage location sequence type\n  * `PICKING_SEQUENCE`- The sequence in wich the storage locations are picked.\n  * `RESTOW_SEQUENCE`- The sequence in wich the storage locations are restowed.","enum":["PICKING_SEQUENCE","RESTOW_SEQUENCE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationSequenceType"},"StorageLocationTraitConfig":{"description":"The configuration of the traits of this storage location","items":{"properties":{"enabled":{"type":"boolean"},"trait":{"$ref":"#/components/schemas/StorageLocationTrait"}},"required":["trait","enabled"],"type":"object"},"type":"array","title":"StorageLocationTraitConfig"},"StorageLocationTrait":{"description":"Describes what kind of actions this stock is available for\n  * `PICKABLE`- The stock is available for picking\n  * `ACCESSIBLE`- The stock is available for stock movements (stowing, inbound, etc)\n  * `KEEP_ON_ZERO`- The stock will not be deleted when emptied\n  * `OUTBOUND`- The stock is intended for outbound processes\n  * `IN_MOTION`- The stock is in motion, used by StowJobs.","enum":["PICKABLE","ACCESSIBLE","KEEP_ON_ZERO","OUTBOUND","IN_MOTION"],"type":"string","xml":{"name":"StorageLocationTrait"},"title":"StorageLocationTrait"},"StorageLocationType":{"description":"Describes the kind of a storage location:\n  * `SINGLE_STORAGE`- it is only allowed to store stock with the same tenantArticleId here\n  * `BULK_STORAGE`- stocks belonging to different tenantArticleIds can be stored here","enum":["SINGLE_STORAGE","BULK_STORAGE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationType"},"StorageLocation":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForReplacement"},{"$ref":"#/components/schemas/VersionedResource"}],"properties":{"facilityRef":{"description":"The id of the facility reference.","type":"string"},"id":{"description":"The id of this storage location","type":"string"},"schemaVersion":{"type":"number"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"zoneName":{"deprecated":true,"description":"Deprecated! This field will not be filled in newly created storage locations. Resolve the zone name separately via the facilities/{id}/zones endpoint. The name of the Zone to which this storage location belongs","type":"string"}},"required":["id","facilityRef","traits"],"type":"object","xml":{"name":"StorageLocation"},"title":"StorageLocation","description":"StorageLocation"},"StorageLocationForReplacement":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForCreation"}],"properties":{"version":{"format":"int64","type":"integer"}},"required":["version"],"type":"object","xml":{"name":"StorageLocationForReplacement"},"title":"StorageLocationForReplacement","description":"StorageLocationForReplacement"},"VersionedResource":{"properties":{"created":{"description":"The date this entity was created at the platform. This value is generated by the service.","format":"date-time","type":"string"},"lastModified":{"description":"The date this entity was modified last. This value is generated by the service.","format":"date-time","type":"string"},"version":{"description":"The version of the document to be used in optimistic locking mechanisms.","format":"int64","type":"integer"}},"required":["version"],"type":"object","title":"VersionedResource","description":"VersionedResource"},"ApiError":{"items":{"$ref":"#/components/schemas/ErrorInner"},"type":"array","xml":{"name":"ApiError"},"title":"ApiError","description":"ApiError"},"ErrorInner":{"properties":{"description":{"type":"string"},"requestVersion":{"description":"The version provided within an invalid request.","format":"int64","type":"integer"},"summary":{"type":"string"},"version":{"format":"int64","type":"integer"}},"required":["summary"],"type":"object","title":"ErrorInner","description":"ErrorInner"}}},"paths":{"/api/facilities/{facilityId}/storagelocations":{"post":{"description":"Creates a new storage location in this facility.","operationId":"postFacilityStorageLocations","parameters":[{"description":"ID of facility from whom you want to create the storage location","in":"path","name":"facilityId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageLocationForCreation"}}},"description":"Patch set","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageLocation"}}},"description":"The storage location was successfully created."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user is not allowed to operate against this API instance"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user, although recognized, is not authorized to use this endpoint"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Facility not found"}},"summary":"Create facility storage location","tags":["Storage Locations (Inventory)"]}}}}
```

## Update facility storage location

> Adds new storage locations, updates existing ones and keeps the previously present ones in the database.\
> \
> 1\. If a storage location exists in the patch action but not in the database it is added.\
> 2\. If a storage location exists both in the patch action and in the database it is updated and the contents merged.\
> 3\. If a storage location exists only in the database, it is left untouched.<br>

```json
{"openapi":"3.0.1","info":{"title":"fulfillmenttools","version":"VERSIONLESS"},"tags":[{"description":"Endpoints to create, update, and read storage locations and zones.","name":"Storage Locations (Inventory)"}],"servers":[{"url":"https://{tenant}.api.fulfillmenttools.com","variables":{"tenant":{"default":"your-tenant-name"}}}],"security":[{"BearerToken":[]}],"components":{"securitySchemes":{"BearerToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"StorageLocationPatchActions":{"properties":{"actions":{"items":{"$ref":"#/components/schemas/ModifyStorageLocationAction"},"minItems":1,"type":"array"},"version":{"description":"The version of the facility where we want to patch the storage locations to be used in optimistic locking mechanisms.","format":"int64","type":"integer"}},"required":["version","actions"],"type":"object","xml":{"name":"StorageLocationPatchActions"},"title":"StorageLocationPatchActions","description":"StorageLocationPatchActions"},"ModifyStorageLocationAction":{"allOf":[{"$ref":"#/components/schemas/AbstractModificationAction"},{"additionalProperties":false,"properties":{"action":{"description":"Use value 'ModifyStorageLocation', because you want to modify a storage location","enum":["ModifyStorageLocation"],"type":"string"},"customAttributes":{"description":"Attributes that can be added to the storage location. These attributes cannot be used within fulfillment processes, but it could be useful to have the informations carried here.","type":"object"},"information":{"description":"A free text information about this storage location, max length 1024","maxLength":1024,"type":"string"},"name":{"description":"The name of this storage location","maxLength":15,"type":"string"},"runningSequences":{"description":"The Sequence item/s of this location","items":{"$ref":"#/components/schemas/StorageLocationSequenceItem"},"maxItems":10,"type":"array"},"scannableCodes":{"description":"Barcodes representing this storage location","items":{"type":"string"},"maxItems":5,"type":"array"},"tenantLocationId":{"description":"The internal tenant id for this location","type":"string"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"deprecated":true,"description":"The traits of this storage location. Do not use this to write traits, use traitConfig instead.","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"type":{"$ref":"#/components/schemas/StorageLocationType"},"zoneRef":{"description":"The id of the Zone to which this storage location belongs.","type":"string"}},"required":["action"],"type":"object"}],"xml":{"name":"ModifyStorageLocationAction"},"title":"ModifyStorageLocationAction","description":"ModifyStorageLocationAction"},"AbstractModificationAction":{"discriminator":{"propertyName":"action"},"properties":{"action":{"description":"","enum":["AddAllowedValueToTag","CancelHandoverjob","ModifyPackJob","PausePackJob","ModifyPackLineItem","SplitLineItemsPackJob","ModifyFacility","ModifyListing","ModifyRetainedOfflineStock","ModifyListingReactivationAfter","ModifyUser","ModifyShipment","ModifyHandoverjob","ModifyCarrier","ModifyShortpick","ModifyRoutingPlan","ModifyFence","ModifyRating","ModifyTimingMode","ModifyGlobalRoutingConfiguration","ModifyOrderSplit","ModifyPrioritization","ModifyFeature","ModifyParcel","ModifyParcelLoadUnit","ModifyRestowItem","ModifyPartialStock","AddTagsToProcess","AssignFacilityToProcess","UpdateGdprCleanupDateAction","ModifyStorageLocation","ModifyPackingContainerType","ModifyPackingContainerTypeIcon","ReplaceCodesInPackingTargetContainer","AddLineItemToPackingTargetContainer","RemoveLineItemFromPackingTargetContainer","UpdateLineItemOnPackingTargetContainer","UpdatePackingTargetContainerLineItemRecordableAttributes","UpdatePackingTargetContainerStorageLocation","ModifyCustomService","UnlockOrder"],"type":"string"}},"required":["action"],"type":"object","xml":{"name":"AbstractModificationAction"},"title":"AbstractModificationAction","description":"AbstractModificationAction"},"StorageLocationSequenceItem":{"properties":{"nextStorageLocationRef":{"description":"The next storage from which to pick up after this one","type":"string"},"previousStorageLocationRef":{"description":"The previous storage from which to pick up after this one","type":"string"},"score":{"deprecated":true,"description":"Running sequence score - read-only","type":"number"},"type":{"$ref":"#/components/schemas/StorageLocationSequenceType"}},"required":["type"],"type":"object","xml":{"name":"StorageLocationSequenceItem"},"title":"StorageLocationSequenceItem","description":"StorageLocationSequenceItem"},"StorageLocationSequenceType":{"description":"Describes the type of a storage location sequence type\n  * `PICKING_SEQUENCE`- The sequence in wich the storage locations are picked.\n  * `RESTOW_SEQUENCE`- The sequence in wich the storage locations are restowed.","enum":["PICKING_SEQUENCE","RESTOW_SEQUENCE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationSequenceType"},"StorageLocationTraitConfig":{"description":"The configuration of the traits of this storage location","items":{"properties":{"enabled":{"type":"boolean"},"trait":{"$ref":"#/components/schemas/StorageLocationTrait"}},"required":["trait","enabled"],"type":"object"},"type":"array","title":"StorageLocationTraitConfig"},"StorageLocationTrait":{"description":"Describes what kind of actions this stock is available for\n  * `PICKABLE`- The stock is available for picking\n  * `ACCESSIBLE`- The stock is available for stock movements (stowing, inbound, etc)\n  * `KEEP_ON_ZERO`- The stock will not be deleted when emptied\n  * `OUTBOUND`- The stock is intended for outbound processes\n  * `IN_MOTION`- The stock is in motion, used by StowJobs.","enum":["PICKABLE","ACCESSIBLE","KEEP_ON_ZERO","OUTBOUND","IN_MOTION"],"type":"string","xml":{"name":"StorageLocationTrait"},"title":"StorageLocationTrait"},"StorageLocationType":{"description":"Describes the kind of a storage location:\n  * `SINGLE_STORAGE`- it is only allowed to store stock with the same tenantArticleId here\n  * `BULK_STORAGE`- stocks belonging to different tenantArticleIds can be stored here","enum":["SINGLE_STORAGE","BULK_STORAGE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationType"},"StorageLocation":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForReplacement"},{"$ref":"#/components/schemas/VersionedResource"}],"properties":{"facilityRef":{"description":"The id of the facility reference.","type":"string"},"id":{"description":"The id of this storage location","type":"string"},"schemaVersion":{"type":"number"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"zoneName":{"deprecated":true,"description":"Deprecated! This field will not be filled in newly created storage locations. Resolve the zone name separately via the facilities/{id}/zones endpoint. The name of the Zone to which this storage location belongs","type":"string"}},"required":["id","facilityRef","traits"],"type":"object","xml":{"name":"StorageLocation"},"title":"StorageLocation","description":"StorageLocation"},"StorageLocationForReplacement":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForCreation"}],"properties":{"version":{"format":"int64","type":"integer"}},"required":["version"],"type":"object","xml":{"name":"StorageLocationForReplacement"},"title":"StorageLocationForReplacement","description":"StorageLocationForReplacement"},"StorageLocationForCreation":{"allOf":[{"$ref":"#/components/schemas/CustomAttributesResource"}],"properties":{"information":{"description":"A free text information about this storage location, max length 1024","maxLength":1024,"type":"string"},"name":{"description":"The name of this storage location","maxLength":15,"type":"string"},"runningSequences":{"description":"The Sequence item/s of this location","items":{"$ref":"#/components/schemas/StorageLocationSequenceItem"},"maxItems":10,"type":"array"},"scannableCodes":{"description":"Barcodes representing this storage location","items":{"type":"string"},"maxItems":5,"type":"array"},"tenantLocationId":{"description":"The internal tenant id for this location","type":"string"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location, includes both local config and and defaults. Do not use to write to traits, use traitConfig instead.","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"type":{"$ref":"#/components/schemas/StorageLocationType"},"zoneName":{"description":"The name of the Zone to which this storage location belongs","type":"string"},"zoneRef":{"description":"The id of the Zone to which this storage location belongs","type":"string"}},"required":["name","runningSequences","scannableCodes","type"],"type":"object","xml":{"name":"StorageLocationForCreation"},"title":"StorageLocationForCreation","description":"StorageLocationForCreation"},"CustomAttributesResource":{"properties":{"customAttributes":{"description":"Attributes that can be added to this entity. These attributes **cannot** be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.","nullable":true,"type":"object"}},"title":"CustomAttributesResource","type":"object","description":"CustomAttributesResource"},"VersionedResource":{"properties":{"created":{"description":"The date this entity was created at the platform. This value is generated by the service.","format":"date-time","type":"string"},"lastModified":{"description":"The date this entity was modified last. This value is generated by the service.","format":"date-time","type":"string"},"version":{"description":"The version of the document to be used in optimistic locking mechanisms.","format":"int64","type":"integer"}},"required":["version"],"type":"object","title":"VersionedResource","description":"VersionedResource"},"ApiError":{"items":{"$ref":"#/components/schemas/ErrorInner"},"type":"array","xml":{"name":"ApiError"},"title":"ApiError","description":"ApiError"},"ErrorInner":{"properties":{"description":{"type":"string"},"requestVersion":{"description":"The version provided within an invalid request.","format":"int64","type":"integer"},"summary":{"type":"string"},"version":{"format":"int64","type":"integer"}},"required":["summary"],"type":"object","title":"ErrorInner","description":"ErrorInner"}}},"paths":{"/api/facilities/{facilityId}/storagelocations/{storageLocationId}":{"patch":{"description":"Adds new storage locations, updates existing ones and keeps the previously present ones in the database.\n\n1. If a storage location exists in the patch action but not in the database it is added.\n2. If a storage location exists both in the patch action and in the database it is updated and the contents merged.\n3. If a storage location exists only in the database, it is left untouched.\n","operationId":"patchFacilityStorageLocation","parameters":[{"description":"ID of facility you want to patch the storage locations","in":"path","name":"facilityId","required":true,"schema":{"type":"string"}},{"description":"the ID of the storageLocation","in":"path","name":"storageLocationId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageLocationPatchActions"}}},"description":"Patch set","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageLocation"}}},"description":"Storage location was found & you were allowed to update it."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user is not allowed to operate against this API instance"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user, although recognized, is not authorized to use this endpoint"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Facility or Storage location not found"}},"summary":"Update facility storage location","tags":["Storage Locations (Inventory)"]}}}}
```

## DELETE /api/facilities/{facilityId}/storagelocations/{storageLocationId}

> Delete facility storage location

```json
{"openapi":"3.0.1","info":{"title":"fulfillmenttools","version":"VERSIONLESS"},"tags":[{"description":"Endpoints to create, update, and read storage locations and zones.","name":"Storage Locations (Inventory)"}],"servers":[{"url":"https://{tenant}.api.fulfillmenttools.com","variables":{"tenant":{"default":"your-tenant-name"}}}],"security":[{"BearerToken":[]}],"components":{"securitySchemes":{"BearerToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"ApiError":{"items":{"$ref":"#/components/schemas/ErrorInner"},"type":"array","xml":{"name":"ApiError"},"title":"ApiError","description":"ApiError"},"ErrorInner":{"properties":{"description":{"type":"string"},"requestVersion":{"description":"The version provided within an invalid request.","format":"int64","type":"integer"},"summary":{"type":"string"},"version":{"format":"int64","type":"integer"}},"required":["summary"],"type":"object","title":"ErrorInner","description":"ErrorInner"}}},"paths":{"/api/facilities/{facilityId}/storagelocations/{storageLocationId}":{"delete":{"description":"","operationId":"deleteFacilityStorageLocation","parameters":[{"description":"ID of facility from whom you want to delete the storage location","in":"path","name":"facilityId","required":true,"schema":{"type":"string"}},{"description":"ID of the storageLocation you want to delete","in":"path","name":"storageLocationId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Storage location was found & you were allowed to delete it."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user is not allowed to operate against this API instance"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user, although recognized, is not authorized to use this endpoint"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Facility or storage location not found"}},"summary":"Delete facility storage location","tags":["Storage Locations (Inventory)"]}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.fulfillmenttools.com/documentation/by-pillar/global-inventory-hub/storage-locations-and-zones/storage-locations-endpoints.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
