---
title: "Generate a weekly report"
method: POST
path: "/v1/workspaces/{workspaceId}/reports/weekly"
tags: ["Time Entry Report"]
---

# Generate a weekly report

`POST /v1/workspaces/{workspaceId}/reports/weekly`

Weekly report data on FREE subscription plan is limited to a maximum interval length of one month (31 days).

## Path parameters

- `workspaceId` string, required — Represents a workspace identifier across the system.

## Request body

- WeeklyReportFilterV1
  - `amountShown` 'EARNED' | 'COST' | 'PROFIT' | 'HIDE_AMOUNT' | 'EXPORT' — If provided, you'll get filtered result including reports with provided amount shown.
  - `amounts` string[]
  - `approvalState` 'APPROVED' | 'UNAPPROVED' | 'ALL' — If provided, you'll get filtered result including reports with provided approval state.
  - `archived` boolean — Indicates whether the report is archived
  - `attendanceFilter` AttendanceFilterV1 — Represents an attendance report filter.
    - `balanceFilters` CompareBalanceFilter[]
      - `filtrationType` 'EXACTLY' | 'LARGER_THAN' | 'SMALLER_THAN'
      - `value` string — Represents balance of work (difference between overtime and undertime) in hours, multiplied by 100. For example, if desired value is 1.5h, input should be 150.
    - `breakFilters` CompareBreakFilter[]
      - `filtrationType` 'EXACTLY' | 'LARGER_THAN' | 'SMALLER_THAN'
      - `value` string — Represents duration of breaks in the day in hours, multiplied by 100. For example, if desired value is 0.5h, input should be 50
    - `capacityFilters` CompareCapacityFilter[]
      - `filtrationType` 'EXACTLY' | 'LARGER_THAN' | 'SMALLER_THAN'
      - `value` string — Represents daily work capacity of user in hours, multiplied by 100. For example, if desired value is 7.5h, input should be 750.
    - `endFilters` CompareEndFilter[]
      - `filtrationType` 'EXACTLY' | 'LARGER_THAN' | 'SMALLER_THAN'
      - `value` string — Represents end time in 24-hour notation.
    - `groups` string[]
    - `hasTimeOff` boolean — If set to true, report will include time off hours.
    - `overtimeFilters` CompareOvertimeFilter[]
      - `filtrationType` 'EXACTLY' | 'LARGER_THAN' | 'SMALLER_THAN'
      - `value` string — Represents duration of overtime work (difference between work and capacity - if positive) in hours, multiplied by 100. For example, if desired value is 1.5h, input should be 150.
    - `page` integer — Specifies page number.
    - `pageSize` integer — Specifies page size.
    - `sortColumn` 'GROUP' | 'USER' | 'DATE' | 'START' | 'END' | 'BREAK' | 'WORK' | 'CAPACITY' | 'OVERTIME' | 'UNDERTIME' | 'BALANCE' | 'TIME_OFF'
    - `startFilters` CompareStartFilter[]
      - `filtrationType` 'EXACTLY' | 'LARGER_THAN' | 'SMALLER_THAN'
      - `value` string — Represents start time in 24-hour notation.
    - `undertimeFilters` CompareUndertimeFilter[]
      - `filtrationType` 'EXACTLY' | 'LARGER_THAN' | 'SMALLER_THAN'
      - `value` string — Represents duration of undertime work (difference between work and capacity - if negative) in hours, multiplied by 100. For example, if desired value is 1.5h, input should be 150.
    - `workFilters` CompareWorkFilter[]
      - `filtrationType` 'EXACTLY' | 'LARGER_THAN' | 'SMALLER_THAN'
      - `value` string — Represents duration of completed work for day in hours, multiplied by 100. For example, if desired value is 7.5h, input should be 750.
  - `billable` boolean — Indicates whether the report is billable
  - `clients` ContainsArchivedFilterV1
    - `contains` 'CONTAINS' | 'DOES_NOT_CONTAIN' | 'CONTAINS_ONLY' — Represents a contains type.
    - `ids` string[] — Filter includes provided list of ids.
    - `status` 'ACTIVE' | 'ARCHIVED' | 'ALL' — Filter entities in 'contains' by their status.
  - `currency` ContainsArchivedFilterV1
    - `contains` 'CONTAINS' | 'DOES_NOT_CONTAIN' | 'CONTAINS_ONLY' — Represents a contains type.
    - `ids` string[] — Filter includes provided list of ids.
    - `status` 'ACTIVE' | 'ARCHIVED' | 'ALL' — Filter entities in 'contains' by their status.
  - `customFields` CustomFieldFilterV1[]
    - `id` string — Represents a custom field identifier across the system.
    - `isEmpty` boolean — Indicates whether the custom field is empty.
    - `numberCondition` 'EQUAL' | 'GREATER_THAN' | 'LESS_THAN' — Represents a custom field number condition.
    - `type` 'TXT' | 'NUMBER' | 'DROPDOWN_SINGLE' | 'DROPDOWN_MULTIPLE' | 'CHECKBOX' | 'LINK' — Represents a type of custom field.
    - `value` object — Represents a custom field value.
  - `dateFormat` string — Provide date in format YYYY-MM-DD
  - `dateRangeEnd` string, required — Provide date in format YYYY-MM-DDTHH:MM:SS.ssssss. The system interprets this value based on the user's timezone (provided in the timeZone request parameter or the timezone configured in the user profile)
  - `dateRangeStart` string, required — Provide date in format YYYY-MM-DDTHH:MM:SS.ssssss. The system interprets this value based on the user's timezone (provided in the timeZone request parameter or the timezone configured in the user profile)
  - `dateRangeType` 'ABSOLUTE' | 'TODAY' | 'YESTERDAY' | 'THIS_WEEK' | 'LAST_WEEK' | 'PAST_TWO_WEEKS' | 'THIS_MONTH' | 'LAST_MONTH' | 'THIS_YEAR' | 'LAST_YEAR' — Provide the date range type
  - `description` string — Represents search term for filtering report entries by description
  - `detailedFilter` DetailedFilterV1 — Represents a detailed report filter.
    - `auditFilter` AuditFilterV1
      - `duration` integer — Represent audit duration.
      - `durationShorter` boolean — Represent audit duration shorter.
      - `withoutProject` boolean — Indicates whether to filter without a project.
      - `withoutTask` boolean — Indicates whether to filter without a task.
    - `options` DetailedOptionsV1
      - `totals` 'CALCULATE' | 'EXCLUDE'
    - `page` integer
    - `pageSize` integer
    - `sortColumn` 'ID' | 'DESCRIPTION' | 'USER' | 'DURATION' | 'DATE' | 'ZONED_DATE' | 'NATURAL' | 'USER_DATE' — If provided, you'll get sorted result by sort column.
  - `exportType` 'JSON' | 'JSON_V1' | 'PDF' | 'CSV' | 'XLSX' | 'ZIP' — If provided, you'll get filtered result including reports with provided export type.
  - `invoicingState` 'INVOICED' | 'UNINVOICED' | 'ALL' — If provided, you'll get filtered result including reports with provided invoicing state.
  - `projects` ContainsArchivedFilterV1
    - `contains` 'CONTAINS' | 'DOES_NOT_CONTAIN' | 'CONTAINS_ONLY' — Represents a contains type.
    - `ids` string[] — Filter includes provided list of ids.
    - `status` 'ACTIVE' | 'ARCHIVED' | 'ALL' — Filter entities in 'contains' by their status.
  - `rounding` boolean — Indicates whether the report filter is rounding
  - `sortOrder` 'ASCENDING' | 'DESCENDING' — If provided, you'll get sorted result by provided sort order.
  - `summaryFilter` SummaryFilterV1 — Represents a summary report filter.
    - `groups` string[] — Represents group ids
    - `sortColumn` 'GROUP' | 'DURATION' | 'AMOUNT' | 'EARNED' | 'COST' | 'PROFIT' — If provided, you'll get sorted result by provided sort column.
    - `summaryChartType` 'BILLABILITY' | 'PROJECT' — If provided, you'll get sorted result by provided summary chart type.
  - `tags` ContainsTagFilterV1 — Represents an object for filtering entries by tags.
    - `containedInTimeentry` 'CONTAINS' | 'DOES_NOT_CONTAIN' | 'CONTAINS_ONLY' — If provided, you'll get result filtered by value of contained in time entry.
    - `contains` 'CONTAINS' | 'DOES_NOT_CONTAIN' | 'CONTAINS_ONLY' — Represents a contains type.
    - `ids` string[] — Filter includes provided list of ids.
    - `status` 'ACTIVE' | 'ARCHIVED' | 'ALL' — Filter entities in 'contains' by their status.
  - `tasks` ContainsTaskFilterV1 — Represents filter criteria for expenses associated with tasks.
    - `contains` 'CONTAINS' | 'DOES_NOT_CONTAIN' | 'CONTAINS_ONLY' — Represents a contains type.
    - `ids` string[] — Filter includes provided list of ids.
    - `status` 'ACTIVE' | 'ARCHIVED' | 'ALL' — Filter entities in 'contains' by their status.
  - `timeFormat` string — Provide time in format THH:MM:SS.ssssss
  - `timeZone` string — If provided, you'll get filtered result including reports with provided time zone.
  - `userCustomFields` CustomFieldFilterV1[]
    - `id` string — Represents a custom field identifier across the system.
    - `isEmpty` boolean — Indicates whether the custom field is empty.
    - `numberCondition` 'EQUAL' | 'GREATER_THAN' | 'LESS_THAN' — Represents a custom field number condition.
    - `type` 'TXT' | 'NUMBER' | 'DROPDOWN_SINGLE' | 'DROPDOWN_MULTIPLE' | 'CHECKBOX' | 'LINK' — Represents a type of custom field.
    - `value` object — Represents a custom field value.
  - `userGroups` ContainsUsersFilterV1
    - `contains` 'CONTAINS' | 'DOES_NOT_CONTAIN' | 'CONTAINS_ONLY' — Represents a contains type.
    - `ids` string[] — Filter includes provided list of ids.
    - `status` 'ALL' | 'ACTIVE_WITH_PENDING' | 'ACTIVE' | 'PENDING' | 'INACTIVE' — Filter entities in 'contains' by their status.
  - `userLocale` string — If provided, you'll get filtered result including reports with provided user locale.
  - `users` ContainsUsersFilterV1
    - `contains` 'CONTAINS' | 'DOES_NOT_CONTAIN' | 'CONTAINS_ONLY' — Represents a contains type.
    - `ids` string[] — Filter includes provided list of ids.
    - `status` 'ALL' | 'ACTIVE_WITH_PENDING' | 'ACTIVE' | 'PENDING' | 'INACTIVE' — Filter entities in 'contains' by their status.
  - `weekStart` 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY' | 'SUNDAY' — If provided, you'll get filtered result including reports with provided week start.
  - `weeklyFilter` WeeklyFilterV1, required — Represents a weekly report filter.
    - `group` string — Weekly filter will include group identifier.
    - `subgroup` string — Weekly filter will include subgroup identifier.
  - `withoutDescription` boolean — If set to 'true', report will only include entries with empty description
  - `zoomLevel` 'WEEK' | 'MONTH' | 'YEAR' — If provided, you'll get filtered result including reports with provided zoom level.

## Response `200`

OK

---

[API](https://skmtc.dev/clockify/apis/clockify-api.md) · [All operations](https://skmtc.dev/clockify/apis/clockify-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/clockify/clockify-api/revisions/a5b636acbcd8/schema)
