---
title: "Register User"
method: POST
path: "/api/user/register"
tags: ["user"]
---

# Register User

`POST /api/user/register`

Register a new user with email verification (local or SSO).

Accepts either:
- 3-word verification code for local users
- SSO JWT token for SSO users

Auto-detects credential type and handles both flows.

## Request body

- RegisterRequest — Unified user registration request (local and SSO). Used by: /user/register Accepts either: - 3-word verification code (local users): "purple-mountain-river" - SSO JWT token (SSO users): "eyJ..." (long token with dots) For local users: given_name and family_name are required For SSO users: given_name and family_name are optional (extracted from JWT if not provided) Key derivation: 1. Client derives Ed25519 keypair from password using Argon2id 2. Client sends Ed25519 public key (signing_key) 3. Backend derives X25519 encryption key from Ed25519 signing key
  - `email` string, email, required
  - `signing_key` string, required
  - `verification_credential` string, required
  - `given_name` string, nullable
  - `family_name` string, nullable
  - `picture` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

## Changes

- **2025-12-25** `aa4b06f8dede` — 1 breaking, 3 warning, 3 info
  - added the new required request property `signing_key`
  - removed the request property `last_name`
  - removed the request property `name`
  - removed the request property `public_key`
  - …3 more
- **2025-10-28** `849d5e8732f6` — 3 breaking, 7 warning, 4 info
  - added the new required request property `public_key`
  - added the new required request property `verification_credential`
  - the response's body type/format changed from `object`/`` to ``/`` for status `200`
  - removed the request property `password`
  - …10 more
- **2025-10-10** `ba5ad76fe6cd` — 1 breaking
  - added the new required request property `verification_code`

[Change history](https://skmtc.dev/arbicity/apis/arbi/changes/api/user/register/post.md)

---

[API](https://skmtc.dev/arbicity/apis/arbi.md) · [All operations](https://skmtc.dev/arbicity/apis/arbi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/arbicity/arbi/revisions/1f956ac3d1c1/schema)
