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-entriesQuery parameters
| Parameter | Type | Description |
|---|---|---|
startDate | string (ISO 8601) | Filter entries from this date |
endDate | string (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
| Field | Type | Description |
|---|---|---|
id | int | Internal ID |
externalId | string | Stable external identifier |
tenantId | string | Tenant ID |
userId | int | Owner user ID |
timesheetId | int? | Parent timesheet aggregate ID |
taskId | int? | Associated task ID |
periodId | int? | Associated timesheet period ID |
timesheetLineId | int? | Associated curated timesheet line ID |
startTime | datetime? | Start time (clock mode) |
endTime | datetime? | End time (clock mode) |
duration | number? | Duration in hours |
date | datetime | Entry date |
description | string? | Description text |
isBillable | boolean | Whether the entry is billable |
tags | Tag[] | Tags applied to the entry |
tagNames | string[]? | Tag names (write-only shorthand for creating entries with tags by name) |
timesheetStatus | int? | Status of the parent timesheet (0=Draft, 1=Submitted, 2=Approved, 3=Rejected, 4=Released) |
createdAt | datetime | Creation timestamp |
updatedAt | datetime | Last update timestamp |
Create a time entry
POST /api/v1/time-entriesRequest 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.