---
title: "Reads all Payroll runs"
method: GET
path: "/api/2026-10-01/resources/compensations/payroll_runs"
tags: ["Compensations > PayrollRun"]
---

# Reads all Payroll runs

`GET /api/2026-10-01/resources/compensations/payroll_runs`

## Request

- Base URL: `https://api.factorialhr.com`
- URL: `https://api.factorialhr.com/api/2026-10-01/resources/compensations/payroll_runs`
- Auth: one of:
  - OAuth 2
    - Authorization code: `https://id.factorialhr.com/oauth/authorize`
    - Token URL: `https://id.factorialhr.com/api/oauth/token` scopes: `compensations`
  - API key in header `x-api-key`

Retrieves payroll runs

## Query parameters

- `ids[]` string[]: Filter by payroll run ids
- `from` string: Lower bound for the run end date (ends_on >= from)
- `to` string: Upper bound for the run start date (starts_on <= to)
- `company_id` string: Filter by company id (single)
- `cycle_ids[]` string[]: Filter by parent cycle ids
- `statuses[]` string[]: Filter by run statuses
- `payment_types[]` string[]: Filter by payment types (regular, extra_pay)
- `include_hidden` boolean: Include hidden cycles' runs in the response

## Response `200`

OK

- object
  - `data` CompensationsPayrollRun[]
    - `id` string, required: Payroll run id
    - `label` string, required: Localized label for the run (month and year)
    - `starts_on` string, required: Start date of the run period
    - `ends_on` string, required: End date of the run period
    - `status` string, required: Run status (open, in_review, completed, etc.)
    - `locked` boolean, required: Whether the run is locked
    - `locked_at` string: When the run was locked, if it is locked
    - `cycle_id` string: Parent cycle id (nil for off-cycle runs)
    - `company_id` string, required: Owning company id
    - `payment_type` 'regular' | 'severance' | 'extra_pay' | 'delayed_payment' | 'bonus_benefit' | 'salary_advance' | 'rate_difference': Payment type (regular / extra_pay)
    - `closure_date` string: Effective closure date (override if present, otherwise computed closure_date)
    - `alerts_date` string: Date when alerts are dispatched
    - `created_at` string: Timestamp when the run record was created
    - `updated_at` string: Timestamp when the run record was last updated
  - `meta` PagedIndexMeta
    - `start_cursor` string
    - `end_cursor` string
    - `has_previous_page` boolean, required
    - `has_next_page` boolean, required
    - `limit` integer, required
    - `total` integer, required

## Changes

- **2026-11-03** `83ac9aa1de50`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/factorialhr/apis/factorial-api/changes/api/2026-10-01/resources/compensations/payroll_runs/get.md)

---

[API](https://skmtc.dev/factorialhr/apis/factorial-api.md) - [All operations](https://skmtc.dev/factorialhr/apis/factorial-api/llms.txt) - [OpenAPI document](https://skmtc.dev/factorialhr/apis/factorial-api/revisions/83ac9aa1de50?raw)
