Skip to main content

Public signup (Free Trial / CRM)

This is the unauthenticated endpoint behind the website's Free Trial form and any external CRM signup. It creates a demo trading account and emails the credentials.

POST /api/v1/public/account

Body

{
"first_name": "Jane",
"last_name": "Doe",
"email": "jane@example.com",
"phone": "+15551234567",
"country": "US",
"address": "123 Main St, New York",
"trade_type": 1
}
FieldNotes
trade_type1 = demo (trial), 0 = live (created pending, needs admin approval).
phoneE.164 format (+ prefix required).
countryISO 3166-1 alpha-2 or alpha-3.
depositOptional; demo signups below 3000 default to 100000.

For a demo signup the server:

  1. Creates the account in the admin-configured demo group with a $100,000 balance.
  2. Stamps a 30-day trial expiry (admin-tunable via system_demo_trial_days; 0 disables). An hourly job expires past-due trials and blocks their login.
  3. Generates a password and emails the credentials (branded template).
  4. Enforces one active trial per email — a second signup returns 400 until the previous trial expires or is deleted.

Response data (201)

{
"account_id": 26100016,
"email": "jane@example.com",
"first_name": "Jane",
"last_name": "Doe",
"message": "Account created successfully. Check your email for login credentials.",
"status": 2,
"trade_type": 1
}

The password is never returned in the response — it only goes to the email. For server-to-server account creation with full control, use the authenticated POST /api/v1/accounts (Admin token) instead — see the API Reference.