Skip to main content
POST
/
api
/
v1
/
auth
/
register
Register
curl --request POST \
  --url https://api.devkit4ai.com/api/v1/auth/register \
  --header 'Content-Type: application/json' \
  --data '
{
  "email": "[email protected]",
  "password": "<string>",
  "full_name": "<string>"
}
'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "email": "<string>",
  "role": "<string>",
  "is_active": true,
  "created_at": "2023-11-07T05:31:56Z",
  "full_name": "<string>",
  "project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "provisioning": {
    "project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "api_key": "<string>",
    "developer_key": "<string>"
  },
  "access_token": "<string>",
  "refresh_token": "<string>",
  "token_type": "bearer"
}
Create a new user account with email and password.

Body

email
string
required
User’s email address
password
string
required
User’s password (minimum 8 characters, must contain uppercase, lowercase, and digit)
full_name
string
User’s full name (optional) - Used for personalized greetings and profile display

Headers

The role is determined server-side based on request headers:
X-Operator-Key
string
Platform operator key - Required for developer registration
X-Developer-Key
string
Developer API key - Required for end_user registration
X-Project-ID
string
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

id
string
Unique user identifier (UUID)
email
string
User’s email address
full_name
string
User’s full name (null if not provided)
role
string
User’s role: platform_operator, developer, or end_user
is_active
boolean
Account activation status (false by default, requires email verification)
created_at
string
Account creation timestamp (ISO 8601)
project_id
string
Project UUID (only present for end_user accounts)
provisioning
object
One-time provisioning data for developers (only returned for developer registration)
access_token
string
JWT access token (optional, returned for end_user registration for immediate authentication)
refresh_token
string
JWT refresh token (optional, returned for end_user registration)
token_type
string
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)))

Body

application/json
email
string<email>
required
password
string
required

Password must be at least 8 characters long

Minimum string length: 8
full_name
string | null

Response

Successful Response

Enhanced registration response with role and provisioning data

id
string<uuid>
required
email
string
required
role
string
required
is_active
boolean
required
created_at
string<date-time>
required
full_name
string | null
project_id
string<uuid> | null
provisioning
ProvisioningData · object

Provisioning data for developers (one-time response)

access_token
string | null
refresh_token
string | null
token_type
string | null
default:bearer