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": "[email protected] ",
"password": "SecurePass123",
"full_name": "Jane Doe"
}'
Response:
{
"id" : "660e8400-e29b-41d4-a716-446655440001" ,
"email" : "[email protected] " ,
"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": "[email protected] ",
"password": "SecurePass123",
"full_name": "John Smith"
}'
Response:
{
"id" : "770e8400-e29b-41d4-a716-446655440002" ,
"email" : "[email protected] " ,
"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
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