---
title: "Create a job location"
method: POST
path: "/api/v1/hris/org/locations"
tags: ["Locations", "Public API"]
---

# Create a job location

`POST /api/v1/hris/org/locations`

Creates a new job location. Requires a label and address. If remoteLocation is true, address fields are optional.

OAuth Scopes: field.write

## Request body

- object
  - `label` string, required — Display name for the location
  - `archived` boolean — Whether the location is archived
  - `address` object, required — Address details for the location. When remoteLocation is true, none are required and must be null or omitted
    - `address1` string, nullable
    - `address2` string, nullable
    - `city` string, nullable
    - `stateId` string, nullable
    - `zipcode` string, nullable
    - `countryId` string, nullable
    - `timezone` string, nullable — The utcName value from the /api/v1/meta/timezones endpoint
    - `remoteLocation` boolean, required

## Response `201`

The created location

- LocationResponseObject — Transformer for location data with nested address structure
  - `id` string — Unique identifier for the location
  - `label` string — Display name for the location
  - `archived` boolean — Whether the location is archived
  - `manageable` boolean — Whether the location is manageable
  - `address` object — Address information for the location
    - `address1` string, nullable — Address line 1. Should only be null if this is a remote location
    - `address2` string, nullable — Address line 2
    - `city` string, nullable — City name. Should only be null if this is a remote location
    - `stateId` string, nullable — State identifier. Should only be null if this is a remote location
    - `state` object — State information. Optional and requested via expand property from the request
      - `id` string — State identifier
      - `name` string — State name
      - `abbreviation` string — State abbreviation
    - `zipcode` string, nullable — Postal code. Should only be null if this is a remote location
    - `countryId` string, nullable — Country identifier. Should only be null if this is a remote location
    - `country` object — Country information. Optional and requested via expand property from the request
      - `id` string — Country identifier
      - `name` string — Country name
      - `isoCode` string — Country ISO code
    - `timezone` string, nullable — Timezone name
    - `remoteLocation` boolean — Whether this is a remote location
  - `createdAt` string, date-time, nullable — ISO 8601 timestamp of when the location was created
  - `archivedAt` string, date-time, nullable — ISO 8601 timestamp of when the location was archived

## Other responses

- `403` — Permission denied
- `404` — Location not found
- `409` — Duplicate location label
- `422` — Invalid fields
- `500` — Internal server error

---

[API](https://skmtc.net/bamboohr/apis/bamboohr-api.md) · [All operations](https://skmtc.net/bamboohr/apis/bamboohr-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/bamboohr/bamboohr-api/revisions/19ebf391a399/schema)
