---
title: "Add Member"
method: POST
path: "/v1/customer-portal/members"
tags: ["customer_portal", "members", "public"]
---

# Add Member

`POST /v1/customer-portal/members`

## Request

- Base URL: `https://api.polar.sh`
- URL: `https://api.polar.sh/v1/customer-portal/members`
- Auth: HTTP bearer

Add a new member to the customer's team.

Only available to owners and billing managers of team customers.

Rules:
- Cannot add a member with the owner role (there must be exactly one owner)
- If a member with this email already exists, the existing member is returned

## Request body

- CustomerPortalMemberCreate: Schema for adding a new member to the customer's team.
  - `email` string, email, required: The email address of the new member.
  - `name` string, nullable: The name of the new member (optional).
  - `role` 'owner' | 'billing_manager' | 'member'

## Response `201`

Member added.

- CustomerPortalMember: A member of the customer's team as seen in the customer portal.
  - `created_at` string, date-time, required: Creation timestamp of the object.
  - `modified_at` string, date-time, nullable, required: Last modification timestamp of the object.
  - `id` string, uuid4, required: The ID of the object.
  - `email` string, required: The email address of the member.
  - `name` string, nullable, required: The name of the member.
  - `role` 'owner' | 'billing_manager' | 'member', required

## Other responses

- `400`: Invalid request or member already exists.
- `401`: Authentication required
- `403`: Not permitted - requires owner or billing manager role
- `422`: Validation Error

---

[API](https://skmtc.dev/polar/apis/polar-api.md) - [All operations](https://skmtc.dev/polar/apis/polar-api/llms.txt) - [OpenAPI document](https://skmtc.dev/polar/apis/polar-api/revisions/77e4ef94fcc3?raw)
