---
title: "List locations"
method: GET
path: "/v1/org-nodes"
tags: ["org-nodes"]
---

# List locations

`GET /v1/org-nodes`

## Request

- Base URL: `https://api.brixsignage.com`
- URL: `https://api.brixsignage.com/v1/org-nodes`
- Auth: HTTP bearer

Returns the workspace's location tree, for example districts, regions, sites, and departments, with each location's path and member count.

Every location in the workspace tree the caller may see (not paginated). Build the tree from `parentId`.

## Response `200`

Success.

- object
  - `data` Location[], required
    - `id` string, required: Location (org node) id.
    - `name` string, required
    - `parentId` string, nullable, required: Parent location; null for the workspace root.
    - `externalId` string, nullable, required: Your own location code (store number, region code). Unique in the workspace.
    - `timezone` string, nullable, required: IANA zone screens here inherit, e.g. `America/Chicago`.
    - `tier` integer, required: Depth: 1 = the workspace root.
    - `isSpace` boolean, required: True for a workspace (Space) boundary: the root, or a franchise child workspace.
    - `payment` 'awaiting' | 'live', nullable, required: A location that pays for itself: `awaiting` (its screens wait on the hold card for its card), `live` (its own payer pays). Null when the account pays.
    - `paymentTrial` 'card_added' | 'no_card', nullable, required: While the account is in its free trial the location plays like any trial location: `card_added` (its year starts when the trial ends) or `no_card` (it waits on the hold card from then). Null outside the trial.
    - `screenCount` integer, required: Screens placed directly at this location (not its children).
    - `members` object[], required: People granted a role at this location.
      - `userId` string, required
      - `userName` string, required
      - `roleId` string, required
      - `roleName` string, required
      - `roleColor` string, nullable, required
      - `source` string, nullable, required: `sso:<connectionId>` when an identity provider granted this; null when granted in Brix.
    - `featureOverrides` unknown, required
    - `approval` ApprovalPolicy, required: The location's content-approval policy, as stored. New locations inherit `{required:false, inheritFromParent:true, …}`.
      - `required` boolean
      - `inheritFromParent` boolean
      - `escalateUpTiers` boolean
      - `allowSharedExemptions` boolean
      - `approvers` string[]: User ids named as approvers.
    - `billing` unknown, required
    - `prefs` LocationPrefs, required: Inheritable per-location settings (nearest ancestor wins).
      - `location` object, nullable, required: Physical place screens here inherit (drives weather and other location-aware apps).
        - `label` string, required
        - `lat` number, required
        - `lng` number, required
      - `language` string, nullable, required: BCP 47 tag screens here inherit, e.g. `de-DE`.
      - `defaultContent` object, nullable, required: What screens here play when they have no content of their own.
        - `kind` 'playlist' | 'schedule' | 'layout' | 'creative' | 'app' | 'media' | 'signage', required
        - `id` string, required

## Other responses

- `401`: Missing, expired or revoked bearer token.
- `403`: The token lacks the permission this operation needs (see `x-brix-permission`).
- `5XX`: Server error. The body carries a `requestId` to quote to support.

---

[API](https://skmtc.dev/brixsignage/apis/brix-api.md) · [All operations](https://skmtc.dev/brixsignage/apis/brix-api/llms.txt) · [OpenAPI document](https://skmtc.dev/brixsignage/apis/brix-api/revisions/02fd3665dc7d?raw)
