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": "jsmith@example.com",
  "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": "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)))

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

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