---
title: "List offices"
method: GET
path: "/v3/offices"
tags: ["Offices"]
---

# List offices

`GET /v3/offices`

## Request

- Base URL: `https://harvest.greenhouse.io`
- URL: `https://harvest.greenhouse.io/v3/offices`
- Auth: one of:
  - OAuth 2
    - Authorization code: `https://auth.greenhouse.io/authorize`
    - Client credentials
    - Token URL: `https://auth.greenhouse.io/token` scopes: `harvest:offices:list`
  - HTTP bearer

Offices are the organization's recruiting locations (e.g. `San Francisco`, `New York`, `Remote (US)`) and the foundational scoping unit for jobs, candidates, custom-field visibility, and pay-range display. Each organization defines its own office set, optionally organized as a hierarchy via `parent_id`. Use this endpoint to enumerate the office tree for filtering, lookup, or downstream resource scoping.

## Query parameters

- `cursor` string
- `per_page` integer
- `ids` integer[]
- `created_at` object
  - `gte` string, date-time
  - `lte` string, date-time
  - `gt` string, date-time
  - `lt` string, date-time
- `updated_at` object
  - `gte` string, date-time
  - `lte` string, date-time
  - `gt` string, date-time
  - `lt` string, date-time
- `fields` string[]
- `parent_id` integer
- `external_id` string

## Response `200`

Successful

- object[]
  - `id` integer
  - `created_at` string, date-time
  - `updated_at` string, date-time
  - `name` string: Display name of the office (e.g. `San Francisco`, `Remote (US)`). Unique among active offices in the same organization.
  - `parent_id` integer, nullable: Id of the parent office when offices are organized hierarchically. `null` for top-level offices. References another `/v3/offices` row in the same organization.
  - `external_id` string, nullable: Stable identifier supplied by the customer or HRIS for cross-system reconciliation. `null` when no external id has been set. Available when the `org_structure_external_id` product flag is enabled.
  - `external_parent_id` string, nullable: `external_id` of the parent office, for partners that key the office hierarchy by external id rather than Greenhouse id. Mirrors the `external_parent_id` accepted on create and update. `null` for top-level offices and when the parent has no external id set.
  - `location` string, nullable: Free-form physical location string for the office (e.g. `New York, NY, USA`). `null` for offices that have no location set, including most remote offices.
  - `primary_in_house_contact_user_id` integer, nullable: Id of the Greenhouse user designated as the office's primary internal contact, typically the local recruiting lead. References a `/v3/users` row. `null` when no contact has been assigned.

---

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