---
title: "Create a new user."
method: POST
path: "/api/users"
tags: ["User Accounts"]
---

# Create a new user.

`POST /api/users`

A user who can login and use the system.

## Request body

- UserCreate
  - `email` string, required
  - `isActive` boolean
  - `isSuperuser` boolean
  - `isVerified` boolean
  - `name` string, nullable
  - `password` string, required

## Response `201`

Document created, URL follows

- User
  - `avatarUrl` string, nullable
  - `email` string, required
  - `hasPassword` boolean
  - `id` string, uuid, required
  - `isActive` boolean
  - `isSuperuser` boolean
  - `isTwoFactorEnabled` boolean
  - `isVerified` boolean
  - `name` string, nullable
  - `oauthAccounts` OauthAccount[]
    - `accountEmail` string, required
    - `accountId` string, required
    - `id` string, uuid, required
    - `oauthName` string, required
    - `scopes` string[], nullable
  - `roles` UserRole[]
    - `assignedAt` string, date-time, required
    - `roleId` string, uuid, required
    - `roleName` string, required
    - `roleSlug` string, required
  - `teams` UserTeam[]
    - `isOwner` boolean
    - `role` 'admin' | 'editor' | 'member' — Valid values for team roles. Roles follow Jetstream conventions: - ADMIN: Full permissions (create, read, update, delete) - EDITOR: Limited permissions (read, create, update) - MEMBER: Basic read-only access Note: Team ownership is tracked separately via is_owner on TeamMember.
    - `teamId` string, uuid, required
    - `teamName` string, required
    - `teamSlug` string, required

## Other responses

- `400` — Bad request syntax or unsupported method

---

[API](https://skmtc.net/litestar-org/apis/app.md) · [All operations](https://skmtc.net/litestar-org/apis/app/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/litestar-org/app/versions/461f3baecebb/schema)
