Skip to main content
POST
/
api
/
v1
/
auth
/
register
Register User
curl --request POST \
  --url https://api.example.com/api/v1/auth/register \
  --header 'Content-Type: application/json' \
  --data '
{
  "email": "<string>",
  "username": "<string>",
  "password": "<string>",
  "confirm_password": "<string>"
}
'
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "email": "john.doe@example.com",
  "username": "john_doe",
  "is_verified": false,
  "created_at": "2026-03-06T10:30:45.123456",
  "message": "User registered successfully"
}

Endpoint

POST /api/v1/auth/register
Creates a new user account with email verification. The user will need to verify their email before accessing all features.

Request Body

email
string
required
Valid email address for the user account. Must be unique in the system.Format: Valid email format (validated by EmailStr)Example: user@example.com
username
string
required
Unique username for the account.Requirements:
  • 3-50 characters
  • Only letters, numbers, and underscores allowed
  • Must be unique
Pattern: ^[a-zA-Z0-9_]+$Example: john_doe
password
string
required
Strong password for account security.Requirements:
  • Minimum 8 characters
  • At least one uppercase letter (A-Z)
  • At least one lowercase letter (a-z)
  • At least one number (0-9)
  • At least one special character (!@#$%^&*)
Example: MyP@ssw0rd
confirm_password
string
required
Password confirmation. Must exactly match the password field.Example: MyP@ssw0rd

Response

id
string
Unique identifier for the newly created user.
email
string
Email address of the registered user.
username
string
Username of the registered user.
is_verified
boolean
Email verification status. Initially false until user verifies their email.
created_at
string
ISO 8601 timestamp of account creation.Format: YYYY-MM-DDTHH:MM:SS.mmmmmm
message
string
Success message confirming registration.Default: "User registered successfully"

Example Request

cURL
curl -X POST https://api.softbee.com/api/v1/auth/register \
  -H "Content-Type: application/json" \
  -d '{
    "email": "john.doe@example.com",
    "username": "john_doe",
    "password": "MySecure@Pass123",
    "confirm_password": "MySecure@Pass123"
  }'
Python
import requests

url = "https://api.softbee.com/api/v1/auth/register"
payload = {
    "email": "john.doe@example.com",
    "username": "john_doe",
    "password": "MySecure@Pass123",
    "confirm_password": "MySecure@Pass123"
}

response = requests.post(url, json=payload)
print(response.json())
JavaScript
fetch('https://api.softbee.com/api/v1/auth/register', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    email: 'john.doe@example.com',
    username: 'john_doe',
    password: 'MySecure@Pass123',
    confirm_password: 'MySecure@Pass123'
  })
})
.then(response => response.json())
.then(data => console.log(data));

Example Response

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "email": "john.doe@example.com",
  "username": "john_doe",
  "is_verified": false,
  "created_at": "2026-03-06T10:30:45.123456",
  "message": "User registered successfully"
}

Error Responses

{
  "error": "Must contain uppercase letter"
}

Validation Rules

Email Validation

  • Must be valid email format
  • Must be unique (not already registered)
  • Case-insensitive uniqueness check

Password Validation

The password validator checks for:
  1. Length: Minimum 8 characters
  2. Uppercase: At least one uppercase letter (A-Z)
  3. Lowercase: At least one lowercase letter (a-z)
  4. Number: At least one digit (0-9)
  5. Special Character: At least one special character (!@#$%^&*()_+-=[]|;:’,.?/)
  6. Match: Must exactly match confirm_password

Username Validation

  • Minimum 3 characters
  • Maximum 50 characters
  • Only alphanumeric characters and underscores
  • Must be unique (not already registered)

Next Steps

After successful registration:
  1. Verify Email: User should check their email for verification link
  2. Login: Use the Login endpoint to authenticate
  3. Access API: Use the access token to make authenticated requests

Login

Learn how to authenticate after registration

Build docs developers (and LLMs) love