---
title: "Upsert multiple store locations"
method: POST
path: "/v1/store_locations/upsert/bulk"
tags: ["Store Locations"]
---

# Upsert multiple store locations

`POST /v1/store_locations/upsert/bulk`

## Request

- Base URL: `https://api.sandbox.usenash.com`
- URL: `https://api.sandbox.usenash.com/v1/store_locations/upsert/bulk`
- Auth: none declared

Create or update multiple store locations in a single request. Each store location is matched by external identifier for upsert logic.

## Response `200`

OK

- ListStoreLocationsResponse: Response for list store locations.
  - `storeLocations` StoreLocationResponse[], required
    - `externalId` string, nullable: Store location unique identifier from an external system.
    - `operatingHours` object, nullable: [Integration Specific]: An object with keys that correspond to days of week (monday, tuesday, etc) and their corresponding operating hours / delivery windows.
    - `prepTimeMinutes` integer, nullable: [Integration Specific]: the preparation time to apply for orders, if relying on Nash to compute the delivery windows. This only applies to specific integrations.
    - `blackoutDates` string[], nullable: The blackout dates of the store location.
    - `firstName` string, nullable: First name of the person at the store location. If unknown, pass 'Manager'. Limited to 80 characters.
    - `lastName` string, nullable: Last name of the person at the store location. If unknown, pass 'Manager'. Limited to 80 characters.
    - `email` string, nullable: The email of the person at the store location.
    - `pickupInstructions` string, nullable: The pickup instructions of the store location. Limited to 280 characters. Nash Recommended Input: Order [insert order number] for [insert customer name] from [business name]
    - `id` string, required: The ID of the store location.
    - `name` string, required: The name of the store location.
    - `phoneNumber` string, required: The phone number of the person at the store location.
    - `location` StoreLocationAddressResponse, required
      - `number` string, nullable: The number of the address.
      - `secondaryNumber` string, nullable: The secondary number of the address.
      - `street` string, required: The street of the address. If your geocoding service does not split numbers from street names, you can pass the street name with the number in this field. Example: 1600 Pennsylvania Avenue NW.
      - `county` string, nullable: The county of the address.
      - `city` string, required: The city of the address.
      - `state` string, nullable: The state of the address.
      - `postalCode` string, nullable: The postal code of the address.
      - `country` string, required: The country of the address.
      - `latitude` number, nullable: The latitude of the address.
      - `longitude` number, nullable: The longitude of the address.
      - `timezoneId` string, nullable: IANA time zone of the store location.
    - `zoneIds` string[], nullable, required: The zone ids of the store location.
    - `zoneAssociations` object[], nullable, required: The zone associations of the store location.
    - `tags` string[], nullable, required: The tags of the store location.
    - `integrationMetadata` object, nullable, required: The integration metadata of the store location.

## Other responses

- `422`: Unprocessable Content

---

[API](https://skmtc.dev/nash/apis/nash-api.md) - [All operations](https://skmtc.dev/nash/apis/nash-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nash/apis/nash-api/revisions/e3713837c5c9?raw)
