> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.specurate.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List Project Hours



## OpenAPI

````yaml /openapi.json get /v1/workspaces/{workspaceId}/time-log/projects
openapi: 3.1.0
info:
  title: Specurate API
  description: ''
  version: 1.0.0
  contact: {}
servers:
  - url: https://app.specurate.com/api
    description: API Server
security: []
tags: []
paths:
  /v1/workspaces/{workspaceId}/time-log/projects:
    get:
      tags:
        - Time Log
      summary: List Project Hours
      operationId: TimeLogController_listProjectHours_v1
      parameters:
        - name: workspaceId
          required: true
          in: path
          schema:
            type: string
        - name: limit
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 100
            default: 20
            type: integer
        - name: cursor
          required: false
          in: query
          schema:
            type: string
        - name: weekStart
          required: true
          in: query
          schema:
            type: string
            format: date
            pattern: >-
              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
        - name: search
          required: false
          in: query
          schema:
            type: string
            maxLength: 200
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimeLogProjectListResponseDto'
components:
  schemas:
    TimeLogProjectListResponseDto:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/TimeLogProjectListItemDto'
        nextCursor:
          type: string
          nullable: true
        hasMore:
          type: boolean
      required:
        - items
        - nextCursor
        - hasMore
    TimeLogProjectListItemDto:
      type: object
      properties:
        project:
          $ref: '#/components/schemas/TimeLogProjectDto'
        weekHours:
          type: string
        totalHours:
          type: string
        contributors:
          type: array
          items:
            $ref: '#/components/schemas/TimeLogPersonDto'
      required:
        - project
        - weekHours
        - totalHours
        - contributors
    TimeLogProjectDto:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        code:
          type: string
          nullable: true
        currentPhase:
          nullable: true
          enum:
            - pre_design
            - programming
            - schematic_design
            - design_development
            - construction_documents
            - bidding_negotiation
            - procurement
            - construction_administration
            - installation
            - closeout
            - general
          type: string
        timeBillable:
          type: boolean
      required:
        - id
        - name
        - code
        - currentPhase
        - timeBillable
    TimeLogPersonDto:
      type: object
      properties:
        userId:
          type: string
        email:
          type: string
        firstName:
          type: string
          nullable: true
        lastName:
          type: string
          nullable: true
      required:
        - userId
        - email
        - firstName
        - lastName

````