---
title: "Add/invite a firm member (owner-only) · 0 credits"
method: POST
path: "/api/v1/firm/members"
tags: ["Firm Management"]
---

# Add/invite a firm member (owner-only) · 0 credits

`POST /api/v1/firm/members`

## Request

- Base URL: `https://legal.nexusquantum.legal`
- URL: `https://legal.nexusquantum.legal/api/v1/firm/members`
- Auth: HTTP bearer

Adds a member by email, or sends an invitation if they have no account. `email` required; `role` defaults to author. Consumes a seat: if none are left, it returns `402 SEAT_LIMIT_REACHED` (a SEAT limit, NOT a credit limit — it is not remapped to INSUFFICIENT_CREDITS). It NEVER accepts `firm_owner_id`/overrides from the client. `requireAAL2` is a no-op for API-key auth. No charge. Scope: mcp | *.

## Request body

- AddFirmMemberRequest: Adds a member by email, or sends an invitation if they have no account. `firm_owner_id` is NEVER accepted from the client (the internal route derives it from the KEY).
  - `email` string, required: Email of the member to add or invite.
  - `role` 'author' | 'reviewer' | 'approver' | 'admin': Member's role (default author).

## Response `200`

Member reactivated.

- FirmMember: Firm member (E4, OWNER-ONLY). The internal route filters by the `firm_owner_id` derived from the `userId` of the KEY: only the owner sees/manages their members. Soft-remove = `active:false`.
  - `id` string, uuid: UUID of the member row (firm_members.id).
  - `member_user_id` string, uuid, nullable: UUID of the member user (null while it is still an invitation pending redemption).
  - `email` string: Member's email.
  - `role` 'author' | 'reviewer' | 'approver' | 'admin': Member's role in the firm.
  - `active` boolean: Active status (soft-remove sets it to false).
  - `invited_at` string, date-time, nullable
  - `accepted_at` string, date-time, nullable

## Other responses

- `201`: Member added or invitation sent.
- `400`: invalid email/role
- `402`: SEAT_LIMIT_REACHED — no seats available (a seat limit, not a credit limit).

---

[API](https://skmtc.dev/nexusquantum/apis/nexus-legal-api.md) · [All operations](https://skmtc.dev/nexusquantum/apis/nexus-legal-api/llms.txt) · [OpenAPI document](https://skmtc.dev/nexusquantum/apis/nexus-legal-api/revisions/4084d8d4eb0b?raw)
