Time entries are used to track time spent on projects, which can then be billed to customers.
Get a time entry by id
Returns a time entry in the administration.
path Parameters
administration_id^\d+$ · requiredThe unique identifier of the administration
A unique record identifier
id^\d+$ · requiredA unique record identifier
format^(.(json|xml))?$ · requiredThe format in which the response is given, can be empty to use the default format
Get a time entry by id › Responses
A time entry
id^\d+$A unique record identifier
administration_id^\d+$A unique record identifier
contact_id^\d+$A unique record identifier
project_id^\d+$A unique record identifier
sales_invoice_id^\d+$A unique record identifier
user_id^\d+$A unique record identifier
started_atdescriptionpaused_durationbillablecreated_atupdated_atDelete a time entry
Delete a time entry by id.
path Parameters
administration_id^\d+$ · requiredThe unique identifier of the administration
A unique record identifier
id^\d+$ · requiredA unique record identifier
format^(.(json|xml))?$ · requiredThe format in which the response is given, can be empty to use the default format
Delete a time entry › Responses
Time entry deleted
Update a time entry
When updating a time entry, provide only the attributes you want to update. The other attributes will not be changed.
started_at and ended_at are rounded down to full minutes when updating a time entry, with a minimum of 1 minute between them.
path Parameters
administration_id^\d+$ · requiredThe unique identifier of the administration
A unique record identifier
id^\d+$ · requiredA unique record identifier
format^(.(json|xml))?$ · requiredThe format in which the response is given, can be empty to use the default format
Update a time entry › Responses
Time entry updated
id^\d+$A unique record identifier
administration_id^\d+$A unique record identifier
contact_id^\d+$A unique record identifier
project_id^\d+$A unique record identifier
sales_invoice_id^\d+$A unique record identifier
user_id^\d+$A unique record identifier
started_atdescriptionpaused_durationbillablecreated_atupdated_atDestroys note from entity
Deletes a note from a time entry.
path Parameters
administration_id^\d+$ · requiredThe unique identifier of the administration
A unique record identifier
time_entry_id^\d+$ · requiredA unique record identifier
id^\d+$ · requiredA unique record identifier
format^(.(json|xml))?$ · requiredThe format in which the response is given, can be empty to use the default format
Destroys note from entity › Responses
Note deleted
Adds note to entity
Adds a note to the time entry.
path Parameters
administration_id^\d+$ · requiredThe unique identifier of the administration
A unique record identifier
time_entry_id^\d+$ · requiredA unique record identifier
format^(.(json|xml))?$ · requiredThe format in which the response is given, can be empty to use the default format
Adds note to entity › Responses
Note created
id^\d+$A unique record identifier
administration_id^\d+$A unique record identifier
entity_id^\d+$A unique record identifier
entity_typeuser_id^\d+$A unique record identifier
assignee_id^\d+$A unique record identifier
todonotecompleted_atcompleted_by_id^\d+$A unique record identifier
todo_typedatacreated_atupdated_atList all time entries
Returns a paginated list of all time entries in the administration.
The filter argument allows you to filter the list of time entries. Filters are a combination of keys and values,
separated by a comma: period:this_year,state:all. The available options for filtering are:
| Filter | Type | Default | Description |
|---|---|---|---|
| state | String | all | all, open or non_billable |
| period | String | this_year | This can either be the description of a period (this_month, prev_month, next_month, this_quarter, prev_quarter, next_quarter, this_year, prev_year, next_year) or a custom period (201301..201302, 20130101..20130131) |
| contact_id | Integer | Select time entries belonging to a certain contact | |
| include_nil_contacts | Boolean | false | Whether to include time entries that have no assigned contact |
| include_active | Boolean | false | Whether to include active time entries i.e. time entries without ended_at |
| project_id | Integer | Select time entries belonging to a certain project | |
| user_id | Integer | Select time entries belonging to a certain user | |
| day | Date | Select time entries on a specific date |
You can filter by multiple states at the same time as well. To do this, separate the state values by a pipe: state:open|non_billable.
path Parameters
administration_id^\d+$ · requiredThe unique identifier of the administration
A unique record identifier
format^(.(json|xml))?$ · requiredThe format in which the response is given, can be empty to use the default format
query Parameters
filterpageper_page^\d+$queryAllows filtering by time entry description.
List all time entries › Responses
A list of time entries
id^\d+$A unique record identifier
administration_id^\d+$A unique record identifier
contact_id^\d+$A unique record identifier
project_id^\d+$A unique record identifier
sales_invoice_id^\d+$A unique record identifier
user_id^\d+$A unique record identifier
started_atdescriptionpaused_durationbillablecreated_atupdated_atCreate a time entry
Api user needs access to both sales invoices and time entries for this action.
started_at and ended_at are rounded down to full minutes when creating a time entry, with a minimum of 1 minute between them.
path Parameters
administration_id^\d+$ · requiredThe unique identifier of the administration
A unique record identifier
format^(.(json|xml))?$ · requiredThe format in which the response is given, can be empty to use the default format
Create a time entry › Responses
Time entry created
id^\d+$A unique record identifier
administration_id^\d+$A unique record identifier
contact_id^\d+$A unique record identifier
project_id^\d+$A unique record identifier
sales_invoice_id^\d+$A unique record identifier
user_id^\d+$A unique record identifier
started_atdescriptionpaused_durationbillablecreated_atupdated_at