---
title: "PUT /api/integration/v1/projects/{id} — partial update (only fields named in ?fields= are written)"
method: PUT
path: "/api/integration/v1/projects/{id}"
tags: ["Projects"]
---

# PUT /api/integration/v1/projects/{id} — partial update (only fields named in ?fields= are written)

`PUT /api/integration/v1/projects/{id}`

## Request

- Base URL: `https://api.timix.ai`
- URL: `https://api.timix.ai/api/integration/v1/projects/{id}`
- Auth: API key in header `X-Api-Key`

## Path parameters

- `id` string, required

## Query parameters

- `fields` string, nullable

## Request body

- BillingProjectView
  - `id` string
  - `createdAt` string, date-time
  - `updatedAt` string, date-time
  - `parentId` string, required
  - `name` string
  - `allowedBillingTypes` BillingType[]
  - `poNumber` string
  - `description` string
  - `reporters` string[]
  - `status` 'Active' | 'OnHold' | 'Completed' | 'Cancelled'
  - `times` TimeSummaries
    - `tm` TimeSummary
      - `reported` integer
      - `limit` integer
    - `fix` TimeSummary
      - `reported` integer
      - `limit` integer
    - `ovh` TimeSummary
      - `reported` integer
      - `limit` integer
    - `all` TimeSummary, required
      - `reported` integer
      - `limit` integer
    - `financialSummary` FinancialSummary
      - `totalRevenue` number
      - `totalCost` number
      - `totalProfit` number
      - `profitMargin` number
      - `revenueByBillingType` object
      - `costByUser` object
      - `monthlyBreakdown` object
  - `organizationId` string
  - `customerId` string
  - `createdBy` string
  - `updatedBy` string
  - `fixedPrice` number
  - `currency` string
  - `budgetType` 'NotSet' | 'Fixed' | 'TM' | 'ProfitMargin'
  - `fixedBudgetAmount` number, nullable
  - `internalHoursLimit` number, nullable
  - `minimumProfitMargin` number, nullable
  - `isTmAllowed` boolean
  - `tmApprovedHours` number, nullable
  - `customerHourlyRate` number, nullable
  - `isFixAllowed` boolean
  - `fixHourLimit` number, nullable
  - `fixFixedAmount` number, nullable
  - `isOvhAllowed` boolean
  - `ovhHourLimit` number, nullable
  - `createGeneralActivity` boolean
  - `customFields` object, nullable

## Response `200`

- BillingProjectView
  - `id` string
  - `createdAt` string, date-time
  - `updatedAt` string, date-time
  - `parentId` string, required
  - `name` string
  - `allowedBillingTypes` BillingType[]
  - `poNumber` string
  - `description` string
  - `reporters` string[]
  - `status` 'Active' | 'OnHold' | 'Completed' | 'Cancelled'
  - `times` TimeSummaries
    - `tm` TimeSummary
      - `reported` integer
      - `limit` integer
    - `fix` TimeSummary
      - `reported` integer
      - `limit` integer
    - `ovh` TimeSummary
      - `reported` integer
      - `limit` integer
    - `all` TimeSummary, required
      - `reported` integer
      - `limit` integer
    - `financialSummary` FinancialSummary
      - `totalRevenue` number
      - `totalCost` number
      - `totalProfit` number
      - `profitMargin` number
      - `revenueByBillingType` object
      - `costByUser` object
      - `monthlyBreakdown` object
  - `organizationId` string
  - `customerId` string
  - `createdBy` string
  - `updatedBy` string
  - `fixedPrice` number
  - `currency` string
  - `budgetType` 'NotSet' | 'Fixed' | 'TM' | 'ProfitMargin'
  - `fixedBudgetAmount` number, nullable
  - `internalHoursLimit` number, nullable
  - `minimumProfitMargin` number, nullable
  - `isTmAllowed` boolean
  - `tmApprovedHours` number, nullable
  - `customerHourlyRate` number, nullable
  - `isFixAllowed` boolean
  - `fixHourLimit` number, nullable
  - `fixFixedAmount` number, nullable
  - `isOvhAllowed` boolean
  - `ovhHourLimit` number, nullable
  - `createGeneralActivity` boolean
  - `customFields` object, nullable

## Other responses

- `404`
- `422`

---

[API](https://skmtc.dev/timix/apis/timix-ai-integration-api.md) · [All operations](https://skmtc.dev/timix/apis/timix-ai-integration-api/llms.txt) · [OpenAPI document](https://skmtc.dev/timix/apis/timix-ai-integration-api/revisions/ff7f1b6d7479?raw)
