Requests must be authenticated. See REST API authentication for details.
Endpoints
| Method | Path | Description |
|---|---|---|
GET | /time_entries.json | List time entries. |
GET | /time_entries/:id.json | Get a single time entry. |
POST | /time_entries.json | Create a time entry. |
PUT | /time_entries/:id.json | Update a time entry. |
DELETE | /time_entries/:id.json | Delete a time entry. |
| Method | Path | Description |
|---|---|---|
GET | /projects/:project_id/time_entries.json | List time entries for a project. |
POST | /projects/:project_id/time_entries.json | Create a time entry in a project. |
List time entries
GET /time_entries.json
Returns a paginated list of time entries visible to the authenticated user.
Query parameters
Filter by project numeric ID or identifier string.
Filter by user ID. Use
me for the authenticated user.Filter by issue ID.
Filter by time entry activity ID.
Return entries with
spent_on on or after this date (YYYY-MM-DD).Return entries with
spent_on on or before this date (YYYY-MM-DD).Number of records to skip.
Number of records per page (max 100).
Example
Response
Get time entry
GET /time_entries/:id.json
Returns a single time entry by ID.
Path parameters
The numeric ID of the time entry.
Example
Response fields
Create time entry
POST /time_entries.json
Logs time against a project or issue. The authenticated user must have the Log time permission in the target project.
Request body
Wrap all fields inside atime_entry object.
Project numeric ID or identifier. Required if
issue_id is not provided.Issue ID to log time against. The project is inferred from the issue if
project_id is omitted.Date the time was spent (
YYYY-MM-DD). Defaults to today.Number of hours logged. Must be greater than 0.
ID of the time entry activity (e.g., Design, Development, Testing).
Description of the work done. Maximum 1024 characters.
User ID to log time on behalf of. Requires the Log time for other users permission.
Array of custom field values:
[{"id": 1, "value": "value"}].Example
201 Created with the new time entry in the body.
If the Redmine setting Issue required when logging time is enabled,
issue_id becomes required.Update time entry
PUT /time_entries/:id.json
Updates an existing time entry. The authenticated user must have the Edit time entries permission, or own the entry and have Edit own time entries.
Path parameters
The numeric ID of the time entry to update.
Example
200 OK.
Delete time entry
DELETE /time_entries/:id.json
Deletes a time entry. The authenticated user must have the Edit time entries permission or own the entry.
Path parameters
The numeric ID of the time entry to delete.
Example
200 OK.