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
}
| Field | Notes |
|---|---|
trade_type | 1 = demo (trial), 0 = live (created pending, needs admin approval). |
phone | E.164 format (+ prefix required). |
country | ISO 3166-1 alpha-2 or alpha-3. |
deposit | Optional; demo signups below 3000 default to 100000. |
For a demo signup the server:
- Creates the account in the admin-configured demo group with a $100,000 balance.
- Stamps a 30-day trial expiry (admin-tunable via
system_demo_trial_days;0disables). An hourly job expires past-due trials and blocks their login. - Generates a password and emails the credentials (branded template).
- Enforces one active trial per email — a second signup returns
400until 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.