---
title: "View time entries"
method: GET
path: "/time-tracking"
tags: ["time-tracking"]
---

# View time entries

`GET /time-tracking`

## Request

- Base URL: `https://api.hoorayhr.io`
- URL: `https://api.hoorayhr.io/time-tracking`
- Auth: API key in header `authorization`

Get an overview of time entries.

**Time Tracking explained**



HoorayHR Time Tracking works by dividing time into entries. Each time entry spans a single day or a week (Mon-Sun). The time span of an entry is determined by the time tracking policy of the user.

Each entry has a list of activities. Activities are like work periods or breaks. Activities cannot overlap, but one can start at the same time as the previous one ends to create a continuous work period.

Activities of type `WORK` can have labels and notes attached, while activities of type `BREAK` cannot.

Time entries are created automatically based on the provided dates of the activities. It is only possible to create activities and entries within active time tracking policies for users.

## Query parameters

- `id[$in]` number[]
- `status` 'NOT_LOGGED' | 'CONCEPT' | 'REQUEST' | 'APPROVED' | 'DENIED'
- `userId` number
- `startDate` string, date
- `endDate` string, date
- `createdAt` string, date
- `updatedAt` string, date

## Response `200`

List of time entries

- TimeTrackingEntryResponse[]
  - `id` integer, required
  - `userId` integer, required
  - `startDate` string, date, required
  - `endDate` string, date, required
  - `period` 'DAY' | 'WEEK', required
  - `status` 'NOT_LOGGED' | 'CONCEPT' | 'REQUEST' | 'APPROVED' | 'DENIED', required
  - `activities` object[], required
    - `id` integer, required
    - `start` string, date-time, required
    - `end` string, date-time, required
    - `timezone` string, required: The time zone of the activity. This will automatically be set to the time zone of the provided user through the "userId" field. Use the [time-zones](#/time-zones/get_time_zones) endpoint to fetch all supported timezones.
    - `type` 'WORK' | 'BREAK', required
    - `notes` string, required
    - `labels` LabelWithStringName[], required
      - `id` integer: ID of the label
      - `documentCategoryId` integer, nullable: ID of the parent document category
      - `workflowCategoryId` integer, nullable: ID of the parent workflow category
      - `name` string, required: The name of the label
      - `type` 'ASSETS' | 'CONTRACTS' | 'DOCUMENTS' | 'EXPENSE_CLAIMS' | 'HOURS' | 'LEAVE' | 'SICK_LEAVE_PHASE' | 'PARTNER_COMPANY' | 'TIME_TRACKING' | 'TRAVEL_EXPENSES' | 'WORKFLOWS', required: Enum of the service the label is assigned to
      - `systemCategoryType` 'car' | 'computer' | 'key' | 'tablet' | 'cell phone' | 'license' | 'fixed-term' | 'internship' | 'permanent' | 'parking costs' | 'food and drinks' | 'promotional gift' | 'office supplies' | 'cost of studies' | 'travel expenses' | 'commuting' | 'customer visit' | 'conference', nullable: System pre-defined labels get type
      - `archivedAt` string, date-time, nullable: Timestamp of label being archived
      - `createdAt` string, date-time: Creation date of the label
      - `updatedAt` string, date-time: Last updated date of the label
      - `deletedAt` string, date-time, nullable: Deleted date of the label
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required

## Other responses

- `401`: Not authenticated
- `500`: General error

---

[API](https://skmtc.dev/hoorayhr/apis/hoorayhr-api-documentation.md) · [All operations](https://skmtc.dev/hoorayhr/apis/hoorayhr-api-documentation/llms.txt) · [OpenAPI document](https://skmtc.dev/hoorayhr/apis/hoorayhr-api-documentation/revisions/3adcd47cd827?raw)
