---
title: "Gets a paginated list of performance review cycles"
method: GET
path: "/v1/perform/review-cycles"
---

# Gets a paginated list of performance review cycles

`GET /v1/perform/review-cycles`

## Request

- Base URL: `https://api.nectarhr.com`
- URL: `https://api.nectarhr.com/v1/perform/review-cycles`
- Auth: HTTP bearer

Cycle metadata, so completion records have context. Each cycle lists its enabled review directions with the period each one ran for.

Deleted cycles are not returned, which matches the review completions resource.

## Query parameters

- `status` 'DRAFT' | 'SCHEDULED' | 'ACTIVE' | 'CLOSED'
- `updated-since` string, date-time
- `cursor` string, uuid
- `limit` number

## Response `200`

OK

- object
  - `status` 'success'
  - `links` Links
    - `self` string, uri
    - `related` object[]
      - `type` string
      - `href` string, uri
  - `data` object
    - `total` integer: Total cycles matching the filters, across all pages — not the size of this page. Returned on the first page only.
    - `review_cycles` ReviewCycle[]
      - `id` string, uuid
      - `name` string
      - `description` string, nullable
      - `status` 'DRAFT' | 'SCHEDULED' | 'ACTIVE' | 'CLOSED'
      - `created_at` string, date-time, nullable
      - `updated_at` string, date-time, nullable
      - `directions` ReviewCycleDirection[]: The review directions this cycle ran, each with the window it was open for submissions.
        - `direction` 'SELF' | 'MANAGER' | 'PEER'
        - `opened_at` string, date-time, nullable: When this review direction opened for reviewers to begin submitting, ISO-8601 in UTC. Null if the cycle has not been scheduled.
        - `closed_at` string, date-time, nullable: When this review direction closed to further submissions, ISO-8601 in UTC. Null if the cycle has not been scheduled.

## Other responses

- `400`: `BAD REQUEST`: Body or Query Params are malformed (missing, extra, or invalid values)
- `401`: `UNAUTHORIZED`: Request was sent with an expired or missing API Key
- `403`: `FORBIDDEN`: Request was authenticated but the resource requested is missing or not accessible with that key
- `404`: `NOT FOUND`: The requested resource was not found
- `429`: `TOO MANY REQUESTS`: Company is being rate limited
- `500`: `INTERNAL SERVER ERROR`: Request was unable to be processed due to a server error. Contact our support team.
- `501`: `NOT IMPLEMENTED`: Method is not implemented on that endpoint.

## Changes

- **2026-09-26** `f73e78f563b0`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/nectarhr/apis/nectar-public-api/changes/v1/perform/review-cycles/get.md)

---

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