---
sidebar_label: Users
doc_id: a8d1b153-3148-4ff7-8cbb-5036db73db0d
description: Create and manage users in nullplatform, including pre-provisioning SSO users without sending an invite email.
keywords:
  - users
  - user management
  - SSO
  - send_invite
  - admin
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

# Users

A **user** represents a person (member) in nullplatform. Users receive **roles**, and those roles take
effect through **grants** tied to specific resources.

## Prerequisites

You need an [Admin role](/docs/authorization/roles) at the **Organization** level to create users.

## Create users

You can create users using the UI, CLI, or API.

<Tabs
defaultValue="create-user-ui"
values={[
{ label: 'UI', value: 'create-user-ui' },
{ label: 'CLI', value: 'create-user-cli' },
{ label: 'cURL', value: 'create-user-curl' },
]}>
<TabItem value="create-user-ui">

1. Log in to nullplatform as an **admin** user.
2. Navigate to **Team management**.
3. Click **+ Invite new member**.
4. Fill in the user details, assign permissions, and click **Send invite**. 

</TabItem>

<TabItem value="create-user-cli">

To create a user with the API, send a [POST request](/docs/api/user-create) to the User endpoint. Here’s an example:

```bash
np user create \
--body '{
  "email": "alex.doe@email.com",
  "first_name": "Alex",
  "last_name": "Doe",
  "organization_id": 1234,
  "avatar": "https://my-avatar-url.com",
  "send_invite": true  //Optional field; defaults to `true`
}'
```

</TabItem>
<TabItem value="create-user-curl">

To create a user with the API, send a [POST request](/docs/api/user-create) to the User endpoint. Here’s an example:

```bash
curl -L 'https://api.nullplatform.com/user' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <token>' \
--data-raw '{
  "email": "alex.doe@email.com",
  "first_name": "Alex",
  "last_name": "Doe",
  "organization_id": 1234,
  "avatar": "https://my-avatar-url.com",
  "send_invite": true  //Optional field; defaults to `true`
}'
```

</TabItem>
</Tabs>

The user will receive an invitation email to join nullplatform.


## Pre-provision users before first SSO login

You can create users **before their first SSO login** so you can assign roles and grants in advance. This is useful
when you want access in place on day one and you do not want to send an invitation email.

To pre-provision a user, create the user with `send_invite=false`. See [Create a user](/docs/api/user-create) for the
full request and response schema.

> ℹ️ **Note:** You can’t pre-provision users from the UI. Use the API or CLI instead.

<Tabs
defaultValue="preprovision-user-cli"
values={[
{ label: 'CLI', value: 'preprovision-user-cli' },
{ label: 'cURL', value: 'preprovision-user-curl' },
]}>
<TabItem value="preprovision-user-cli">

```bash
np user create \
--body '{
  "email": "alex.doe@email.com",
  "first_name": "Alex",
  "last_name": "Doe",
  "organization_id": 1234,
  "send_invite": false
}'
```
</TabItem>
<TabItem value="preprovision-user-curl">

```bash
curl -L -X POST 'https://api.nullplatform.com/user' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <token>' \
-d '{
  "email": "john.doe@email.com",
  "first_name": "John",
  "last_name": "Doe",
  "organization_id": 1234,
  "send_invite": false
}'
```

</TabItem>
</Tabs>

:::important
Set `send_invite` to `false` to avoid sending an invitation email.
:::

### About `send_invite`

- `send_invite` is a boolean field on user creation.
- The default value is `true`.
- When set to `false`, nullplatform does not send an invitation email.

## Next steps

- To automate user provisioning from your identity provider instead of creating users manually, see [SCIM provisioning](/docs/authorization/scim/scim-overview).
