> ## Documentation Index
> Fetch the complete documentation index at: https://trygradient.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Members API

> List the members of your Gradient organization, invite new ones, change a member's workspace role, resend an invitation, and remove access.

# Members

Members are the people in your organization who can manage roles, invite candidates, and review scores. Members have one of four roles: **owner**, **admin**, **member**, or **reviewer**. The hierarchy is **owner > admin > member > reviewer**, and each role includes what the role below it can do. See [Members and permissions](/docs/concepts/members-and-permissions) for the full matrix.

| Role | Permissions |
| - | - |
| **Owner** | Full access. Billing, SSO/SCIM/MFA, data retention, and the audit log, plus management of admins and owners. |
| **Admin** | Org profile and branding, API keys, ATS integrations, management of members and reviewers, and permanent deletion. |
| **Member** | The everyday recruiting work: manage roles and assessment settings, invite candidates, score, calibrate, and release feedback. |
| **Reviewer** | Read-only access to assessments, sessions, and scores. |

## List Members

```
GET /api/members
```

<Info>Requires admin role (owner or admin).</Info>

<Accordion title="Response">
  ```json theme={null}
  {
    "members": [
      {
        "id": "uuid",
        "email": "alice@company.com",
        "name": "Alice Chen",
        "role": "owner",
        "createdAt": "2025-01-10T09:00:00Z"
      }
    ]
  }
  ```
</Accordion>

***

## Invite Member

```
POST /api/members
```

Invites a new member to your organization. They'll receive an email with a magic link to join.

<ParamField body="email" type="string" required>
  Email address of the person to invite
</ParamField>

<ParamField body="role" type="string" default="reviewer">
  Role to assign: `owner`, `admin`, `member`, or `reviewer`
</ParamField>

<ParamField body="sendEmail" type="boolean" default="true">
  When `false`, the member is created but Gradient does not send the magic-link invitation email — deliver your own using the member's email. The response's `inviteEmailSent` reflects what actually happened.
</ParamField>

<Accordion title="Response - 201 Created">
  `name` defaults to the email's local part (before the `@`) until the member sets their own; `inviteEmailSent` reports whether the invitation email was sent.

  ```json theme={null}
  {
    "member": {
      "id": "uuid",
      "email": "bob@company.com",
      "name": "bob",
      "role": "admin",
      "createdAt": "2025-01-15T10:00:00Z"
    },
    "inviteEmailSent": true
  }
  ```
</Accordion>

***

## Update Member Role

```
PATCH /api/members/:id
```

<ParamField body="role" type="string" required>
  New role: `owner`, `admin`, `member`, or `reviewer`
</ParamField>

<Accordion title="Response">
  ```json theme={null}
  {
    "member": {
      "id": "uuid",
      "email": "bob@company.com",
      "role": "admin"
    }
  }
  ```
</Accordion>

***

## Resend Member Invite

```
POST /api/members/:id/resend
```

Resends the invitation email to a member who hasn't yet accepted.

<Accordion title="Response">
  ```json theme={null}
  {
    "ok": true
  }
  ```
</Accordion>

***

## Remove Member

```
DELETE /api/members/:id
```

Removes a member from your organization. You cannot remove yourself.

<Warning>An organization must always have at least one owner.</Warning>

<Accordion title="Response">
  ```json theme={null}
  {
    "ok": true
  }
  ```
</Accordion>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.