---
title: "Create project member"
method: POST
path: "/projects/{project_name_or_id}/members"
tags: ["member"]
---

# Create project member

`POST /projects/{project_name_or_id}/members`

Create project member relationship, the member can be one of the user_member and group_member,  The user_member need to specify user_id or username. If the user already exist in harbor DB, specify the user_id,  If does not exist in harbor DB, it will SearchAndOnBoard the user. The group_member need to specify id or ldap_group_dn. If the group already exist in harbor DB. specify the user group's id,  If does not exist, it will SearchAndOnBoard the group.

## Path parameters

- `project_name_or_id` string, required

## Headers

- `X-Request-Id` string
- `X-Is-Resource-Name` boolean

## Request body

- ProjectMember
  - `role_id` integer — The role id 1 for projectAdmin, 2 for developer, 3 for guest, 4 for maintainer
  - `member_user` UserEntity
    - `user_id` integer — The ID of the user.
    - `username` string — The name of the user.
  - `member_group` UserGroup
    - `id` integer — The ID of the user group
    - `group_name` string — The name of the user group
    - `group_type` integer — The group type, 1 for LDAP group, 2 for HTTP group, 3 for OIDC group.
    - `ldap_group_dn` string — The DN of the LDAP group if group type is 1 (LDAP group).

## Response `201`

Project member created successfully.

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `409` — Conflict
- `500` — Internal server error

---

[API](https://skmtc.dev/cerit/apis/harbor-api.md) · [All operations](https://skmtc.dev/cerit/apis/harbor-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/cerit/harbor-api/revisions/62d78801f8df/schema)
