---
title: "Create locations in bulk"
method: POST
path: "/hub/locations"
tags: ["Hubs"]
---

# Create locations in bulk

`POST /hub/locations`

## Request

- Base URL: `https://api.samsara.com`
- URL: `https://api.samsara.com/hub/locations`
- Auth: HTTP bearer

**Note: This endpoint is deprecated. Use [POST /places](https://developers.samsara.com/reference/postplace) instead. Access closes for new customers on November 1, 2026, and the endpoint will be removed on November 1, 2027. It will continue to function as documented until then. See the [migration guide](https://developers.samsara.com/docs/migrating-from-the-hub-locations-api-to-the-places-api).**

Create new locations.

 <b>Rate limit:</b> 100 requests/min (learn more about rate limits <a href="https://developers.samsara.com/docs/rate-limits" target="_blank">here</a>).

To use this endpoint, select **Write Routes** under the Driver Workflow category when creating or editing an API token. <a href="https://developers.samsara.com/docs/authentication#scopes-for-api-tokens" target="_blank">Learn More.</a>
 

 **Submit Feedback**: Likes, dislikes, and API feature requests should be filed as feedback in our <a href="https://forms.gle/zkD4NCH7HjKb7mm69" target="_blank">API feedback form</a>. If you encountered an issue or noticed inaccuracies in the API documentation, please <a href="https://www.samsara.com/help" target="_blank">submit a case</a> to our support team.

## Request body

- HubLocationsCreateHubLocationsRequestBody: Request body for creating hub locations
  - `data` HubLocationInputObjectRequestBody[], required: An array of location objects to be created or updated
    - `address` string, required: The physical address of the location
    - `customerLocationId` string, required: The customer-provided identifier for the location
    - `driverInstructions` string: Instructions for the driver
    - `hubId` string, required: The ID of the hub this location belongs to
    - `isDepot` boolean, required: Indicates if the location is a depot
    - `latitude` number, double: Latitude coordinate of the location. If not provided and address is provided, the address will be geocoded to obtain coordinates.
    - `longitude` number, double: Longitude coordinate of the location. If not provided and address is provided, the address will be geocoded to obtain coordinates.
    - `name` string, required: The name of the location
    - `plannerNotes` string: Notes for the planner
    - `serviceTimeSeconds` integer: Estimated service time at this location in seconds
    - `serviceWindows` HubLocationServiceWindowInputRequestBody[]: An array of time windows during which service can be performed at this location
      - `daysOfWeek` string[], required: Days of the week when the service window applies
      - `endTime` string, required: End time of the service window, in HH:MM:SS format
      - `startTime` string, required: Start time of the service window, in HH:MM:SS format
    - `skillsRequired` string[]: An array of skill IDs required for service at this location

## Response `200`

OK response.

- HubLocationsCreateHubLocationsResponseBody
  - `data` HubLocationCreatedObjectResponseBody[], required: Created hub locations data
    - `address` string, required: The physical address of the location
    - `createdAt` string, date-time, required: The timestamp (in UTC) when the location was created
    - `customerLocationId` string, required: The customer-provided identifier for the location
    - `driverInstructions` string, required: Instructions for the driver
    - `hubId` string, required: The ID of the hub this location belongs to
    - `id` string, required: The Samsara-generated unique identifier (UUID) for the location
    - `isDepot` boolean, required: Indicates if the location is a depot
    - `latitude` number, double, required: Latitude coordinate of the location
    - `longitude` number, double, required: Longitude coordinate of the location
    - `name` string, required: The name of the location
    - `plannerNotes` string, required: Notes for the planner
    - `serviceTimeSeconds` integer, required: Estimated service time at this location in seconds
    - `serviceWindows` ServiceWindowObjectResponseBody[], required: An array of time windows during which service can be performed at this location
      - `daysOfWeek` string[], required: Days of the week when the service window applies
      - `endTime` string, required: End time of the service window
      - `startTime` string, required: Start time of the service window
    - `skillsRequired` SkillObjectResponseBody[], required: An array of skills required for service at this location
      - `id` string, required: The unique identifier for the skill
      - `name` string, required: The name of the skill
    - `updatedAt` string, date-time, required: The timestamp (in UTC) when the location was last updated

## Other responses

- `401`: Unauthorized response.
- `404`: Not Found response.
- `405`: Method Not Allowed response.
- `413`: Content Too Large response.
- `429`: Too Many Requests response.
- `500`: Internal Server Error response.
- `501`: Not Implemented response.
- `502`: Bad Gateway response.
- `503`: Service Unavailable response.
- `504`: Gateway Timeout response.
- `default`: Bad Request response.

---

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