---
title: "Update a project member role"
method: PATCH
path: "/projects/{id}/members/{membershipId}"
---

# Update a project member role

`PATCH /projects/{id}/members/{membershipId}`

## Request

- Base URL: `https://api.eurobase.dev`
- URL: `https://api.eurobase.dev/projects/{id}/members/{membershipId}`
- Auth: none declared

## Path parameters

- `id` string, required
- `membershipId` string, required

## Request body

- ProjectMemberUpsertRequest
  - `role` 'owner' | 'admin' | 'contributor'
  - `transferOwnership` boolean: Explicitly transfer this project and, if managed by the caller, its shared billing responsibility to this existing member.
  - `confirmation` string: Exact project name required for ownership transfer.

## Response `200`

Project member updated

- ProjectMemberResponse
  - `member` ProjectMember, required
    - `id` string, required
    - `projectId` string, required
    - `organizationMembershipId` string, required
    - `organizationId` string, required
    - `organizationMembershipStatus` 'active' | 'invited' | 'suspended', required
    - `role` 'owner' | 'admin' | 'contributor', required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `user` object, required
      - `id` string, required
      - `email` string, required
      - `status` string, nullable
      - `deleteRequestedAt` string, date-time, nullable
      - `createdAt` string, date-time, required
  - `detachedAppRepo` boolean
  - `ok` boolean

---

[API](https://skmtc.dev/eurobase/apis/eurobase-api.md) · [All operations](https://skmtc.dev/eurobase/apis/eurobase-api/llms.txt) · [OpenAPI document](https://skmtc.dev/eurobase/apis/eurobase-api/revisions/5266a299d18a?raw)
