The Time Logs API captures how long employees spend on individual tasks. It supports two complementary entry modes: a timer-based flow that measures elapsed time precisely from start through any pauses to stop, and a manual entry flow for logging time blocks that were worked without an active timer — for example, when recording offline work retroactively. All time logs are linked to a specific task and contribute toDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Paramount-Intelligence/HR_Monitoring_System/llms.txt
Use this file to discover all available pages before exploring further.
actual_duration_minutes on that task, which feeds workload analytics and burndown calculations.
All endpoints are prefixed with
/api/v1/time-logs and require an Authorization: Bearer <token> header. All timestamps are returned in UTC ISO-8601 format with a Z suffix.Enum Reference
Log Source Type
| Value | Description |
|---|---|
timer | Created automatically when a running timer session is stopped via POST /time-logs/stop. Duration is computed from accumulated running intervals. |
manual | Created explicitly via POST /time-logs/manual by supplying started_at and ended_at timestamps. |
Log Status
| Value | Description |
|---|---|
active | Timer is currently running (timer-source logs only). |
completed | Timer has been stopped or manual log has been saved. |
invalid | Log was flagged by the system (e.g. overlapping or suspicious duration). |
Timer Session Status
| Value | Description |
|---|---|
running | Timer is actively counting. |
paused | Timer is paused; pause_reason is set. |
completed | Timer session has been finalised and converted to a TimeLog. |
Timer Pause Reason
| Value | Description |
|---|---|
manual_pause | User manually paused the timer. |
attendance_checkout | Timer was auto-paused when the user checked out of their attendance session. |
break_started | Timer was auto-paused when an attendance break began. |
system | System-initiated pause (e.g. server maintenance or session expiry). |
POST /time-logs/start
Start a new timer session on the specified task. Only one active timer is permitted per user at a time. The timer begins tracking elapsed seconds from the moment this call succeeds. Auth: Any authenticated user. The task must be assigned to the caller, or the caller must be a manager/admin.Request Body
UUID of the task to begin timing.
Response Fields
Returns aTaskTimerRead object representing the active timer session.
Unique timer session identifier.
Task this timer is running against.
Resolved task name.
Resolved parent project name.
UUID of the employee who owns this timer.
Timer state:
running, paused, or completed.UTC timestamp of the first start.
UTC timestamp of the most recent resume (equals
started_at on first start).UTC timestamp of when the timer was last paused;
null when running.Total seconds accumulated across all running intervals, excluding pause time.
Why the timer was paused:
manual_pause, attendance_checkout, break_started, or system.Record creation timestamp.
Last update timestamp.
Example
POST /time-logs/pause
Pause the active timer session for the specified task. The timer stops accumulating seconds until it is resumed. Auth: Any authenticated user (must own the active timer).Request Body
UUID of the task whose active timer should be paused.
Response Fields
Returns the updatedTaskTimerRead with status: "paused" and pause_reason: "manual_pause". See POST /time-logs/start for the full field list.
Example
POST /time-logs/resume
Resume a paused timer session for the specified task, continuing to accumulate seconds from the current moment. Auth: Any authenticated user (must own the paused timer).Request Body
UUID of the task whose paused timer should be resumed.
Response Fields
Returns the updatedTaskTimerRead with status: "running" and pause_reason cleared to null.
Example
POST /time-logs/stop
Stop the active timer session for the specified task and finalise it into a permanentTimeLog record. The duration is computed from all accumulated running intervals and written to the task’s actual_duration_minutes.
Auth: Any authenticated user (must own the active timer).
Request Body
UUID of the task whose active timer should be stopped.
Optional notes describing what was accomplished during this session.
Response Fields
Returns aTimeLogRead object with source_type: "timer" and status: "completed".
Unique time log identifier.
Task this log is recorded against.
Resolved task name for display.
UUID of the employee who worked.
Resolved employee display name.
Resolved parent project name.
UTC start of the first timer interval.
UTC end of the last interval (set when timer is stopped).
Total worked minutes (sum of all running intervals, rounded down).
timer for this endpoint.Notes provided at stop time.
completed on successful stop.Record creation timestamp.
Last update timestamp.
Example
Complete Timer Lifecycle Example
Step 1 — Start
Step 2 — Pause (optional)
Step 3 — Resume (optional)
Step 4 — Stop and save log
GET /time-logs/active-timer
Return the authenticated user’s currently active or paused timer session, ornull if no timer is running.
Auth: Any authenticated user.
Response Fields
Returns a singleTaskTimerRead object, or null. See POST /time-logs/start for the full field list.
Example
POST /time-logs/manual
Directly record a time entry by supplying explicit start and end timestamps. Use this when you worked on a task without an active timer — for example, during offline work, a meeting, or retrospective logging. Auth: Any authenticated user.Request Body
UUID of the task this time entry applies to.
UTC start timestamp of the work block (ISO-8601).
UTC end timestamp. Must be strictly after
started_at.Optional description of the work performed.
Response Fields
Returns aTimeLogRead object with source_type: "manual".
Example
GET /time-logs/me
Retrieve the authenticated employee’s full time log history across all tasks and projects, ordered bystarted_at descending.
Auth: Any authenticated user.
Response Fields
Returns an array ofTimeLogRead objects. See POST /time-logs/stop for the full field list.
Example
Example Response
GET /time-logs/team
Retrieve time logs for the authenticated user’s team. Managers see their direct reports’ logs; Admins and HR see the entire organisation. Auth: Any authenticated user. Results are RBAC-scoped.Response Fields
Returns an array ofTimeLogRead objects.
Example
Standard Error Response
400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 409 Conflict.