---
title: "Add or invite a member"
method: POST
path: "/v3/admin/organizations/{id}/members"
tags: ["Admin"]
---

# Add or invite a member

`POST /v3/admin/organizations/{id}/members`

## Request

- Base URL: `https://api.rhinoartisan.com`
- URL: `https://api.rhinoartisan.com/v3/admin/organizations/{id}/members`
- Auth: API key in header `apikey`
- TypeScript: <https://skmtc.dev/rhinoartisan/apis/rhinoartisan-api/docs/v3/admin/organizations/:id/members/post.ts> (a function with typed inputs; its response is checked against the schema)

An existing account joins right away; an unknown email gets a Supabase invitation. Any role can be granted here, confidential ones included.

## Path parameters

- `id` string, required

## Request body

- object
  - `email` string
  - `roles` string[]

## Response `200`

Organization

## Other responses

- `409`: USER_ALREADY_IN_ORGANIZATION | EMAIL_ALREADY_INVITED

## Changes

- **2026-10-02** `82c79770c36b`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/rhinoartisan/apis/rhinoartisan-api/changes/v3/admin/organizations/:id/members/post.md)

---

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