# Detailed Report Endpoints - POST Search time entries

**URL:** <https://community.toggl.com/t/detailed-report-endpoints-post-search-time-entries/292>\
**Category:** Reports API\
**Tags:** reporting, detailed, api, endpoints, reports\
**Created:** [November 28, 2024, 9:57am UTC](https://community.toggl.com/t/detailed-report-endpoints-post-search-time-entries/292 "2024-11-28T09:57:26Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Support](https://yyz2.discourse-cdn.com/flex012/user_avatar/community.toggl.com/support/32/1577_2.png) [@Support](https://community.toggl.com/u/Support)\
**Post date:** [November 28, 2024, 9:57am UTC](https://community.toggl.com/t/detailed-report-endpoints-post-search-time-entries/292/1 "2024-11-28T09:57:26Z")

</div>

```auto
https://api.track.toggl.com/reports/api/v3/workspace/{workspace_id}/search/time_entries

```

Returns time entries for detailed report according to the given filters. Supports pagination via X-Next-ID and X-Next-Row-Number headers returned in the response. See [Overview](https://developers.track.toggl.com/docs/reports_start#detailed-reports)

- cURL
- Go
- Ruby
- JavaScript
- Python
- Rust

```auto
extern crate tokio;extern crate serde_json;use reqwest::{Client};use reqwest::header::{CONTENT_TYPE};#[tokio::main]async fn main() -> Result<(), reqwest::Error> { let client = Client::new().basic_auth("<email>", "<password>"); let json = client.request(Method::POST, "https://api.track.toggl.com/reports/api/v3/workspace/{workspace_id}/search/time_entries".to_string()).json(&serde_json::json!(\{"billable":"boolean","client_ids":[\{\}],"description":"string","end_date":"string","enrich_response":"boolean","first_id":"integer","first_row_number":"integer","first_timestamp":"integer","group_ids":[\{\}],"grouped":"boolean","hide_amounts":"boolean","max_duration_seconds":"integer","min_duration_seconds":"integer","order_by":"string","order_dir":"string","page_size":"integer","project_ids":[\{\}],"rounding":"integer","rounding_minutes":"integer","startTime":"string","start_date":"string","tag_ids":[\{\}],"task_ids":[\{\}],"time_entry_ids":[\{\}],"user_ids":[\{\}]\})) .header(CONTENT_TYPE, "application/json") .send() .await? .json() .await?; println!("{:#?}", json); Ok(())}

```

### Parameters[​](https://engineering.toggl.com/docs/reports/detailed_reports/#parameters)

#### Path[​](https://engineering.toggl.com/docs/reports/detailed_reports/#path)

| name | type | required | description |
| --- | --- | --- | --- |
| workspace\_id | integer | true | Workspace ID |

#### Body[​](https://engineering.toggl.com/docs/reports/detailed_reports/#body)

| Name | Type | Description |
| --- | --- | --- |
| billable | boolean | Whether the time entry is set as billable, optional, premium feature. |
| client\_ids | Array of integer | Client IDs, optional, filtering attribute. To filter records with no clients, use [null]. |
| description | string | Description, optional, filtering attribute. |
| end\_date | string | End date, example time.DateOnly. Should be greater than Start date. |
| enrich\_response | boolean | EnrichResponse, optional, default false. It will force the detailed report to return as much information as possible, as it does for the export. |
| first\_id | integer | - |
| first\_row\_number | integer | - |
| first\_timestamp | integer | - |
| group\_ids | Array of integer | Group IDs, optional, filtering attribute. |
| grouped | boolean | Whether time entries should be grouped, optional, default false. |
| hide\_amounts | boolean | Whether amounts should be hidden, optional, default false. |
| max\_duration\_seconds | integer | Max duration seconds, optional, filtering attribute. Time Audit only, should be greater than MinDurationSeconds. |
| min\_duration\_seconds | integer | Min duration seconds, optional, filtering attribute. Time Audit only, should be less than MaxDurationSeconds. |
| order\_by | string | Order by field, optional, default “date”. Can be “date”, “user”, “duration”, “description” or “last\_update”. |
| order\_dir | string | Order direction, optional. Can be ASC or DESC. |
| page\_size | integer | PageSize defines the number of items per page, optional, default 50. |
| project\_ids | Array of integer | Project IDs, optional, filtering attribute. To filter records with no projects, use [null]. |
| rounding | integer | Whether time should be rounded, optional, default from user preferences. |
| rounding\_minutes | integer | Rounding minutes value, optional, default from user preferences. Should be 0, 1, 5, 6, 10, 12, 15, 30, 60 or 240. |
| startTime | string | - |
| start\_date | string | Start date, example time.DateOnly. Should be less than End date. |
| tag\_ids | Array of integer | Tag IDs, optional, filtering attribute. To filter records with no tags, use [null]. |
| task\_ids | Array of integer | Task IDs, optional, filtering attribute. To filter records with no tasks, use [null]. |
| time\_entry\_ids | Array of integer | TimeEntryIDs filters by time entries. This was added to support retro-compatibility with reports v2. |
| user\_ids | Array of integer | User IDs, optional, filtering attribute. |

### Response[​](https://engineering.toggl.com/docs/reports/detailed_reports/#response)

#### 200[​](https://engineering.toggl.com/docs/reports/detailed_reports/#200)

Returns grouped time entries for detailed report

#### 400[​](https://engineering.toggl.com/docs/reports/detailed_reports/#400)

Possible error messages:

- At least one parameter must be set
- Invalid workspace id
- Invalid ‘{parameter}’ value, allowed values are: ‘{valid\_values}’

#### 402[​](https://engineering.toggl.com/docs/reports/detailed_reports/#402)

Workspace needs to have this feature enabled

#### 403[​](https://engineering.toggl.com/docs/reports/detailed_reports/#403)

Workspace not found/accessible

#### 500[​](https://engineering.toggl.com/docs/reports/detailed_reports/#500)

Internal Server Error
