Documentation Index Fetch the complete documentation index at: https://docs.easierprop.com/llms.txt
Use this file to discover all available pages before exploring further.
Base URL
https://api.easierprop.com
Authentication
All requests require an API key prefixed with sk_. Pass it via header, bearer token, or query parameter (WebSocket only).
X-API-Key Header (recommended)
Bearer Token
Query Parameter (WebSocket only)
curl -H "X-API-Key: sk_your_key" "https://api.easierprop.com/api/accounts"
Step 1: Register Your MT5 Account
curl -X POST https://api.easierprop.com/api/accounts \
-H "X-API-Key: sk_your_key" \
-H "Content-Type: application/json" \
-d '{
"label": "My Broker Account",
"broker_host": "mt5.broker.com",
"broker_port": 443,
"mt5_login": 51234567,
"password": "YourMT5Password"
}'
{
"ok" : true ,
"data" : {
"id" : "70f60784-20f1-45ba-9a04-8e01c0b810c3" ,
"label" : "My Broker Account" ,
"broker_host" : "mt5.broker.com" ,
"broker_port" : 443 ,
"mt5_login" : 51234567 ,
"is_enabled" : true ,
"auto_connect" : false ,
"session_status" : "disconnected" ,
"created_at" : "2026-04-01T12:00:00Z" ,
"updated_at" : "2026-04-01T12:00:00Z"
}
}
Credentials are encrypted at rest with AES-256-GCM. The password is not echoed by the account CRUD endpoints — only by the read-only GET /api/accounts/{id}/details, for credential-verification flows.
Step 2: Connect to the Broker
curl -X POST https://api.easierprop.com/api/accounts/70f60784-.../connect \
-H "X-API-Key: sk_your_key"
{
"ok" : true ,
"data" : {
"account_id" : "70f60784-20f1-45ba-9a04-8e01c0b810c3" ,
"connected" : true
}
}
You can skip this step. All endpoints auto-connect when needed. Sessions are health-checked every 30s with automatic reconnection.
Step 3: Place a Trade
curl -X POST https://api.easierprop.com/api/accounts/70f60784-.../orders \
-H "X-API-Key: sk_your_key" \
-H "Content-Type: application/json" \
-d '{
"symbol": "EURUSD",
"side": "buy",
"type": "market",
"volume": 0.01
}'
{
"ok" : true ,
"data" : {
"ticket" : 12345678 ,
"symbol" : "EURUSD" ,
"orderType" : "Buy" ,
"lots" : 0.01 ,
"openPrice" : 1.08542 ,
"stopLoss" : 0.0 ,
"takeProfit" : 0.0 ,
"profit" : 0.0 ,
"swap" : 0.0 ,
"commission" : -0.07
}
}
Supported order types: market, limit, stop, stop_limit.
Step 4: Stream Live Data
Connect via WebSocket and subscribe to real-time channels:
const ws = new WebSocket ( "wss://api.easierprop.com/ws?apiKey=sk_your_key" );
ws . onopen = () => {
ws . send ( JSON . stringify ({
type: "subscribe" ,
channel: "quotes" ,
account_id: "70f60784-20f1-45ba-9a04-8e01c0b810c3" ,
symbols: [ "EURUSD" , "GBPUSD" ],
interval_ms: 500
}));
ws . send ( JSON . stringify ({
type: "subscribe" ,
channel: "profit" ,
account_id: "70f60784-20f1-45ba-9a04-8e01c0b810c3" ,
interval_ms: 1000
}));
ws . send ( JSON . stringify ({
type: "subscribe" ,
channel: "heartbeat" ,
account_id: "70f60784-20f1-45ba-9a04-8e01c0b810c3"
}));
};
ws . onmessage = ( e ) => {
const msg = JSON . parse ( e . data );
switch ( msg . type ) {
case "quote" :
console . log ( ` ${ msg . data . symbol } : ${ msg . data . bid } / ${ msg . data . ask } ` );
break ;
case "profit" :
console . log ( `Equity: ${ msg . data . equity } | P&L: ${ msg . data . profit } ` );
break ;
case "heartbeat" :
console . log ( `Balance: ${ msg . balance } | Positions: ${ msg . position_count } ` );
break ;
}
};
Stream Description symbols requiredDefault interval quotesReal-time bid/ask ticks Yes 500ms ordersOrder open/modify/close events No instant profitLive equity, margin, and P&L No 1000ms heartbeatAccount health snapshot No 5000ms new_positionNew position opened No instant ohlcLive OHLC candle updates Yes Uses interval_ms as timeframe order_bookMarket depth / order book Yes 500ms tick_valueTick value updates Yes 500ms
See the full
WebSocket Guide for alerts, aggregate messages, unsubscribing, and multi-account streaming.
Every API response uses this envelope:
{
"ok" : true ,
"data" : { ... }
}
Error Codes
Code HTTP Description UNAUTHORIZED401 Missing or invalid API key FORBIDDEN403 Account belongs to another key ACCOUNT_NOT_FOUND404 Account ID does not exist INVALID_REQUEST400 Bad request body or params ORDER_FAILED422 Broker rejected the trade ACCOUNT_LIMIT_REACHED409 API-key account cap reached. Default is 4 unless your admin grants more CONNECTION_FAILED502 Could not reach MT5 broker SESSION_LOST503 Broker session dropped UPSTREAM_ERROR502 Broker service error
Next Steps
REST API Reference Browse all 55+ client endpoints with the interactive playground.
WebSocket Guide Real-time streams, alerts, aggregate messages, and multi-account streaming.