---
title: "Override project affiliations"
method: PATCH
path: "/members/{memberId}/project-affiliations/{projectId}"
tags: ["Project Affiliations"]
---

# Override project affiliations

`PATCH /members/{memberId}/project-affiliations/{projectId}`

Replace all project-level affiliation overrides for a member on a specific project. Pass an empty `affiliations` array to clear overrides (falling back to work experience-based affiliations).

## Path parameters

- `memberId` string, uuid, required
- `projectId` string, uuid, required

## Request body

- object
  - `affiliations` object[], required — Affiliation overrides. Pass an empty array to clear.
    - `organizationId` string, uuid, required
    - `dateStart` string, date-time, required — Start date of the affiliation period.
    - `dateEnd` string, date-time, nullable — End date, or null if currently active.
  - `verifiedBy` string — Required when `affiliations` is non-empty.

## Response `200`

Project affiliations updated.

- ProjectAffiliation
  - `id` string, uuid, required — Segment (project) ID.
  - `projectSlug` string, required
  - `projectName` string, required
  - `projectLogo` string, nullable, required
  - `contributionCount` integer, required — Total number of contributions in this project.
  - `roles` ProjectRole[], required
    - `id` string, uuid, required
    - `role` string, required
    - `startDate` string, date-time, nullable, required
    - `endDate` string, date-time, nullable, required
    - `repoUrl` string, nullable, required
    - `repoFileUrl` string, nullable, required
  - `affiliations` ProjectAffiliationEntry[], required
    - `id` string, uuid, required
    - `organizationId` string, uuid, required
    - `organizationName` string, required
    - `organizationLogo` string, nullable, required
    - `verified` boolean, required
    - `verifiedBy` string, nullable, required
    - `startDate` string, date-time, nullable, required
    - `endDate` string, date-time, nullable, required
    - `type` 'project' | 'work-history', required — `project` — manually overridden at the project level. `work-history` — derived from work experiences.
    - `source` string, nullable — Present only for `work-history` type affiliations.

## Other responses

- `400` — Invalid request body or query parameters.
- `401` — Missing or invalid authentication credentials.
- `403` — Authentication valid but insufficient scopes.
- `404` — Member or project not found.

## Changes

- **2026-08-18** `08aceca4f417` — 1 breaking
  - the `verifiedBy` request property's minLength was increased from `0` to `1`

[Change history](https://skmtc.dev/linuxfoundation/apis/cdp-public-api/changes/members/:memberId/project-affiliations/:projectId/patch.md)

---

[API](https://skmtc.dev/linuxfoundation/apis/cdp-public-api.md) · [All operations](https://skmtc.dev/linuxfoundation/apis/cdp-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/linuxfoundation/cdp-public-api/revisions/08aceca4f417/schema)
