---
title: "Changes to Create a new project"
method: POST
path: "/v1/spaces/{spaceId}/projects"
---

# Changes to Create a new project

`POST /v1/spaces/{spaceId}/projects`

> Every recorded change to this endpoint, newest first.

## Timeline

Changed in 2 of 10 revisions.

- **2026-08-15** `2e610947dac4` — 2 warning, 32 info
- **2026-08-08** `237f5bbd4029` — 1 breaking, 1 info

## Changes

- **2026-08-15** `2e610947dac4` — 2 warning, 32 info
  - removed the request property `totalCost`
  - removed the optional property `data/totalCost` from the response with the `200` status
  - added the new optional request property `actualCost`
  - added the new optional request property `alertThresholdPercent`
  - added the new optional request property `contractValue`
  - added the new optional request property `nteCapHours`
  - added the new optional request property `projectType`
  - added the new optional request property `retainerBudgetPeriod`
  - added the new optional request property `retainerBudgetedHours`
  - added the new optional request property `retainerCountCostMode`
  - added the new optional request property `retainerCountHoursMode`
  - added the new optional request property `retainerCycleAnchor`
  - added the new optional request property `retainerFee`
  - added the optional property `data/actualCost` to the response with the `200` status
  - added the optional property `data/alertThresholdPercent` to the response with the `200` status
  - added the optional property `data/capUsedPercent` to the response with the `200` status
  - added the optional property `data/contractValue` to the response with the `200` status
  - added the optional property `data/margin` to the response with the `200` status
  - added the optional property `data/marginPercent` to the response with the `200` status
  - added the optional property `data/nteCapHours` to the response with the `200` status
  - added the optional property `data/overageHours` to the response with the `200` status
  - added the optional property `data/projectType` to the response with the `200` status
  - added the optional property `data/projectTypeLocked` to the response with the `200` status
  - added the optional property `data/retainerBudgetPeriod` to the response with the `200` status
  - added the optional property `data/retainerBudgetUsedPercent` to the response with the `200` status
  - added the optional property `data/retainerBudgetedHours` to the response with the `200` status
  - added the optional property `data/retainerCountCostMode` to the response with the `200` status
  - added the optional property `data/retainerCountHoursMode` to the response with the `200` status
  - added the optional property `data/retainerCycleAnchor` to the response with the `200` status
  - added the optional property `data/retainerFee` to the response with the `200` status
  - added the optional property `data/retainerOverageHours` to the response with the `200` status
  - added the optional property `data/retainerTotalCost` to the response with the `200` status
  - added the optional property `data/spentPercent` to the response with the `200` status
  - added the optional property `data/thresholdAlertRecipients` to the response with the `200` status
- **2026-08-08** `237f5bbd4029` — 1 breaking, 1 info
  - removed the media type `application/hal+json` for the response with the status `200`
  - added the media type `application/vnd.hal+json` for the response with the status `200`

---

[Operation](https://skmtc.dev/astravue/apis/astravue-api/docs/v1/spaces/:spaceId/projects/post.md) · [API](https://skmtc.dev/astravue/apis/astravue-api.md) · [Page](https://skmtc.dev/astravue/apis/astravue-api/changes/v1/spaces/:spaceId/projects/post)
