---
title: "Update Main Project"
method: PUT
path: "/v1/project/{project_id}/"
tags: ["Projects"]
---

# Update Main Project

`PUT /v1/project/{project_id}/`

Update main project details.

A project owner can update all relevant project details, including default name, address and other project related details.

The whole object must be specified when using this endpoint, and optional fields will be set to empty. The `PATCH` endpoint can be used to update only specific fields. Typically, this endpoint is called after a request to get details.

## Path parameters

- `project_id` integer, required

## Request body

- MainProjectPutModel — Required elements to update a project's core data fields.
  - `name` string, required — The name of the project.
  - `address` string, required — The address of the project site.
  - `city` string, required — The city of the project site.
  - `country` string, required — The country of the project site.
  - `timezone` string, required — The timezone associated with the project site.
  - `phone` string, nullable, required — The main phone number associated with the project site.
  - `longitude` number, nullable, required — The longitude of the project site.
  - `latitude` number, nullable, required — The latitude of the project site.
  - `musterPoint` string, nullable, required — The muster point for the project site.
  - `isPrivate` boolean, required — Indicates that a project is private.
  - `geoCheckInEnabled` boolean, required — Enable or disable having workers get automatically checked in and out of the site based on their location

## Response `200`

Successful Response

- ApiGenericResponseMainProjectDetailModel
  - `error` boolean — A boolean error indicator.
  - `message` string, nullable — Optional message.
  - `data` MainProjectDetailModel — A complete main project model that encapsulate all relevant details associated with the project entity.
    - `id` integer, nullable — Unique internal project identifier.
    - `name` string, nullable — The project name.
    - `address` string, nullable — The address of the project site.
    - `city` string, nullable — The city of the project site.
    - `country` string, nullable — The country of the project site.
    - `timezone` string, nullable — The timezone associated with the project site.
    - `phone` string, nullable — The main phone number associated with the project site.
    - `longitude` number, nullable — The longitude of the project site.
    - `latitude` number, nullable — The latitude of the project site.
    - `siteCode` integer, nullable — Unique 5 digit site code generated by the system.
    - `musterPoint` string, nullable — The muster point for the project site.
    - `isPrivate` boolean, nullable — Indicates that a project is private.
    - `geoCheckInEnabled` boolean — Enable or disable having workers get automatically checked in and out of the site based on their location
    - `updatedAt` string, date-time, nullable — The time stamp of the last time the field was updated.
    - `createdAt` string, date-time, nullable — The time stamp when the record was created.

## Other responses

- `400` — Business Logic Error
- `403` — Permission Error
- `409` — Integrity Error or Data Conflict
- `422` — Validation Error

---

[API](https://skmtc.dev/salussafety/apis/salus-developer-api.md) · [All operations](https://skmtc.dev/salussafety/apis/salus-developer-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/salussafety/salus-developer-api/revisions/ef065f44da25/schema)
