> ## Documentation Index
> Fetch the complete documentation index at: https://docs.onsi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Cycles

> Search pay cycles, returns the latest pay cycle first

This endpoint returns a list of all pay cycles, past and present.

* `Closed` - The cycle is closed, no moe withdrawals can be made, and you can now perform your final deductions/accounting.
* `Open` - The cycle is open, members can still make withdrawals.

## Ordering and Contiguity

Pay cycles are designed to be perfectly contiguous, meaning they always touch each other with zero gaps between them. For example:

* `2025-06-30` → `2025-07-06` (Open)
* `2025-06-23` → `2025-06-29` (Closed)
* `2025-06-16` → `2025-06-22` (Closed)

The cycles returned are ordered with the most recent cycle first, so the top result will always be the latest cycle and should always be `Open`.


## OpenAPI

````yaml GET /v1/pay/cycles
openapi: 3.0.2
info:
  title: BMO Partner API
  version: v1
servers:
  - url: https://api.onsi.com
    description: Production
  - url: https://api.onsi.dev
    description: Sandbox
security:
  - apiKey: []
paths:
  /v1/pay/cycles:
    get:
      tags:
        - pay
      summary: Search pay cycles
      description: Search pay cycles, returns the latest pay cycle first
      operationId: getPayCycles
      parameters:
        - name: statuses
          in: query
          description: Filter by status
          schema:
            type: array
            items:
              type: string
              enum:
                - Open
                - Closed
        - name: skip
          in: query
          required: true
          schema:
            default: 0
            type: number
        - name: take
          in: query
          required: true
          schema:
            default: 50
            type: number
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: object
                properties:
                  payCycles:
                    type: array
                    items:
                      $ref: '#/components/schemas/PayCycle'
                  total:
                    example: 1
                    type: number
                  skip:
                    example: 0
                    type: number
                  take:
                    example: 50
                    type: number
                required:
                  - payCycles
                  - total
                  - skip
                  - take
                additionalProperties: false
components:
  schemas:
    PayCycle:
      title: PayCycle
      description: >-
        A pay cycle is a period of time pay is made available for members to
        withdraw
      type: object
      properties:
        id:
          example: pc_<id>
          description: The unique identifier for a PayCycle, prefixed with pc_
          type: string
        startDate:
          description: Date in ISO8601 `YYYY-MM-DD` format
          example: '2024-01-01'
          type: string
          pattern: ^\d{4}-\d{2}-\d{2}$
        endDate:
          description: Date in ISO8601 `YYYY-MM-DD` format
          example: '2024-01-15'
          type: string
          pattern: ^\d{4}-\d{2}-\d{2}$
        status:
          type: string
          enum:
            - Open
            - Closed
      required:
        - id
        - startDate
        - endDate
        - status
      additionalProperties: false
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key

````