# Get timesheets summary

## OpenAPI Specification

```yaml
openapi: 3.0.1
info:
  title: ''
  description: ''
  version: 1.0.0
paths:
  /api/rest/timesheets/shop/{shopId}:
    get:
      summary: Get timesheets summary
      deprecated: false
      description: >-
        Retrieve timesheets summary for all employees with paid vs non-paid
        hours breakdown
      operationId: getTimesheetsSummary
      tags:
        - Timesheets
        - timesheets-api
      parameters:
        - name: shopId
          in: path
          description: Shop ID (internal ID or Shopify shop name)
          required: true
          example: ''
          schema:
            type: string
        - name: from
          in: query
          description: Start date (UTC ISO format)
          required: true
          schema:
            type: string
            format: date-time
        - name: to
          in: query
          description: End date (UTC ISO format)
          required: true
          schema:
            type: string
            format: date-time
        - name: personnelIds
          in: query
          description: >-
            Filter by personnel IDs (comma-separated). Can be combined with
            locationIds.
          required: false
          schema:
            type: string
        - name: locationIds
          in: query
          description: >-
            Filter by Shopify location IDs (comma-separated). Can be combined
            with personnelIds.
          required: false
          schema:
            type: string
        - name: limit
          in: query
          description: Max number of items to return (default 10 when pagination used)
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
        - name: offset
          in: query
          description: Number of items to skip (default 0)
          required: false
          schema:
            type: integer
            minimum: 0
      responses:
        '200':
          description: Successfully retrieved timesheets summary
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    examples:
                      - true
                  data:
                    type: object
                    description: Paginated response
                    properties:
                      count:
                        type: number
                        description: Total number of items
                      limit:
                        type: number
                        description: Page size
                      offset:
                        type: number
                        description: Items skipped
                      previous:
                        type: object
                        description: Previous page cursor
                        x-apidog-orders: []
                        nullable: true
                      next:
                        type: object
                        description: Next page cursor
                        x-apidog-orders: []
                        nullable: true
                      results:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: number
                            personnelId:
                              type: number
                            shopifyUserId:
                              type: string
                              nullable: true
                            userName:
                              type: string
                            email:
                              type: string
                            position:
                              type: string
                              nullable: true
                            avatarFile:
                              type: string
                              nullable: true
                            locations:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: number
                                  name:
                                    type: string
                                  shopifyLocationId:
                                    type: string
                                  timezone:
                                    type: string
                                x-apidog-orders:
                                  - id
                                  - name
                                  - shopifyLocationId
                                  - timezone
                            salaryWage:
                              type: object
                              properties:
                                currencyCode:
                                  type: string
                                currencyMark:
                                  type: string
                                rate:
                                  type: number
                                rateType:
                                  type: string
                                  description: hr, week, or month
                              x-apidog-orders:
                                - currencyCode
                                - currencyMark
                                - rate
                                - rateType
                            totalHours:
                              type: number
                              description: Total hours worked
                            totalPaidHours:
                              type: number
                              description: Hours that count for pay
                            totalUnpaidHours:
                              type: number
                              description: Hours not paid (e.g. unpaid breaks)
                            totalUnpaidBreaks:
                              type: number
                              description: Total unpaid breaks in minutes
                            totalTimeOffHours:
                              type: number
                            amount:
                              type: string
                            totalApprovedShiftsCount:
                              type: number
                              nullable: true
                            totalPendingApprovalShiftsCount:
                              type: number
                              nullable: true
                          x-apidog-orders:
                            - id
                            - personnelId
                            - shopifyUserId
                            - userName
                            - email
                            - position
                            - avatarFile
                            - locations
                            - salaryWage
                            - totalHours
                            - totalPaidHours
                            - totalUnpaidHours
                            - totalUnpaidBreaks
                            - totalTimeOffHours
                            - amount
                            - totalApprovedShiftsCount
                            - totalPendingApprovalShiftsCount
                    x-apidog-orders:
                      - count
                      - limit
                      - offset
                      - previous
                      - next
                      - results
                x-apidog-orders:
                  - success
                  - data
          headers: {}
          x-apidog-name: ''
        '400':
          description: Bad Request
          headers: {}
          x-apidog-name: ''
        '401':
          description: Unauthorized
          headers: {}
          x-apidog-name: ''
        '403':
          description: Forbidden
          headers: {}
          x-apidog-name: ''
        '404':
          description: Not Found
          headers: {}
          x-apidog-name: ''
        '429':
          description: Rate Limit Exceeded
          headers: {}
          x-apidog-name: ''
      security: []
      x-apidog-folder: Timesheets
      x-apidog-status: released
      x-run-in-apidog: https://app.apidog.com/web/project/763618/apis/api-33094543-run
components:
  schemas: {}
  securitySchemes: {}
servers: []
security: []

```
