COUNTCOUNT
Sign Up
ProjectsUpdate a project

Update a project

PATCH/partners/projects/{uuid}

Updates an existing project. Only the fields you send are changed.

Pass `customerUuid` as a UUID to set the customer, `null` or empty string to clear, or omit to leave unchanged. `statusUuid` sets the status when provided.

HMAC signature + Bearer access token
Try this request

Path parameters

uuiduuidrequired

Project UUID to update.

Request body

namestring

Updated project name.

customerUuiduuid

Customer UUID, null to clear, or omit to leave unchanged.

statusUuiduuid

Status UUID from List project statuses.

descriptionstring

Updated description.

customIdstring

Updated external reference id.

startDatedate

Updated start date.

endDatedate

Updated end date.

Responses

200Project updated successfully.
404Project not found.
401Missing or invalid HMAC signature, expired timestamp, or invalid Bearer token. Troubleshoot
403The credential does not have access to this workspace or resource. Troubleshoot
429Rate limit exceeded (100 requests per minute per clientId). Retry after the Retry-After header. Troubleshoot
PATCHhttps://api.getcount.com/partners/projects/{uuid}
Request
import crypto from 'node:crypto';

const BASE_URL = 'https://api.getcount.com';
const CLIENT_ID = process.env.COUNT_CLIENT_ID;
const CLIENT_SECRET = process.env.COUNT_CLIENT_SECRET;
const ACCESS_TOKEN = process.env.COUNT_ACCESS_TOKEN;

const method = 'PATCH';
const signingPath = '/projects/11223344-5566-7788-99aa-bbccddeeff00';
const timestamp = Math.floor(Date.now() / 1000).toString();
const body = {
  "description": "Updated scope — includes mobile responsive design."
};
const bodyString = JSON.stringify(body);

const bodyHash = crypto.createHash('sha256').update(bodyString).digest('hex');
const baseString = `${method}:${signingPath}:${timestamp}:${bodyHash}`;
const signature = crypto.createHmac('sha256', CLIENT_SECRET).update(baseString).digest('hex');

const response = await fetch(`${BASE_URL}/partners/projects/11223344-5566-7788-99aa-bbccddeeff00`, {
  method,
  headers: {
    'x-client-id': CLIENT_ID,
    'x-timestamp': timestamp,
    'x-signature': signature,
    'Content-Type': 'application/json',
    Authorization: `Bearer ${ACCESS_TOKEN}`,
  },
  body: bodyString,
});

console.log(await response.json());
Response · 200
{
  "status": "success",
  "message": "Success on updating project",
  "data": {
    "project": {
      "id": "11223344-5566-7788-99aa-bbccddeeff00",
      "name": "Website Redesign",
      "description": "Updated scope — includes mobile responsive design.",
      "customId": "PRJ-2026-001",
      "startDate": "2026-02-01",
      "endDate": "2026-06-30",
      "customer": {
        "uuid": "dfa3219e-6af8-4c53-997a-037534f63a35",
        "customer": "Acme Corporation"
      },
      "projectStatus": {
        "uuid": "aabbccdd-eeff-4012-8000-001122334455",
        "name": "In Progress",
        "color": "#E48642"
      },
      "createdAt": "2026-01-15T10:30:00.000Z",
      "updatedAt": "2026-01-28T14:22:30.000Z"
    }
  }
}