---
question: Can an organization invite add the person to a workspace too?
kind: task
via_web: available
via_cli: available
via_python: na
via_api: available
via_config: na
ref_web: Organization Settings › Users
ref_cli: abi org members invite
ref_api: POST /api/organizations/{org_id}/members/invite
prereq: You are an owner or admin of the organization.
next:
  - /capabilities/platform/organization-and-members
  - /capabilities/platform/invite-a-workspace-member
---

# Invite an organization member

An invite gives someone an organization role, member or admin, and can add them to a workspace in the same step. Owners come from the config only. If the person has no account, the invite creates one and emails a sign-in code. Without the email service the response says `sign_in_email_sent: false`.

## Web UI

### Open Users

Open the account menu, then **Organization Settings**, then **Users**. Users is shown to owners and admins.

### Create the user

Choose **Create user**. Enter the **Email** and **Full name**, and pick the **Member role**: Member or Admin. Job title, country and the other profile fields are optional. Tick the **Workspaces** the person should join.

Choose **Create user**. The account is created if it does not exist yet, and the person gets a sign-in email.

![Organization Settings on Users: the Create user form](/abi/Screenshot_Create_Org_User.png)

*Organization Settings › Users › Create user. Email, full name and member role; the profile fields below are optional.*

### Change the role later

Select the person in Users. On their profile, change **Member role** and choose **Save changes**. **Remove from organization** removes them. The owner shows as locked: "Owners come from the config".

## CLI

### Invite

```bash
abi org members invite --org <org-id> --email jane@example.com --role member
```

`--role` is `member` (the default) or `admin`. The command also offers `owner`, which the API refuses. `--workspace <ws-id>` adds the person to a workspace too, with `--workspace-role` (`admin`, `member` or `viewer`; default `member`). It calls `POST /api/organizations/{id}/members/invite`.

### List

```bash
abi org members list --org <org-id>
```

There is no CLI command to change an organization role or remove a member: use the Web UI or the REST API. See [`abi org members`](/user-guide/reference/cli#abi-org-members).

## Python

Not applicable. ABI has no Python API for organization members. From Python, call the REST API.

## REST API

### Invite

```bash
curl -X POST http://localhost:9879/api/organizations/<org-id>/members/invite \
  -H "Authorization: Bearer $NEXUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"email": "jane@example.com", "role": "member", "workspace_id": "<ws-id>", "workspace_role": "viewer"}'
```

`role` is `admin` or `member`. `workspace_id` and `workspace_role` are optional. The response is the member, with `user_created`, `sign_in_email_sent` and `workspace_member_id`. A caller who is not an owner or admin gets 403. The endpoint is rate-limited.

### Change the role or remove

```bash
curl -X PATCH http://localhost:9879/api/organizations/<org-id>/members/<user-id> \
  -H "Authorization: Bearer $NEXUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"role": "admin"}'
```

You cannot change your own role or the owner's (400). `DELETE /api/organizations/<org-id>/members/<user-id>` removes a member, except yourself and the owner.

## Config

Not applicable. The config sets only the organization's owner (`organizations[].owner_email`). `organizations[].members` is deprecated and ignored. Invite people from the Web UI, the CLI or the REST API.
