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

# Find work entries

> Returns the work entries of a project, most recent first.

## Finding work entries

Returns the work entries of a single project, most recent first.

Set `billed` to `false` to list only the work that is still waiting to be invoiced, or to `true` to list the work that has already been billed. Omit it to receive both.

<Note>
  Like all list endpoints of the Infinity API, this endpoint returns at most 30
  work entries by default. Use `limit` and `skip` to page through projects with
  more work entries than that.
</Note>


## OpenAPI

````yaml GET /v1/projects/{projectId}/work-entries
openapi: 3.1.0
info:
  title: infinity.swiss Open API
  version: '1.0'
  summary: ''
servers:
  - url: https://api.infinity.swiss
security:
  - apiKey: []
paths:
  /v1/projects/{projectId}/work-entries:
    parameters:
      - schema:
          type: string
        name: projectId
        in: path
        description: The id of the project the work entries belong to.
        required: true
    get:
      tags: []
      summary: Find work entries
      description: Returns the work entries of a project, most recent first.
      operationId: find-work-entries-v1
      parameters:
        - schema:
            type: number
            default: 30
            maximum: 200
          in: query
          name: limit
          description: Pagination limit. Defaults to 30, maximum 200.
        - schema:
            type: number
          in: query
          name: skip
          description: Pagination offset for the results.
        - schema:
            type: boolean
          in: query
          name: billed
          description: When set, filters to only billed or only unbilled work entries.
      responses:
        '200':
          description: Successfully returns the list of work entries.
          content:
            application/json:
              schema:
                type: object
                properties:
                  workEntries:
                    type: array
                    items:
                      $ref: '#/components/schemas/WorkEntry'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorised'
        '404':
          $ref: '#/components/responses/ProjectNotFound'
components:
  schemas:
    WorkEntry:
      title: WorkEntry
      type: object
      description: A single unit of work that was performed on a project.
      required:
        - id
        - type
        - date
        - description
        - wasBilled
      properties:
        id:
          type: string
          description: The unique id of this work entry within its project.
        type:
          $ref: '#/components/schemas/WorkEntryType'
        date:
          type: string
          format: date
          description: The date the work was performed on, in YYYY-MM-DD format.
        description:
          type: string
          description: >-
            The description of the work that was performed. Appears on the
            invoice when the work entry is billed.
        wasBilled:
          type: boolean
          description: >-
            Whether this work entry has already been billed on an invoice. This
            field is read-only and is set by Infinity when the work is billed.
        price:
          type: integer
          description: >-
            The amount in cents that can be invoiced for this work entry. Only
            present for `fixed-price` work entries.
        rate:
          type: integer
          description: >-
            The hourly rate in cents used for this work entry. Only present for
            `hourly` work entries.
        hours:
          type: integer
          description: >-
            The number of full hours spent. Only present for `hourly` work
            entries.
        minutes:
          type: integer
          description: >-
            The number of minutes spent in addition to `hours`. Only present for
            `hourly` work entries.
        amount:
          type: integer
          description: >-
            The resulting value of this work entry in cents. Not present for
            `unbillable` work entries.
    WorkEntryType:
      title: WorkEntryType
      type: string
      description: >-
        The kind of a work entry, which determines how it is valued:

        - `hourly` is valued by an hourly rate and the time spent

        - `fixed-price` is valued by a fixed amount, e.g. for materials or lump
        sum work

        - `unbillable` has no value and cannot be billed
      enum:
        - unbillable
        - fixed-price
        - hourly
  responses:
    BadRequest:
      description: >-
        A bad request is thrown if the request payload is malformed or fails
        validation.
      content:
        application/json:
          schema:
            type: object
            required:
              - code
            properties:
              code:
                type: string
                description: |-
                  The specific error code for this request. May be:
                  - `general/missing-fields`
                  - `general/malformed-request`
                  - `general/invalid-date`
                  - `general/input-too-long`
                  - `general/zero-or-negative-amount-not-allowed`
              invalidFields:
                type: array
                description: A list of the fields which were invalid, if applicable.
                items:
                  type: string
    Unauthorised:
      description: >-
        An unauthorised request was submitted. You may be using an incorrect or
        expired API token, or are attempting to access a document outside of the
        scope of the token.
      content:
        application/json:
          schema:
            type: object
            properties:
              code:
                type: string
                x-stoplight:
                  id: 08hkw8ukmi2lp
                description: Specific error code
          examples:
            Unauthorised request:
              value:
                code: general/unauthorised
    ProjectNotFound:
      description: No project with the given id could be found in this organisation.
      content:
        application/json:
          schema:
            type: object
            properties:
              code:
                type: string
                description: Specific error code.
          examples:
            Not found:
              value:
                code: projects/not-found
  securitySchemes:
    apiKey:
      name: x-api-token
      type: apiKey
      in: header
      description: >-
        API token for authentication. Obtain from your Infinity account
        settings.

````