---
title: "Get Levels and Bands Review"
method: GET
path: "/api/v1/pay-grades-and-bands/review"
tags: ["Pay Grades & Bands", "Public API"]
---

# Get Levels and Bands Review

`GET /api/v1/pay-grades-and-bands/review`

## Request

- Base URL: `https://companySubDomain.bamboohr.com`
- URL: `https://companySubDomain.bamboohr.com/api/v1/pay-grades-and-bands/review`
- Auth: OAuth 2
  - Authorization code: `/authorize.php`
  - Token URL: `/token.php` scopes: `pay_grades_and_bands`
- TypeScript: <https://skmtc.dev/bamboohr/apis/bamboohr-api/docs/api/v1/pay-grades-and-bands/review/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns the pre-publish review of compensation level groups and levels with validation `errors` and `warnings` consolidated across every setup-wizard step: level naming, group-level checks, and pay band values. This reflects the working draft configuration; when no draft exists it falls back to the currently published configuration. Requesting this review marks all setup steps as visited for the draft, which changes subsequent Get Levels and Bands Status (`get-levels-and-bands-status`) results. The response is a JSON object with a `groups` array; each group carries its `levels` plus its own `errors` and `warnings`, and each level flattens its pay band into `min`, `mid`, `max`, and `percentageRange` value objects (each wrapping a numeric `value` with its own `errors` and `warnings`), along with `currencyCode`, `compensationType`, and the `jobTitles` assigned to that level. Use this for the complete validation picture that determines whether the configuration can be published. For the editable draft view that validates level and group issues but not pay band values, use List Compensation Level Groups and Levels (`list-compensation-level-groups-and-levels`) instead. For the currently published pay grades and bands without any validation state, use Get Published Levels and Bands (`get-published-levels-and-bands`) instead.

OAuth Scopes: pay_grades_and_bands

## Response `200`

Compensation level groups and levels with consolidated validation state, as an object with a `groups` array.

- object
  - `groups` object[]: Compensation level groups under review. Empty when none are configured.
    - `groupId` integer, nullable: Compensation level group identifier. Null for a not-yet-persisted group.
    - `groupName` string, nullable: Group name.
    - `levels` object[]: Compensation levels in this group.
      - `levelId` integer, nullable: Compensation level identifier. Null for a not-yet-persisted level.
      - `levelName` string, nullable: Level name.
      - `min` LevelsAndBandsPayBandValue: Represents a single compensation pay band value
        - `value` number, float, nullable: The value of the pay band
        - `errors` string[]: Array of validation errors for this pay band
        - `warnings` string[]: Array of validation warnings for this pay band
      - `mid` LevelsAndBandsPayBandValue: Represents a single compensation pay band value
        - `value` number, float, nullable: The value of the pay band
        - `errors` string[]: Array of validation errors for this pay band
        - `warnings` string[]: Array of validation warnings for this pay band
      - `max` LevelsAndBandsPayBandValue: Represents a single compensation pay band value
        - `value` number, float, nullable: The value of the pay band
        - `errors` string[]: Array of validation errors for this pay band
        - `warnings` string[]: Array of validation warnings for this pay band
      - `percentageRange` LevelsAndBandsPayBandValue: Represents a single compensation pay band value
        - `value` number, float, nullable: The value of the pay band
        - `errors` string[]: Array of validation errors for this pay band
        - `warnings` string[]: Array of validation warnings for this pay band
      - `currencyCode` string, nullable: ISO currency code for the pay band values.
      - `compensationType` 'Salary' | 'Hourly': Compensation type for the level.
      - `jobTitles` object[]: Job titles assigned to this level.
        - `id` integer: Job title identifier.
        - `jobTitle` string: Job title name.
      - `errors` string[]: Validation errors for this level.
      - `warnings` string[]: Validation warnings for this level.
    - `errors` string[]: Validation errors for this group.
    - `warnings` string[]: Validation warnings for this group.

## Other responses

- `403`: Insufficient permissions
- `500`: Internal server error

## Changes

- **2026-11-03** `922fc15f43a7`: 1 breaking, 2 warning, 11 info
  - the response property `groups` became optional for the status `200`
  - removed the optional property `groups/items/id` from the response with the `200` status
  - removed the optional property `groups/items/levels/items/payBand` from the response with the `200` status
  - api operation id `12c40475623893cf0434b3ae69e36975` removed and replaced with `get-levels-and-bands-review`
  - …10 more

[Operation history](https://skmtc.dev/bamboohr/apis/bamboohr-api/changes/api/v1/pay-grades-and-bands/review/get.md)

---

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