improved

Upcoming breaking changes in project endpoints

On Dec 18, 2024, we will be updating several project related endpoints with changes regarding how company-specific project information is returned. This will clarify the distinction between information that is associated with the project directly and can be updated by the project owner though the Update Main Project endpoint, and information that is for each company and can be updated through the Update Company Project endpoint.

Additionally, all instances of timeZone will be updated to timezone to be consistent with the rest of our API.

We recommend you update your code ahead of the change to provide and accept either format. Our API ignores any unexpected fields, so both the old and new format can be provided simultaneously without errors.

Company-Project Change Details

In endpoints that accept or return the unified project, all fields for company-specific project information will be moved to a nested object with the key companyProject. Endpoints that only return information for the main project, or only company-specific project information are unaffected.

The Search Projects endpoint will be updated to return:

{
  "error": false,
  "message": "Projects found",
  "data": [
    {
      "id": 123,
      "name": "The Project Name",
      "address": "123 Somewhere Ave",
      "city": "Vancouver",
      "country": "Canada",
      "timezone": "America/Vancouver",
      "phone": "16045551234",
      "siteCode": 54231,
      "isPrivate": true,
      "updatedAt": "2024-12-02T19:50:11.334Z",
      "createdAt": "2024-12-02T19:50:11.334Z",
      "companyProject": {
        "externalId": "100123",
        "externalSystemName": "Procore",
        "isArchived": false
      }
    }
  ]
}

The Create a Project and Get Project Details endpoints will be updated to return:

{
  "error": false,
  "message": "string",
  "data": {
    "id": 123,
    "name": "The Project Name",
    "address": "123 Somewhere Ave",
    "city": "Vancouver",
    "country": "Canada",
    "timezone": "America/Vancouver",
    "phone": "16045551234",
    "longitude": 35.89421911,
    "latitude": 139.94637467,
    "siteCode": 54231,
    "musterPoint": "string",
    "isPrivate": true,
    "geoCheckInEnabled": true,
    "updatedAt": "2024-12-02T20:14:22.861Z",
    "createdAt": "2024-12-02T20:14:22.861Z",
    "companyProject": {
      "externalId": "100123",
      "externalSystemName": "Procore",
      "isArchived": false,
      "displayName": "Company Prefix - Project Name",
      "accountingName": "ACCT-SYS-01-PRJ-NAME",
      "jobNumber": "001-PRJ-NAME",
      "siteClass": "Site Class",
      "description": "string",
      "nearestHospital": "Vancouver General Hospital",
      "nearestClinic": "Alberni Medical Clinic",
      "firstAidAttendant": "Jane Doe",
      "siteLinkOne": "https://example.com",
      "siteLinkTwo": "https://example.com",
      "siteLinkThree": "https://example.com"
    }
  }
}

The Create a Project endpoint will be updated to accept:

{
  "name": "The Project Name",
  "address": "123 Somewhere Ave",
  "city": "Vancouver",
  "country": "Canada",
  "timezone": "America/Vancouver",
  "phone": "16045551234",
  "longitude": 35.89421911,
  "latitude": 139.94637467,
  "musterPoint": "string",
  "isPrivate": true,
  "geoCheckInEnabled": true,
  "companyProject": {
    "externalId": "100123",
    "externalSystemName": "Procore",
    "isArchived": false,
    "displayName": "Company Prefix - Project Name",
    "accountingName": "ACCT-SYS-01-PRJ-NAME",
    "jobNumber": "001-PRJ-NAME",
    "siteClass": "Site Class",
    "description": "string",
    "nearestHospital": "Vancouver General Hospital",
    "nearestClinic": "Alberni Medical Clinic",
    "firstAidAttendant": "Jane Doe",
    "siteLinkOne": "https://example.com",
    "siteLinkTwo": "https://example.com",
    "siteLinkThree": "https://example.com"
  }
}

Sending company-project information in the old format will not cause an error, but will not be saved. Specifying companyProject and all the fields inside it will be required and cause an error if not provided.

Timezone Change Details

The following endpoints will be updated to return timezone instead of timeZone

The following endpoints will be updated to accept timezone instead of timeZone.

Sending timeZone to Patch Main Project will not cause an error, but will not be saved. Sending timeZone to Create a Project or Update Main Project will not cause cause an error unless the required timezone field is not provided.