Create a new user account with email and password.
Body
User’s password (minimum 8 characters, must contain uppercase, lowercase, and digit)
User’s full name (optional) - Used for personalized greetings and profile display
The role is determined server-side based on request headers:
Platform operator key - Required for developer registration
Developer API key - Required for end_user registration
Project UUID - Required when registering end users with developer key
The system automatically determines the user role from headers:
X-Operator-Key present → Creates developer account
X-Developer-Key + X-Project-ID present → Creates end_user account in specified project
No special headers → Registration rejected (public registration disabled)
Response
Unique user identifier (UUID)
User’s full name (null if not provided)
User’s role: platform_operator, developer, or end_user
Account activation status (false by default, requires email verification)
Account creation timestamp (ISO 8601)
Project UUID (only present for end_user accounts)
One-time provisioning data for developers (only returned for developer registration) Auto-created project UUID
Developer API key (full key shown once)
Project API key (full key shown once)
JWT access token (optional, returned for end_user registration for immediate authentication)
JWT refresh token (optional, returned for end_user registration)
Token type, typically “bearer” (optional)
Example Requests
Register End User
curl -X POST https://api.vibecoding.ad/api/v1/auth/register \
-H "Content-Type: application/json" \
-H "X-Developer-Key: ak_your_developer_key_here" \
-H "X-Project-ID: 550e8400-e29b-41d4-a716-446655440000" \
-d '{
"email": "user@example.com",
"password": "SecurePass123",
"full_name": "Jane Doe"
}'
Response:
{
"id" : "660e8400-e29b-41d4-a716-446655440001" ,
"email" : "user@example.com" ,
"full_name" : "Jane Doe" ,
"role" : "end_user" ,
"is_active" : false ,
"created_at" : "2025-12-07T10:30:00Z" ,
"project_id" : "550e8400-e29b-41d4-a716-446655440000" ,
"access_token" : "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." ,
"refresh_token" : "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." ,
"token_type" : "bearer"
}
Register Developer
curl -X POST https://api.vibecoding.ad/api/v1/auth/register \
-H "Content-Type: application/json" \
-H "X-Operator-Key: your_operator_key_here" \
-d '{
"email": "developer@example.com",
"password": "SecurePass123",
"full_name": "John Smith"
}'
Response:
{
"id" : "770e8400-e29b-41d4-a716-446655440002" ,
"email" : "developer@example.com" ,
"full_name" : "John Smith" ,
"role" : "developer" ,
"is_active" : false ,
"created_at" : "2025-12-07T10:35:00Z" ,
"provisioning" : {
"project_id" : "880e8400-e29b-41d4-a716-446655440003" ,
"developer_key" : "ak_abc123XYZ-_789def456ghi012jkl345" ,
"api_key" : "ak_xyz789ABC-_123ghi456jkl789mno012"
}
}
Password Requirements
Passwords must meet the following criteria:
Minimum 8 characters
At least one uppercase letter (A-Z)
At least one lowercase letter (a-z)
At least one digit (0-9)
Example valid passwords: Password123, SecurePass456, MyP@ssw0rd
Email Uniqueness
Email uniqueness rules vary by role:
End Users : Email must be unique within the project (same email can exist in different projects)
Developers/Operators : Email must be globally unique
(((REPLACE_THIS_WITH_IMAGE: cloud-api-registration-flow-diagram.png: Diagram showing registration flow for developers and end users with role determination based on headers)))
Related Pages
Login Authenticate existing users
Verify Email Complete email verification
Developer Keys Manage developer API keys
Cloud Admin Registration Register via web interface
Starter Kit Auth Implement registration in your app
Quick Start Complete registration tutorial
Password must be at least 8 characters long
Minimum string length: 8
Enhanced registration response with role and provisioning data
created_at
string<date-time>
required
provisioning
ProvisioningData · object
Provisioning data for developers (one-time response)
token_type
string | null
default: bearer