# Time Entries

This object allows you to manage Kantata OX time entries, depending on your permissions.
Creating and updating time entries allows you to include time when invoicing clients.

## Fetching a list of Time Entries

 - [GET /time_entries](https://developer.kantata.com/kantata/specification/time-entries/get-time-entries.md): Returns all time entries visible to the requesting user, unless filter parameters
have been applied.


This endpoint returns structured Time Entry objects.
As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the results array
and will be indexed by ID in the time_entries top-level JSON key.
Please see our Response Format section for more information.

## Creating a new Time Entry

 - [POST /time_entries](https://developer.kantata.com/kantata/specification/time-entries/create-time-entry.md): Creates time entries for a user.

Bulk Create

This endpoint supports bulk creating up to 100 objects. In the request body, set the top-level key to its plural form and place the objects in an array. Example:


{
  "time_entries": [
    {
      "workspace_id": 123,
      "date_performed": "2025-01-23",
      "time_in_minutes": 60
    },
    {
      "workspace_id": 123,
      "date_performed": "2025-01-24",
      "time_in_minutes": 60
    }
  ]
}



This endpoint returns structured Time Entry objects.
As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the results array
and will be indexed by ID in the time_entries top-level JSON key.
Please see our Response Format section for more information.

## Delete multiple time entries

 - [DELETE /time_entries](https://developer.kantata.com/kantata/specification/time-entries/delete-time-entries.md): The IDs of the time entries to delete can be provided in the ids query parameter or via the request body.

Request body example:
{
  "ids": "1,2,3"
}

If any specified time entries cannot be deleted, the entire request will fail and an error message
will be returned that specifies which ones could not be deleted and why.


This endpoint returns structured Time Entry objects.
As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the results array
and will be indexed by ID in the time_entries top-level JSON key.
Please see our Response Format section for more information.

## Fetching a single Time Entry

 - [GET /time_entries/{id}](https://developer.kantata.com/kantata/specification/time-entries/get-time-entry.md): This endpoint returns structured Time Entry objects.
As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the results array
and will be indexed by ID in the time_entries top-level JSON key.
Please see our Response Format section for more information.

## Updating an existing Time Entry

 - [PUT /time_entries/{id}](https://developer.kantata.com/kantata/specification/time-entries/update-time-entry.md): This endpoint returns structured Time Entry objects.
As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the results array
and will be indexed by ID in the time_entries top-level JSON key.
Please see our Response Format section for more information.

## Deleting an existing Time Entry

 - [DELETE /time_entries/{id}](https://developer.kantata.com/kantata/specification/time-entries/delete-time-entry.md): Deletes the time entry if it is deletable. A time entry cannot be destroyed if:
  - the time is locked before a certain date,
  - the time has been invoiced, or
  - a time adjustment is linked with it.


The response will contain no content and an HTTP 204 status code if the request was
successful, or a standard Kantata OX error message explaining why the object could not be deleted.

