---
title: "Create Time Entry"
method: POST
path: "/time-entries"
tags: ["Time Entries"]
---

# Create Time Entry

`POST /time-entries`

## Request

- Base URL: `https://timelodge.com/api/v1`
- URL: `https://timelodge.com/api/v1/time-entries`
- Auth: HTTP bearer

Requires `time:write` and a unique idempotency key.

## Headers

- `Idempotency-Key` string, required

## Request body

- TimeEntryWrite
  - `project_id` integer, nullable, required
  - `task_id` integer, nullable, required
  - `entry_date` string, date, nullable, required
  - `started_at` string, date-time, nullable
  - `ended_at` string, date-time, nullable
  - `duration_seconds` integer, nullable
  - `notes` string, nullable
  - `billable` boolean, nullable

## Response `201`

The resource was created.

- TimeEntryResponse
  - `data` TimeEntry, required
    - `id` integer, nullable
    - `user_id` integer, nullable
    - `project_id` integer, nullable
    - `task_id` integer, nullable
    - `entry_date` string, date, nullable
    - `started_at` string, date-time, nullable
    - `ended_at` string, date-time, nullable
    - `duration_seconds` integer, nullable
    - `notes` string, nullable
    - `billable` boolean, nullable
    - `entry_source` string, nullable
    - `status` string, nullable
    - `is_locked` boolean, nullable
    - `currency` string, nullable
    - `bill_rate` integer, nullable
    - `created_at` string, date-time, nullable
    - `updated_at` string, date-time, nullable
    - `version` string: Opaque representation version used for optimistic concurrency.

## Other responses

- `400`: Invalid request.
- `401`: Missing or invalid token.
- `403`: The token lacks the required scope.
- `409`: Idempotency conflict or request in progress.
- `422`: Validation failed.
- `429`: Rate limit exceeded.

---

[API](https://skmtc.dev/timelodge/apis/timelodge-api.md) · [All operations](https://skmtc.dev/timelodge/apis/timelodge-api/llms.txt) · [OpenAPI document](https://skmtc.dev/timelodge/apis/timelodge-api/revisions/9072baafaa20?raw)
