---
title: "CreateMembership"
method: POST
path: "/gitpod.v1.GroupService/CreateMembership"
tags: ["gitpod.v1.GroupService"]
---

# CreateMembership

`POST /gitpod.v1.GroupService/CreateMembership`

Creates a membership for a user in a group.

 Use this method to:
 - Add users to groups
 - Grant group-based permissions to users

 ### Examples

 - Add a user to a group:

   Creates a membership for a user in a group.

   ```yaml
   groupId: "d2c94c27-3b76-4a42-b88c-95a85e392c68"
   subject:
     id: "f53d2330-3795-4c5d-a1f3-453121af9c60"
     principal: PRINCIPAL_USER
   ```

 ### Authorization

 Requires `org:admin` permission on the organization or `group:admin` permission on the specific group.

## Request body

- GitpodV1CreateMembershipRequest — CreateMembership messages
  - `groupId` string, uuid
  - `subject` GitpodV1Subject
    - `id` string, uuid — id is the UUID of the subject
    - `principal` 'PRINCIPAL_UNSPECIFIED' | 'PRINCIPAL_ACCOUNT' | 'PRINCIPAL_USER' | 'PRINCIPAL_RUNNER' | 'PRINCIPAL_ENVIRONMENT' | 'PRINCIPAL_SERVICE_ACCOUNT' | 'PRINCIPAL_RUNNER_MANAGER'

## Response `200`

Success

- GitpodV1CreateMembershipResponse
  - `member` GitpodV1GroupMembership — GroupMembership represents a subject's membership in a group
    - `avatarUrl` string — Subject's avatar URL
    - `groupId` string, uuid — Group identifier
    - `id` string, uuid — Unique identifier for the group membership
    - `name` string — Subject's display name
    - `subject` GitpodV1Subject
      - `id` string, uuid — id is the UUID of the subject
      - `principal` 'PRINCIPAL_UNSPECIFIED' | 'PRINCIPAL_ACCOUNT' | 'PRINCIPAL_USER' | 'PRINCIPAL_RUNNER' | 'PRINCIPAL_ENVIRONMENT' | 'PRINCIPAL_SERVICE_ACCOUNT' | 'PRINCIPAL_RUNNER_MANAGER'

## Other responses

- `default` — Error

---

[API](https://skmtc.net/gitpod-io/apis/gitpod-v1.md) · [All operations](https://skmtc.net/gitpod-io/apis/gitpod-v1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/gitpod-io/gitpod-v1/revisions/44d50c2ac284/schema)
