---
title: "Register user"
method: POST
path: "/users/sign_up"
tags: ["Users"]
---

# Register user

`POST /users/sign_up`

## Request body

- object
  - `user` object, required
    - `name` string — The name of the user
    - `image` string, uri, nullable — The url to the image of the user.
    - `password` string, required — The password of the user.
    - `terms_and_conditions` boolean, required — Whether the user accepted the terms and conditions.
  - `token` string, jwt, required — The authentication token. If provided, the user email is not required.

## Response `200`

OK

- object
  - `id` integer, required — The ID of the user
  - `resource_type` 'User', required — The resource type of the user
  - `name` string, required — The name of the user
  - `email` string, email, required — The email of the user.
  - `image` string, uri, nullable, required — The url to the image of the user.
  - `locale` 'en' | 'fr' | 'es' | 'de' | 'null', nullable, required — The preferred language of the user
  - `notifications_unread_count` integer, required — The count of unread notifications.
  - `otp_required_for_login` boolean, required — Whether OTP/2FA is required for login.
  - `otp_enabled_at` string, date-time, nullable, required — When was the OTP/2FA enabled.
  - `primary_login_exists` boolean, required — Whether the user has a primary login.
  - `created_at` string, date-time, required — When the user was created
  - `updated_at` string, date-time, required — When the user was updated
  - `announcements_last_seen_at` string, date-time, nullable, required
  - `last_read_at` object, nullable, required — When the user read various notifications. At most 50 fields can be stored.
  - `notes` string, nullable, required — The notes for the user.
  - `organization_id` integer, required — The organization ID of the user
  - `organization` object, required — The organization of the user
    - `id` integer, required — The ID of the organization
    - `resource_type` 'Organization', required — The resource type of the organization
    - `name` string, required — The name of the organization
    - `domain` string, required — The domain of the organization.

## Other responses

- `400` — Bad Request
- `404` — Not Found
- `409` — Conflict
- `422` — Unprocessable Content

---

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