---
title: "Create a Project"
method: POST
path: "/v1/project/"
tags: ["Projects"]
---

# Create a Project

`POST /v1/project/`

Create a project.

This creates a project and automatically adds company owners as users to that project.

## Request body

- ProjectCreateModel — Model for creating a project. Includes info for both project and company-project
  - `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 — 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.
  - `musterPoint` string, nullable — The muster point for the project site.
  - `isPrivate` boolean — 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
  - `companyProject` ProjectCompanyPatchModel, required — Company specific project details that can optionally be updated
    - `externalId` string, nullable — The unique identifier used by an external system, can be used to support integration.
    - `externalSystemName` string, nullable — The name of the external system that the external_id field belongs to.
    - `isArchived` boolean — Indicates if the company wants to archive the site.
    - `displayName` string, nullable — The display name for a project that can be customized per company working on a project.
    - `accountingName` string, nullable — The project name as it's represented in the accounting or financial system, in case it's different from the main project name.
    - `jobNumber` string, nullable — Optional specifier for an external project number.
    - `siteClass` string, nullable — The project site class.
    - `description` string, nullable
    - `nearestHospital` string, nullable — Name of the nearest hospital to the site
    - `nearestClinic` string, nullable — Name of the nearest medical clinic to the site
    - `firstAidAttendant` string, nullable — Name of the first aid attendant for the site
    - `siteLinkOne` string, nullable — Any additional links for the site
    - `siteLinkTwo` string, nullable — Any additional links for the site
    - `siteLinkThree` string, nullable — Any additional links for the site
    - `udf1` string, nullable — Field for storing customer-defined metadata about the site
    - `udf2` string, nullable — Field for storing customer-defined metadata about the site
    - `udf3` string, nullable — Field for storing customer-defined metadata about the site

## Response `200`

Successful Response

- ApiGenericResponseUnifiedProjectDetailModel
  - `error` boolean — A boolean error indicator.
  - `message` string, nullable — Optional message.
  - `data` UnifiedProjectDetailModel
    - `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.
    - `companyProject` ProjectCompanyDetailsModel — Full version of company-specific project details
      - `externalId` string, nullable, required — The unique identifier used by an external system, can be used to support integration.
      - `externalSystemName` string, nullable, required — The name of the external system that the external_id field belongs to.
      - `isArchived` boolean, required — Indicates that a project has been archived for this company.
      - `udf1` string, nullable — Field for storing customer-defined metadata about the site
      - `udf2` string, nullable — Field for storing customer-defined metadata about the site
      - `udf3` string, nullable — Field for storing customer-defined metadata about the site
      - `displayName` string, nullable, required — The display name for a project that can be customized per company working on a project.
      - `accountingName` string, nullable, required — The project name as it's represented in the accounting or financial system, in case it's different from the main project name.
      - `jobNumber` string, nullable, required — Optional specifier for an external project number.
      - `siteClass` string, nullable, required — The project site class.
      - `description` string, nullable, required
      - `nearestHospital` string, nullable, required — Name of the nearest hospital to the site
      - `nearestClinic` string, nullable, required — Name of the nearest medical clinic to the site
      - `firstAidAttendant` string, nullable, required — Name of the first aid attendant for the site
      - `siteLinkOne` string, nullable, required — Any additional links for the site
      - `siteLinkTwo` string, nullable, required — Any additional links for the site
      - `siteLinkThree` string, nullable, required — Any additional links for the site
      - `udf1Label` string, nullable — Label for the customer-defined metadata about the site
      - `udf2Label` string, nullable — Label for the customer-defined metadata about the site
      - `udf3Label` string, nullable — Label for the customer-defined metadata about the site

## 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)
