API Reference

Time Entries API

API reference for creating and querying time entries via the Dime.Sheets public API.

Time Entries API

The Time Entries public API lets you list and create time entries using an API key.

List time entries

Retrieve time entries, with optional date filters.

GET /api/v1/time-entries

Query parameters

ParameterTypeDescription
startDatestring (ISO 8601)Filter entries from this date
endDatestring (ISO 8601)Filter entries until this date

Example request

curl "https://app.dimesheets.com/api/v1/time-entries?startDate=2026-03-30&endDate=2026-04-05" \
  -H "X-API-KEY: {your-api-key}"

Example response

[
  {
    "id": 42,
    "externalId": "entry-001",
    "tenantId": "tenant-abc",
    "userId": 5,
    "timesheetId": 12,
    "taskId": 3,
    "periodId": 7,
    "timesheetLineId": null,
    "date": "2026-04-03T00:00:00Z",
    "duration": 3.5,
    "description": "Implemented responsive navigation component",
    "isBillable": true,
    "tags": [
      { "id": 1, "externalId": "tag-dev", "name": "Development", "color": "#4F46E5" }
    ],
    "tagNames": ["Development"],
    "timesheetStatus": 0,
    "createdAt": "2026-04-03T09:15:00Z",
    "updatedAt": "2026-04-04T10:30:00Z"
  }
]

TimeEntry model

FieldTypeDescription
idintInternal ID
externalIdstringStable external identifier
tenantIdstringTenant ID
userIdintOwner user ID
timesheetIdint?Parent timesheet aggregate ID
taskIdint?Associated task ID
periodIdint?Associated timesheet period ID
timesheetLineIdint?Associated curated timesheet line ID
startTimedatetime?Start time (clock mode)
endTimedatetime?End time (clock mode)
durationnumber?Duration in hours
datedatetimeEntry date
descriptionstring?Description text
isBillablebooleanWhether the entry is billable
tagsTag[]Tags applied to the entry
tagNamesstring[]?Tag names (write-only shorthand for creating entries with tags by name)
timesheetStatusint?Status of the parent timesheet (0=Draft, 1=Submitted, 2=Approved, 3=Rejected, 4=Released)
createdAtdatetimeCreation timestamp
updatedAtdatetimeLast update timestamp

Create a time entry

POST /api/v1/time-entries

Request body

{
  "taskId": 3,
  "date": "2026-04-05T00:00:00Z",
  "duration": 2.0,
  "description": "Code review for authentication module",
  "isBillable": true
}

Response

Returns 201 Created with the created entry. Returns 400 Bad Request if validation fails.