---
title: "Invite or update a user"
method: POST
path: "/api/v0/organization/users/invite"
tags: ["Organization"]
---

# Invite or update a user

`POST /api/v0/organization/users/invite`

Sends an invitation to a user to join the organization. If the user is already a member, updates their role to the specified value. If the user has a pending invite, returns the current status without changes. If the organization has reached its seat limit, returns status "error" with a descriptive error message.

## Request body

- InviteUserRequestBody
  - `email` string, email, required — Email address to invite
  - `role` 'user' | 'manager' | 'owner' — Role to assign (defaults to user)

## Response `200`

Response for status 200

- InviteUser200ResponseBody
  - `email` string, email, required — Invited email address
  - `role` 'user' | 'manager' | 'owner', required — Assigned role
  - `status` 'invited' | 'already_member' | 'role_updated' | 'already_invited' | 'error', required — Result of the invite operation
  - `error` string — Error message if status is error

## Other responses

- `400` — Response for status 400
- `401` — Response for status 401
- `403` — Response for status 403
- `409` — Response for status 409
- `500` — Response for status 500

---

[API](https://skmtc.dev/factory/apis/factory-public-api.md) · [All operations](https://skmtc.dev/factory/apis/factory-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/factory/factory-public-api/revisions/8a9f1c4e20ac/schema)
