---
title: "List overtime entries"
method: GET
path: "/overtime-entries"
tags: ["Overtime"]
---

# List overtime entries

`GET /overtime-entries`

## Request

- Base URL: `https://api.absentify.com/api/v1`
- URL: `https://api.absentify.com/api/v1/overtime-entries`
- Auth: API key in header `X-API-KEY`

Overtime entries the API key's member may see, newest day first. Admins see every entry of the workspace; anyone else sees their own, the ones they approve or decided, the ones they logged for someone else, and those of the members they manage. Use `next_cursor` as `cursor` to read the next page. Workspaces without overtime logging answer with an error.

## Query parameters

- `member_id` string, uuid
- `status` 'PENDING' | 'APPROVED' | 'DECLINED' | 'CANCELED'
- `allowance_type_id` string, uuid
- `date_from` string
- `date_to` string
- `limit` integer
- `cursor` integer

## Response `200`

Successful response

- object
  - `items` object[], required
    - `id` integer, required
    - `member` object, required: The member the overtime was worked by.
      - `id` string, required
      - `custom_id` string, nullable, required
      - `name` string, nullable, required
      - `email` string, nullable, required
    - `allowance_type_id` string, required
    - `allowance_unit` 'days' | 'hours', required: The unit of the allowance type. Amounts are in days for `days` and in MINUTES for `hours`.
    - `date` string, required: The day the overtime was worked, `YYYY-MM-DD`.
    - `amount` number, required: The amount that was logged. Days (0.5 or 1) when `allowance_unit` is `days`, whole MINUTES when it is `hours` (for example 90 = 1 hour 30 minutes).
    - `recognized_amount` number, required: The amount an approver recognized, never more than `amount`. Equal to `amount` until someone lowers it. Days (0.5 or 1) when `allowance_unit` is `days`, whole MINUTES when it is `hours` (for example 90 = 1 hour 30 minutes).
    - `day_kind` 'WORKDAY' | 'DAY_OFF' | 'PUBLIC_HOLIDAY', required: What kind of day it was when the entry was logged.
    - `factor` number, required: The multiplier applied to the recognized amount, fixed when the entry was logged.
    - `credit_expiry_date` string, nullable, required: The LAST day (inclusive, `YYYY-MM-DD`) the credit can still be used, or null when the credit has no expiry of its own; it then follows the allowance's carry-over at the end of the year.
    - `comment` string, nullable, required
    - `status` 'PENDING' | 'APPROVED' | 'DECLINED' | 'CANCELED', required
    - `decided_by` object, nullable, required: Who made the final decision. Null while the entry is open.
      - `id` string, required
      - `custom_id` string, nullable, required
      - `name` string, nullable, required
      - `email` string, nullable, required
    - `decided_at` string, nullable, required
    - `created_by` object, nullable, required: Who logged the entry. It differs from `member` when an admin logged it for someone else. Null for entries from before this was recorded and once that member has been deleted.
      - `id` string, required
      - `custom_id` string, nullable, required
      - `name` string, nullable, required
      - `email` string, nullable, required
    - `created_at` string, required
    - `canceled_at` string, nullable, required
    - `canceled_by` object, nullable, required: Who withdrew the entry. It differs from `member` when the member who logged it for them withdrew it. Null unless the status is CANCELED.
      - `id` string, required
      - `custom_id` string, nullable, required
      - `name` string, nullable, required
      - `email` string, nullable, required
    - `decline_reason` string, nullable, required: The reason given when the entry was declined, also when an admin declined for the approver.
    - `credited_amount` number, nullable, required: What was credited to the allowance: the recognized amount times `factor`, as booked. Null while there is no credit. Days (rounded to two decimals, for example 0.75 or 1.5) when `allowance_unit` is `days`, whole MINUTES when it is `hours`.
    - `credit_removed` boolean, required: True when the entry is approved but its credit was deleted from the allowance afterwards.
  - `next_cursor` integer, nullable, required: Null on the last page.

## Other responses

- `400`: Invalid input data
- `401`: Authorization not provided
- `403`: Insufficient access
- `404`: Not found
- `500`: Internal server error

## Changes

- **2026-10-15** `d32b5ab6fd15`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/absentify/apis/absentify-crud-api/changes/overtime-entries/get.md)

---

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