---
title: "Add a member to an organization"
method: POST
path: "/orgs/{org_id}/members"
tags: ["Organizations"]
---

# Add a member to an organization

`POST /orgs/{org_id}/members`

## Request

- Base URL: `https://api-docs.jackhamr.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api-docs.jackhamr.ai/orgs/{org_id}/members`
- Auth: none declared

Add a user to an organization by email.

Requires ``owner`` or ``admin`` org role. The new member is
identified by ``email`` (the public API never exposes internal
user ids). ``owner`` is rejected; ownership changes go through
transfer-ownership. Only the ``owner`` may assign the ``admin``
role; admins may only add ``member``/``viewer`` members. 404 when
the org or target user does not exist; 409 when the user is
already a member.

## Path parameters

- `org_id` string, required

## Request body

- OrgMemberAdd: Request body for ``POST /api/v1/orgs/{id}/members``. The caller identifies the new member by email (the public API never exposes internal user ids); the role is one of ``owner|admin|member|viewer``. ``owner`` is rejected by the endpoint (ownership changes go through transfer-ownership).
  - `email` string, email, required
  - `role` string

## Response `201`

Successful Response

- OrgMemberOut: An organization member.
  - `id` string, required
  - `organization_id` string, required
  - `user_id` string, required
  - `role` string, required
  - `user_email` string, nullable
  - `user_full_name` string, nullable
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `422`: Validation Error

---

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