---
title: "List Projects"
method: GET
path: "/timmi-project/api/v4/projects"
tags: ["Projects"]
---

# List Projects

`GET /timmi-project/api/v4/projects`

List projects from an organization. Only returns a subset of a [Project](reference/Timmi-Project.yaml/components/schemas/Project) fields.

## Query parameters

- `organizationId` integer, required
- `search` string[]
- `limit` integer
- `page` integer
- `fields.root` 'count'
- `code` string

## Response `200`

OK

- object
  - `next` string, uri, nullable
  - `prev` string, uri, nullable
  - `count` integer, nullable
  - `items` Project[]
    - `id` integer
    - `name` string, required
    - `code` string, nullable — Defaults to an automatically generated value.
    - `clientId` integer, required
    - `client` object
      - `id` number
      - `name` string
      - `code` string
      - `externalCode` string, nullable
    - `ownerId` integer
    - `owner` object, nullable — The user assigned as this project lead. Set through the ownerId field.
      - `id` integer
      - `firstName` string
      - `lastName` string
      - `picture` object
        - `href` string, uri
      - `dtContractEnd` string, date
      - `establishmentId` integer
    - `status` 'draft' | 'ongoing' | 'completed' | 'cancelled' | 'suspended' | 'archived' — Project is only available for time submission when having a "ongoing" status. Status can be updated through the "status-updates" API.
    - `contractType` 'nonBillable' | 'fixedPrice' | 'timeAndMaterials' | 'cappedTimeAndMaterials' — Describes project contract types: - Non-billable (internal): no revenue recognized, budget estimates are optional. - Fixed price: progress-based revenue recognition, budget estimates are mandatory. - Time and Materials: time-based revenue recognition, initial estimates are indicative. - Not-to-exceed Time and Materials: time-based revenue recognition with a maximum value, initial estimate sets the maximum value.
    - `startsOn` string, date, nullable — Start of the project execution.
    - `createdAt` string, date-time — Timestamp of the project creation.
    - `lastModifiedAt` string, date-time — Timestamp of the last update to the project.
    - `price` Price — Represents an amount of money. Is a value object containing a decimal number and a currency.
      - `amount` number
      - `currencyId` 'EUR' | 'USD' | 'CAD' | '...'
    - `authorizedActions` string[] — Actions the current user can do on the project.
    - `organizationId` integer — Identifier of the organization this project belongs to. Inherited from the client.
    - `description` string, nullable — Optional markdown formatted description.
    - `initialDeliveryDate` string, date, nullable — Initially planned delivery date.
    - `revisedDeliveryDate` string, date, nullable — Updated planned (or actual) delivery date.
    - `launchedAt` string, date-time, nullable — Timestamp of the project launch.
    - `lastChargedOn` string, date, nullable — Timestamp of the last time or expense allocated on the project.
    - `standardRateCardId` integer, required
    - `standardRateCard` object — Standard rate card version applicable for this project. Used for profit analysis.
      - `id` integer
      - `name` string
    - `initialTimeEstimate` Duration
      - `iso` string, duration — ISO-8601 formatted duration.
      - `unit` 'day' | 'hour'
    - `revisedTimeEstimate` Duration
      - `iso` string, duration — ISO-8601 formatted duration.
      - `unit` 'day' | 'hour'
    - `standardRate` PriceRate — Represents an amount of money per day or hour.
      - `price` Price — Represents an amount of money. Is a value object containing a decimal number and a currency.
        - `amount` number
        - `currencyId` 'EUR' | 'USD' | 'CAD' | '...'
      - `unit` 'day' | 'hour' — Duration unit: days or hours.
    - `billRate` PriceRate — Represents an amount of money per day or hour.
      - `price` Price — Represents an amount of money. Is a value object containing a decimal number and a currency.
        - `amount` number
        - `currencyId` 'EUR' | 'USD' | 'CAD' | '...'
      - `unit` 'day' | 'hour' — Duration unit: days or hours.
    - `initialBudget` Price — Represents an amount of money. Is a value object containing a decimal number and a currency.
      - `amount` number
      - `currencyId` 'EUR' | 'USD' | 'CAD' | '...'
    - `revisedBudget` Price — Represents an amount of money. Is a value object containing a decimal number and a currency.
      - `amount` number
      - `currencyId` 'EUR' | 'USD' | 'CAD' | '...'
    - `discount` Price — Represents an amount of money. Is a value object containing a decimal number and a currency.
      - `amount` number
      - `currencyId` 'EUR' | 'USD' | 'CAD' | '...'
    - `discountRate` number, nullable
    - `estimatedOverrun` Price — Represents an amount of money. Is a value object containing a decimal number and a currency.
      - `amount` number
      - `currencyId` 'EUR' | 'USD' | 'CAD' | '...'
    - `initialRecoveryRate` number, nullable
    - `estimatedRecoveryRate` number, nullable
    - `totalInvoiced` Price — Represents an amount of money. Is a value object containing a decimal number and a currency.
      - `amount` number
      - `currencyId` 'EUR' | 'USD' | 'CAD' | '...'
    - `risks` object[] — List of risks this project is exposed to.
      - `type` 'budgetOverRun' | 'delayedDelivery' | 'highlyDiscounted' — List of all risks projects and tasks are exposed to: - **budgetOverRun**: total amount spent is greater than the inBudgetitial budget, or revised budget is greated than initial budget. - **delayedDelivery**: revised delivery date is later than initially planned or project is still ongoing but its revised delivery date is already passed. - **highlyDiscounted**: the discount amount is greater than the configured threshold.
      - `label` string
    - `anomalies` object[] — List of anomalies this project is exposed to.
      - `type` 'noServices' | 'missingOwner' | 'missingClient' | 'missingName' | 'missingCode' | 'missingStandardRateCard' | 'fixedPriceInvoicingMismatch' | 'budgetExceeded' | 'deliveryDateExceeded' | 'dueInvoiceMilestone' — List of all anomalies projects and tasks are exposed to: - **noServices**: - **missingOwner**: An owner is missing - **missingClient**: The project or the task has no Client - **missingName**: The name of the project/task is missing - **missingCode**: - **missingStandardRateCard**: - **fixedPriceInvoicingMismatch**: - **budgetExceeded**: - **deliveryDateExceeded**: - **dueInvoiceMilestone**:
      - `label` string
    - `invoicingWarnings` object[]
      - `type` 'unapprovedItems' | 'unconfirmedMilestone' | 'creditNote'
      - `applicableFrom` string, date
      - `preventsInvoicing` boolean
      - `label` string

## Other responses

- `400` — Problem
- `401` — Problem
- `404` — Problem
- `500` — Problem

---

[API](https://skmtc.net/luccasoftware/apis/lucca-expenses.md) · [All operations](https://skmtc.net/luccasoftware/apis/lucca-expenses/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/luccasoftware/lucca-expenses/revisions/110f9897756c/schema)
