---
title: "Invite Member"
method: POST
path: "/api/v1/companies/{company_id}/invite"
tags: ["companies"]
---

# Invite Member

`POST /api/v1/companies/{company_id}/invite`

## Request

- Base URL: `https://api.netter.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.netter.ai/api/v1/companies/{company_id}/invite`
- Auth: none declared

Invite a user. Returns a member summary when the email matches
an existing ``auth.users`` row (fast-path direct add), else a
pending invitation.

## Path parameters

- `company_id` string, uuid, required

## Request body

- CompanyInvite: Request body for inviting a member. ``role`` is typed ``Role`` rather than ``str`` so an unknown value is a 422 at the edge instead of an arbitrary string landing in ``companymember.role`` (which has no CHECK constraint). Whether the *caller* may grant the role they asked for is a separate, scope-dependent question — ``InviteMember`` enforces that.
  - `email` string, required
  - `role` 'owner' | 'admin' | 'member'

## Response `201`

Successful Response

- union
  - CompanyInvitationRead
    - `id` string, uuid, required
    - `company_id` string, uuid, required
    - `email` string, required
    - `role` string, required
    - `invited_by` string, uuid, required
    - `status` string, required
    - `created_at` string, date-time, required
  - CompanyMemberSummary: Lightweight member view — no auth.users join. Used by :class:`AcceptInvitation` to report the newly-inserted member without reaching into ``auth.users`` for the email.
    - `company_id` string, uuid, required
    - `user_id` string, uuid, required
    - `role` string, required
    - `joined_at` string, date-time, required

## Other responses

- `422`: Validation Error

## Changes

> 60 revisions in range; 1 not diffed.

- **2026-09-09** `b581494ebe52`: 1 breaking, 3 info
  - request property `role` was restricted to a list of enum values
  - added the new `admin` enum value to the request property `role`
  - added the new `member` enum value to the request property `role`
  - added the new `owner` enum value to the request property `role`

[Operation history](https://skmtc.dev/netter/apis/dmi-backend/changes/api/v1/companies/:company_id/invite/post.md)

---

[API](https://skmtc.dev/netter/apis/dmi-backend.md) - [All operations](https://skmtc.dev/netter/apis/dmi-backend/llms.txt) - [OpenAPI document](https://skmtc.dev/netter/apis/dmi-backend/revisions/29c68bd8ba7b?raw)
