Appearance
Time
Allowed query parameters
Filters
Filter | Type | Description |
---|---|---|
search | String | Full-text search |
own | Boolean | Show only own time entries |
date_range | DateRange | Filter by tracked date<start-date>,<end-date> |
project | Id | Filter by Project Id |
company | Id | Filter by Company Id |
member | String | A Member Id |
rate | Id | Filter by Rate Id |
locked_by_invoice | Id | Filter by Invoice Id that locked the time entry |
is_accountable | Boolean | Filter by accountable status |
is_locked | Boolean | Filter by locked status |
custom_field | Key,String | Filter by Custom Field (eg. my_internal_id,42 ) |
Sorting
tracked_at
, amount
Includes
member.user.media
, project.company.media
, rate
, lockedByInvoice
Create a time entry
post
/time
Attribute (* required) | Type | Description |
---|---|---|
description * | String | Time entry description |
project_id * | String | A Project Id |
rate_id * | String | A Rate Id |
amount * | Number | Time amount in hours (minimum: 0) |
tracked_at | Date | Tracked date (Default: Today) |
is_accountable | Boolean | If time is accountable (Default: true ) |
is_locked | Boolean | If time entry is locked |
custom_fields | Object? | Custom data as Custom Fields |
Example response
json
// HTTP 201 Created
{
// a time object
}
Update a time entry
put
/time/{id}
Attribute | Type | Description |
---|---|---|
description | String | Time entry description |
project_id | String | A Project Id |
rate_id | String | A Rate Id |
amount | Number | Time amount in hours (minimum: 0) |
tracked_at | Date | Tracked date |
is_accountable | Boolean | If time is accountable |
is_locked | Boolean | If time entry is locked |
custom_fields | Object? | Custom data as Custom Fields |
Example response
json
// HTTP 200 OK
{
// a time object
}
Retrieve a time entry
get
/time/{id}
Example response
json
// HTTP 200 OK
{
"id": "XAjXJ2GVpM",
"project_id": "nKEvwlgjeZ",
"rate_id": "rA3bX9kL2m",
"amount": 4.75,
"description": "Worked on the design",
"is_accountable": true,
"is_locked": false,
"locked_by_invoice": null,
"tracked_at": "2022-02-08T00:00:00.000000Z",
"costs": 237.5,
"member": {
// A Member object
},
"rate": {
// A Rate object
},
"project": {
// A Project object
},
"custom_fields": {}
}
Delete a time entry
delete
/time/{id}
Example response
json
// HTTP 204 No Content
List time entries
get
/time
The list endpoint accepts the same query parameters as described above and returns a paginated array of time objects in the data
property. Each time object has the same structure as in Retrieve a time entry.
Read more about Pagination, Filtering, Sorting and Includes on the Introduction page.