Also we have WebSockets description
POST /api/ExternalAccountCreate.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )externalAccountID - string, Account ID in your systemaccountCurrencyID - integer, Currency ID (contact us for more information)accountPasswordHash - string, account password hashaccountGroupName - string, trade group name in our platform (contact us for more information)accountOpenActualBalance - decimal, initial balance for the accountaccountPasswordHashFunction - string, MD5, SHA256, etc.accountLogin - string, login name for authorization (if accountLogin is empty it will be generated as PlatformNamePrefixTradeGroupNamePrefixUniqueNumber)accountPassword - string, account passwordcustomerFullNameLine1 - string (First Name)customerFullNameLine2 - string (Last Name)customerShortName - stringcustomerState - stringcustomerCountry - integer (contact us for more information)customerCountryISOCode - string (any ISO code - Alpha2, Alpha3, Numeric) customerCountryISOCode has priority over customerCountry fieldcustomerAddressLine1 - stringcustomerAddressLine2 - stringcustomerStreetName - stringcustomerCity - stringcustomerPostCode - stringcustomerPhoneNumber - stringcustomerPhoneNumber2 - stringcustomerMobilePhoneNumber - stringcustomerMobilePhoneNumber2 - stringcustomerFaxNumber - stringuserTimestamp - string in format yyyy-MM-dd HH:mm:ss.msaccountPersonalAccountEmail - stringaccountPersonalAccountEmail2 - stringcomments - string, additional user notesreferralAgentUserName - string, referral agent login namesendMailInfo - boolean, whether or not to send an email about account creatingHeaders: NONE
Content-Type: application/json; charset=utf-8
ExternalAccountID - stringAccountLogin - stringRespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operationStatus Code: 200
{
"ExternalAccountID": "test123",
"AccountLogin": "Platform1_Demo_1234",
"RespDateTime": "2019-11-14 06:42:09.888",
"Outcome": 0,
"Description": "Account Created"
}
Status Code: 400
Case: field externalAccountID is not specified
{
"Error": "Field externalAccountID is empty"
}
POST /api/ExternalAccountUpdateUserInfo.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )externalAccountID - string, id of the account to be updatedcustomerFullNameLine1 - stringcustomerFullNameLine2 - stringcustomerShortName - stringcustomerState - stringcustomerCountry - integer (contact us for more information)customerAddressLine1 - stringcustomerAddressLine2 - stringcustomerStreetName - stringcustomerCity - stringcustomerPostCode - stringcustomerPhoneNumber - stringcustomerPhoneNumber2 - stringcustomerMobilePhoneNumber - stringcustomerMobilePhoneNumber2 - stringcustomerFaxNumber - stringuserTimestamp - string in format yyyy-MM-dd HH:mm:ss.msaccountPersonalAccountEmail - stringaccountPersonalAccountEmail2 - stringcomments - string, additional notesHeaders: NONE
Content-Type: application/json; charset=utf-8
ExternalAccountID - stringRespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operationStatus Code: 200
{
"ExternalAccountID": "00661070",
"RespDateTime": "2019-11-22 12:12:19.890",
"Outcome": 0,
"Description": "User info was successfully updated"
}
Case: trying to update a non-existing account
Status Code: 400
{
"ExternalAccountID": "00661071",
"RespDateTime": "2019-11-22 12:13:34.989",
"Outcome": 50010,
"Description": "Account is not valid"
}
POST /api/ExternalAccountUpdateTraderInfo.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )externalAccountID - string, id of the account to be updatedtradeGroupName - string, trade group name to place the account inHeaders: NONE
Content-Type: application/json; charset=utf-8
ExternalAccountID - stringRespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operationStatus Code: 200
{
"ExternalAccountID": "00661070",
"RespDateTime": "2019-11-22 12:21:10.395",
"Outcome": 0,
"Description": "Trader info was successfully updated"
}
Case: trying to update a non-existing account
Status Code: 400
{
"ExternalAccountID": "00661071",
"RespDateTime": "2019-11-22 12:13:34.989",
"Outcome": 50010,
"Description": "Account is not valid"
}
POST /api/ExternalAccountUpdatePersonalAccountInfo.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )externalAccountID - stringaccountPasswordHash - stringaccountPasswordHashFunction - stringreferralAgentUserName - string, referral agent login nameHeaders: NONE
Content-Type: application/json; charset=utf-8
ExternalAccountID - stringRespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operationStatus Code: 200
{
"ExternalAccountID": "00661070",
"RespDateTime": "2019-11-22 12:24:20.174",
"Outcome": 0,
"Description": "Personal account info was successfully updated"
}
Case: trying to update a non-existing account
Status Code: 400
{
"ExternalAccountID": "00661071",
"RespDateTime": "2019-11-22 12:13:34.989",
"Outcome": 50010,
"Description": "Account is not valid"
}
POST /api/ExternalAccountDeposit.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )ExternalAccountID - stringAmount - decimal, amount of money to be deposited (in currency of the account)Comments - string, additional comments for the money transferHeaders: NONE
Content-Type: application/json; charset=utf-8
ExternalAccountID - stringDocumentID - documentIdRespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operationStatus Code: 200
{
"ExternalAccountID": "00661070",
"RespDateTime": "2019-11-22 12:26:51.307",
"Outcome": 0,
"Description": "Deposit complete"
}
Case: trying to make a deposit to a non-existing account
Status Code: 400
{
"ExternalAccountID": "00661071",
"RespDateTime": "2019-11-22 12:13:34.989",
"Outcome": 50010,
"Description": "Account is not valid"
}
POST /api/ExternalAccountWithdrawal.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )ExternalAccountID - stringAmount - decimal, amount of money to withdraw (in currency of the account)Comments - string, additional comments for the money transferHeaders: NONE
Content-Type: application/json; charset=utf-8
ExternalAccountID - stringDocumentID - intRespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operationStatus Code: 200
{
"ExternalAccountID": "00661070",
"DocumentID": "2",
"RespDateTime": "2019-11-22 12:27:52.716",
"Outcome": 0,
"Description": "Withdrawal complete"
}
Case: trying to make a withdrawal from a non-existing account
Status Code: 400
{
"ExternalAccountID": "00661071",
"DocumentID": "3",
"RespDateTime": "2019-11-22 12:13:34.989",
"Outcome": 50010,
"Description": "Account is not valid"
}
POST /api/ExternalAccountRetrieveRunningTrades.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )externalAccountID - stringHeaders: NONE
Content-Type: application/json; charset=utf-8
Trades - trade array, trade format is described aboveRespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operationExternalAccountID: string,OrderID: integer,TradeGroupID: integer,Symbol: string,OrderType: string,Volume: decimal,LotVolume: decimal,OpenTime: DateTime,OpenPrice: decimal,CurrentPrice: decimal,Profit: decimal,StopLoss: decimal,TakeProfit: decimal,TrailingStop: integer,Margin: decimal,TransactionFee: decimal,Rollover: decimal,Status Code: 200
{
"Trades": [
{
"OrderID": 636,
"SymbolID": 6,
"OrderType": 2,
"ExternalAccountID": "00661070",
"Volume": 12340000.0,
"OpenTime": "15.11.2019 11:10:42",
"OpenPrice": 0.74947,
"StopLoss": 0.0,
"TakeProfit": 0.0,
"TrailingStop": 0.0,
"Margin": 92484.6,
"Profit": 0.0,
"CurrentPrice": 0.7497,
"CloseTime": "30.12.1899",
"ClosePrice": 0.0,
"TransactionFees": -24.68,
"Rollover": 0.0
}
],
"RespDateTime": "2019-11-22 12:31:18.706",
"Outcome": 0,
"Description": "Success"
}
Case: trying to retrieve running trades of a non-existing account
Status Code: 400
{
"Trades": [],
"RespDateTime": "2019-11-22 12:13:34.989",
"Outcome": 50010,
"Description": "Account is not valid"
}
POST /api/AccountRetrieveRunningTrades.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )personalAccountID - string in format page - integer, page numberpageSize - integer, count of trades on one page of dataforAll - true or false for retrieve allincludeHistory - true or false for include History or notHeaders: NONE
Content-Type: application/json; charset=utf-8
Trades - trade array, trade format is described aboveRespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operationPersonalAccountID: integer,OrderID: integer,TradeGroupID: integer,Symbol: string,SymbolID: integer,OrderType: string,Volume: decimal,LotVolume: decimal,OpenTime: DateTime,OpenPrice: decimal,CurrentPrice: decimal,Profit: decimal,StopLoss: decimal,TakeProfit: decimal,TrailingStop: integer,Margin: decimal,TransactionFee: decimal,Rollover: decimalStatus Code: 200
{
"Trades": [
{
"ExternalAccountID": "00661070",
"OrderID": 1588,
"TradeGroupID": 0,
"Symbol" : "DJ30.c",
"SymbolID": 1,
"OrderType": 2,
"Volume": 10000.000000000,
"LotVolume": 10000.000000000,
"OpenTime": "2020-01-10T12:00:55.06Z",
"OpenPrice": 1.01534000,
"CurrentPrice": 1.0158462,
"Profit": 1.0000,
"StopLoss": 0.0,
"TakeProfit": 0.0,
"TrailingStop": 0,
"Margin": 100.0000,
"TransactionFee": 0.0,
"Rollover": 0.0000
}
],
"Outcome": 0,
"RespDateTime": "2020-02-07T17:25:17.6238448+05:00",
"Description": "Success"
}
Case: Signature is wrong
Status Code: 400
{
"Error": "wrong signature"
}
POST /api/ExternalAccountRetrieveTradeHistory.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )externalAccountID - string in format periodBeginDate - string in format yyyy-MM-dd HH:mm:ss, for getting trades opened after or on this dateperiodEndDate - string in format yyyy-MM-dd HH:mm:ss, for getting trades opened before or on this dateHeaders: NONE
Content-Type: application/json; charset=utf-8
Trades - trade array, trade format is described aboveRespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operationExternalAccountID: string,OrderID: integer,Symbol: string,OrderType: string,Volume: decimal,LotVolume: decimal,OpenTime: DateTime,OpenPrice: decimal,StopLoss: decimal,TakeProfit: decimal,TrailingStop: integer,Margin: decimal,Profit: decimal,CloseTime: DateTime,ClosePrice: decimal,TransactionFee: decimal,Rollover: decimal,ClearProfit: decimal,LoseTradesCount: integer,ProfitableTradesCount: integer,TotalTrades: integer,TotalProfit: decimal,ProfitAmountSum: decimal,LossAmountSum: decimalStatus Code: 200
{
"Trades": [
{
"ExternalAccountID": "123",
"OrderID": 13521,
"Symbol": "DJ30.c",
"OrderType": "Sell",
"Volume": 10.000000000,
"LotVolume": 10.0000000000000,
"OpenTime": "2023-04-28T14:35:34.833Z",
"OpenPrice": 33986.60000000,
"StopLoss": 34003.00000000,
"TakeProfit": 33970.20000000,
"TrailingStop": 0,
"Margin": 6797.3200,
"Profit": 164.0000,
"CloseTime": "2023-04-28T14:37:10.57Z",
"ClosePrice": 33970.20000000,
"TransactionFee": -1.3600,
"Rollover": 0.0000,
"ClearProfit": 162.6400,
"LoseTradesCount": 8,
"ProfitableTradesCount": 6,
"TotalTrades": 18,
"TotalProfit": -36872.3800,
"ProfitAmountSum": 4901.2200,
"LossAmountSum": -41773.6000
}
],
"Outcome": 0,
"RespDateTime": "2024-08-28T23:11:09.7150932-07:00",
"Description": "Success"
}
Case: trying to retrieve trade history of non-existing account
Status Code: 400
{
"Trades": [],
"RespDateTime": "2019-11-22 12:13:34.989",
"Outcome": 50010,
"Description": "Account is not valid"
}
POST /api/AccountRetrieveTradeHistory.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )externalAccountID - string in format pageSize - integer, count of trades on one page of datapage - integer, page numberperiodBeginDate - string in format yyyy-MM-dd HH:mm:ss, for getting trades opened after or on this dateperiodEndDate - string in format yyyy-MM-dd HH:mm:ss, for getting trades opened before or on this datetotalOnly - boolean, if true, response will not contain any trades, only totalssearchFilters - search filter in JSON format, see the specs belowRetrieveAll - booleanIncludeHistory - boolean, history tradeSearch filters allow you to filter trades with specific conditions. Currently only AccountRetrieveTradeHistory method is supported. searchFilters is an array of filters you want to apply to the search. Every search filter must contain field and condition fields. According to the condition, different value fields are required, those are described below. A quick example:
[
{
"field": "SymbolID", // Field to filter
"condition": "in", // Condition
"valueRange": [1, 2, 3] // Values to filter from, that is, SymbolID must be 1, 2 or 3
},
{
"field": "Volume",
"condition": "between", // 'between' condition requires 'valueFrom' and 'valueTo'
"valueFrom": 100,
"valueTo": 10000 // Volume is >= 100 and <= 10,000
},
{
"field": "Profit",
"condition": "gt", // 'gt' requires 'value'
"value": 10 // profit is greater than 10
}
]
Please note, that in the actual request JSON comments are NOT supported. Although you can include whitespace (new lines/spaces/tabulations/etc). JSON fields (condition, valueFrom, valueTo, etc) are NOT case-sensitive, but field names are (SymbolID, Volume, etc).
These conditions are supported:
eq | equals (==) | value |neq | not equal (!=) | value |in | within specified range | valueRange - array |between | between min/max values, inclusive | valueFrom and valueTo |gt | greater (>) | value |gte | greater or equals (>=) | value |lt | less (<) | value |lte | less or equals (<=) | value |SymbolID - in, eq and neq conditionsOrderType - in, eq and neq conditionsMargin - eq, neq, gt, gte, lt, lte, between conditionsProfit - eq, neq, gt, gte, lt, lte, between conditionsTransactionFee - eq, neq, gt, gte, lt, lte, between conditionsVolume - eq, neq, gt, gte, lt, lte, between conditionsRollover - eq, neq, gt, gte, lt, lte, between conditionsHeaders: NONE
Content-Type: application/json; charset=utf-8
Trades - trade array, trade format is described above. Does not appear if totalOnly is trueProfitableTradesData - object, contains two fields: Count - integer, count of profitable trades on the requested page (trades with profit > 0)ProfitSum - decimal, sum of profit of all profitable trades (ONLY trades with profit > 0)LossTradesData - object, contains two fields:Count - integer, count of loss trades on the requested page (trades with profit < 0)LossSum - decimal, sum of profit of all loss trades (ONLY trades with profit < 0)TradeCount - integer, total trades on the requested pageTotalProfit - decimal, sum of profits of all trades on the requested pageSearchFilters:
[
{
"field": "SymbolID",
"condition": "in",
"valueRange": [1,3]
},
{
"field": "Profit",
"condition": "gte",
"value": -10
}
]
totalOnly is false
Status Code: 200
{
"Trades": [
{
"ExternalAccountID": "extacc1",
"OrderID": 578,
"Symbol": "USDCHF",
"OrderType": "Buy",
"Volume": 10000.000000000,
"OpenTime": "2021-05-26T09:06:47.04Z",
"OpenPrice": 1.01344000,
"StopLoss": 0.0,
"TakeProfit": 0.0,
"TrailingStop": 0,
"Margin": 100.0000,
"Profit": 5.8200,
"CloseTime": "2021-05-26T09:06:51.327Z",
"ClosePrice": 1.01403000,
"TransactionFee": -0.0400,
"Rollover": 0.0000,
"ClearProfit": 5.7800
}
],
"ProfitableTradesData": {
"Count": 3,
"ProfitSum": 7.0600
},
"LossTradesData": {
"Count": 1,
"LossSum": -7.6400
},
"TradeCount": 4,
"TotalProfit": -0.5800,
"Outcome": 0,
"RespDateTime": "2021-06-01T15:04:50.6393203+05:00",
"Description": "Success"
}
Case: Signature is wrong
Status Code: 400
{
"Error": "wrong signature"
}
POST /api/ExternalAccountRetrieveAccountDetails.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )externalAccountID - stringHeaders: NONE
Content-Type: application/json; charset=utf-8
AccountDetails - array, contains user details (see the format below)RespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operationTraderID: integer,TradeGroupID: integer,TradeGroupNameStr: string,ExternalAccountID: string,PersonalAccountID: integer,LoginName: string,UsedMargin: decimal,Balance: decimal,FreeMargin: decimal,Equity: decimal,UPL: decimal,Credit: decimal,CreatedAt: DateTime,IsDisabled: boolean,LastIpAddress: string,IsLocked: boolean,IsReadonly: booleanStatus Code: 200
{
"AccountDetails": [
{
"TraderID": 13,
"TradeGroupID": "12",
"TradeGroupName": "demoforex",
"ExternalAccountID": "extacc1",
"PersonalAccountID": 41,
"UsedMargin": 0.0,
"Balance": 278447.5600,
"FreeMargin": 278447.5600,
"Equity": 278447.5600,
"UPL": 0.0,
"Credit": 100.0000,
"CreatedAt": "2023-04-24T12:03:02Z",
"IsDisabled": false,
"LastIpAddress": "10.10.23.5",
"IsLocked": false,
"IsReadonly": false,
}
],
"Outcome": 0,
"RespDateTime": "2021-05-31T11:43:54.8692877+05:00",
"Description": "Success"
}
Case: account is invalid
Status Code: 400
{
"Balance": 0.0,
"UPL": 0.0,
"Equity": 0.0,
"FreeMargin": 0.0,
"UsedMargin": 0.0,
"RespDateTime": "2019-11-22 12:44:12.776",
"Outcome": 13,
"Description": "Invalid Account."
}
POST /api/AccountRetrieveAccountDetails.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )personalAccountID - string in format externalAccountID - string in format Headers: NONE
Content-Type: application/json; charset=utf-8
AccountDetails - array of account details, account details format is described aboveTraderID: integer,TradeGroupID: integer,TradeGroupName: stringExternalAccountID: string,PersonalAccountID : integer,Balance - decimalUPL - decimalEquity - decimalFreeMargin - decimalUsedMargin - decimal
int TraderID,
int TradeGroupID,
string TradeGroupNameStr,
string ExternalAccountID,
int PersonalAccountID,
string LoginName,
decimal UsedMargin,
decimal Balance,
decimal FreeMargin,
decimal Equity,
decimal UPL,
decimal Credit,
DateTime CreatedAt,
bool IsDisabled,
string LastIpAddress,
bool IsLocked,
bool IsReadonly,Status Code: 200
"AccountDetails": [
{
"TraderID": 13,
"TradeGroupID": "12",
"ExternalAccountID": "00661070",
"PersonalAccountID": 41,
"UsedMargin": 100.0000,
"Balance": 278448.2800,
"FreeMargin": 278073.5400,
"Equity": 278173.5400,
"UPL": -274.74
},
{
"TraderID": 23,
"TradeGroupID": "12",
"ExternalAccountID": "00661071",
"PersonalAccountID": 51,
"UsedMargin": 0.3200,
"Balance": 52.9200,
"FreeMargin": 52.6000,
"Equity": 53.5300,
"UPL": 0.61
}
],
"Outcome": 0,
"RespDateTime": "2020-02-07T17:25:17.6238448+05:00",
"Description": "Success"
Case: Signature is wrong
Status Code: 400
{
"Error": "wrong signature"
}
POST /api/AccountRetrieveTransactionHistory.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )personalAccountID - string in format pageSize - integer, count of trades on one page of datapage - integer, page numberperiodBeginDate - string in format yyyy-MM-dd HH:mm:ss, for getting trades opened after or on this dateperiodEndDate - string in format yyyy-MM-dd HH:mm:ss, for getting trades opened before or on this dateHeaders: NONE
Content-Type: application/json; charset=utf-8
TransactionHistory - array of transaction historyCount: int, countRespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operationPersonalAccountID: integer,TransactionType: string,IncomeAmount: decimal,TransactionTime: DateTime,Comments: string,DocumentID: integer,Status Code: 200
{
"TransactionHistory": [
{
"ExternalAccountID": "81",
"TransactionType": "Deposit",
"IncomeAmount": 10000.0000,
"TransactionTime": "2019-12-21T11:42:39Z",
"Comments": null,
"DocumentID" : 1
}
],
"Outcome": 0,
"RespDateTime": "2020-02-07T17:25:17.6238448+05:00",
"Description": "Success"
}
Case: Signature is wrong
Status Code: 400
{
"Error": "wrong signature"
}
POST /api/ExternalAccountCredit.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )ExternalAccountID - stringAmount - decimal, amount of money to be deposited (in currency of the account)Comments - string, additional comments for the money transferHeaders: NONE
Content-Type: application/json; charset=utf-8
ExternalAccountID - stringDocumentID - intRespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operationStatus Code: 200
{
"ExternalAccountID": "81",
"RespDateTime": "2021-05-24T10:57:33.4974325Z",
"Outcome": 0,
"Description": "Credit complete"
}
Case: Signature is wrong
Status Code: 400
{
"Error": "wrong signature"
}
POST /api/ExternalAccountCheckPassword.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )externalAccountID - stringaccountPasswordHash - stringaccountPasswordHashFunction - stringHeaders: NONE
Content-Type: application/json; charset=utf-8
PasswordCorrect - boolean (true or false)RespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - string, contains PasswordCorrect in text formatStatus Code: 200
{
"PasswordCorrect": true,
"RespDateTime": "2021-05-24 11:58:13.036",
"Outcome": 0,
"Description": "true"
}
Case: Invalid account
Status Code: 400
{
"Error": "Invalid Account."
}
POST /api/ExternalAccountDisable.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )externalAccountID - stringHeaders: NONE
Content-Type: application/json; charset=utf-8
RespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - string, contains PasswordCorrect in text formatStatus Code: 200
{
"RespDateTime": "2021-05-31 11:58:13.036",
"Outcome": 0,
"Description": "Success."
}
Case: Invalid account
Status Code: 400
{
"Error": "Invalid Account."
}
POST /api/ExternalAccountEnable.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )externalAccountID - stringHeaders: NONE
Content-Type: application/json; charset=utf-8
RespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - string, contains PasswordCorrect in text formatStatus Code: 200
{
"RespDateTime": "2021-05-31 11:58:13.036",
"Outcome": 0,
"Description": "Success."
}
Case: Invalid account
Status Code: 400
{
"Error": "Invalid Account."
}
POST /api/RetrieveAllAccounts.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )page - page number (starts with 1)pageSize - page sizeHeaders: NONE
Content-Type: application/json; charset=utf-8
Accounts - array of Account objectsRespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - string, contains PasswordCorrect in text formatCount - int, countTraderID: int,TraderName: string,TradeGroupID: int,TradeGroupName: string,TradeBalance: decimal,TraderCredit: decimal,LossLimit: decimal,LossLimitRate: int,MarginStatus: MarginStatus,MarginCallMailEnabled: bool,MarginCallMailEnabledFlag: int,LiquidationMailEnabled: bool,LiquidationMailEnabledFlag: int,VolumeEnabled: bool,VolumeEnabledFlag: int,LiquidationTime: DateTime,ExternalAccount: string,WithdrawalLimit: int,TradePwd: string,IsLocked: bool,Archieved: bool,IsDisabled: bool,CreatedAt: DateTime,Status Code: 200
{
"Accounts": [],
"RespDateTime": "2021-05-31 11:58:13.036",
"Outcome": 0,
"Description": "Success."
}
POST /api/RetrieveCurrencies.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )Headers: NONE
Content-Type: application/json; charset=utf-8
Currencies - array of Currency objectsRespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - string, contains PasswordCorrect in text formatCurrencyID: int,CurrencyName: string,DocumentPrecision: int,RateBid: decimal,RateAsk: decimal,RateSymbolId: int,RateType: int,Status Code: 200
{
"Currencies": [],
"RespDateTime": "2021-05-31 11:58:13.036",
"Outcome": 0,
"Description": "Success."
}
POST /api/RetrieveGroupNames.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )Headers: NONE
Content-Type: application/json; charset=utf-8
TradeGroups - array of trade group objects:RespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - string, contains PasswordCorrect in text formatTradeGroupID: intTradeGroupName: string LiquidationMarginRate: int DocumentPrecision: intPersonalAccountID: intIntroducingBrokerPersonalAccountId: int?EnableStandard: boolEnableMini: bool EnableMicro: boolWithdrawalLimit: intMinimumSpread: intTransactionFee: decimalMinTransactionFee: decimalTransactionFeeIBShare: decimalTemplateTradeGroupID: intRebate_LPRate: decimalRebate_Default_TraderRate: decimalRebate_RA_ReferrerRate: decimalRebate_RA_TraderRate: decimalRebate_RA_IBRate: decimalRebate_Default_IBRate: decimalIsActive: boolGroupName_Prefix: stringIsNakedSellAllowed: boolLiquidityProviderPersonalAccountID: intIsTradingDisabled: boolShowMostPopularStrategies: boolUseVolumeTrading: boolShowAlgoSubscriptions: boolTradeGroupExt: objectMarkupRebate_SharingMode: MarkupRebateSharingModeMarkupRebate_Default_TraderRate: decimalMarkupRebate_RA_ReferrerRate: decimalMarkupRebate_RA_TraderRate: decimalMarkupRebate_RA_IBRate: decimalMarkupRebate_Default_IBRate: decimalMarkupRebate_RA_SystemRate: decimalMarkupRebate_Default_SystemRate: decimalTraderWatchListSuggestion: Suggestion TraderWatchListSuggestionID: intTraderWatchListSuggestionTradeGroupDefault: SuggestionTradeGroupDefaultWatchListTemplate: TemplateWatchListTemplateID: intWatchListTradeGroupDefault: TradeGroupDefaultChallenge_ActiveDays: int?Challenge_WinCriteria: decimal?Challenge_LoseCriteriaDay: decimal?Challenge_LoseCriteriaOverall: decimal?Challenge_InitialBalance: decimal?Challenge_ChildGroupId: int?Challenge_ChildGroupName: stringChallenge_EmailTemplatePath: stringLotTypeId: intTradeGroupLotType: TradeGroupLotTypeTradeGroupDefaultTraderSetting: TradeGroupDefaultTraderSettingChallenge_CloseOrdersOnSchedule: bool?ConnectionPointPool: intCreditProfitSplitPercent: intProfitProfitSplitPercent: intIsDemo: boolWatchListSuggestionID: intWatchListSuggestionName: stringSuggestionTradeGroupID: intSuggestionID: int?TradeGroupID: int?TemplateID: intWatchListTemplateName: stringTradeGroupTemmplateId: intTemplateId: int?TradeGroupId: int?LotTypeId: intLotTypeName: stringLotDelimeter: int?TradeGroupDefaultTraderSettingID: int?TradeGroupID: int?AskLine: bool?BidLine: bool?OneClickTrading: bool?Sound: bool?TradesOnChart: bool?OneClickAmount: decimal?OneClickStopLoss: decimal?OneClickStopLossUnit: int?OneClickTakeProfit: decimal?OneClickTakeProfitUnit: int?OneClickTrailingStop: decimal?ChartCount: int?UseSltpForNonOneClickOrders: bool?CiqLayouts: stringCiqPreferences: stringCiqDrawings: stringPendingOrderAccountRisk: decimal?PendingOrderSlPips: decimal?PendingOrderTpPips: decimal?UseAutoTradeSizing: bool?UseAdvancedVolumeSettings: bool?FavoriteSymbols: stringShowNotifications: bool?TvLayout: stringTvStudies: stringViewMode: int?AlwaysShowDefaultView: bool?LotTrading: bool?Status Code: 200
{
"TradeGroups": [
{
"TradeGroupID": 12,
"TradeGroupName": "demoforex",
"LiquidationMarginRate": 30,
"DocumentPrecision": 2,
"PersonalAccountID": 31,
"IntroducingBrokerPersonalAccountId": null,
"EnableStandard": true,
"EnableMini": true,
"EnableMicro": true,
"WithdrawalLimit": 25,
"MinimumSpread": -1,
"TransactionFee": 2.0000,
"MinTransactionFee": 0.0000,
"TransactionFeeIBShare": 0.0000,
"TemplateTradeGroupID": 0,
"Rebate_LPRate": 0.0000,
"Rebate_Default_TraderRate": 0.0000,
"Rebate_RA_ReferrerRate": 0.0000,
"Rebate_RA_TraderRate": 0.0000,
"Rebate_RA_IBRate": 0.0000,
"Rebate_Default_IBRate": 0.0000,
"IsActive": false,
"GroupName_Prefix": null,
"IsNakedSellAllowed": false,
"LiquidityProviderPersonalAccountID": 1021,
"IsTradingDisabled": false,
"ShowMostPopularStrategies": false,
"UseVolumeTrading": false,
"ShowAlgoSubscriptions": true,
"TradeGroupExt": null,
"MarkupRebate_SharingMode": 2,
"MarkupRebate_Default_TraderRate": 0.00000000,
"MarkupRebate_RA_ReferrerRate": 0.00000000,
"MarkupRebate_RA_TraderRate": 0.00000000,
"MarkupRebate_RA_IBRate": 0.00000000,
"MarkupRebate_Default_IBRate": 0.00000000,
"MarkupRebate_RA_SystemRate": 100.00000000,
"MarkupRebate_Default_SystemRate": 100.00000000,
"TraderWatchListSuggestion": {
"WatchListSuggestionID": 0,
"WatchListSuggestionName": null
},
"TraderWatchListSuggestionID": 0,
"TraderWatchListSuggestionTradeGroupDefault": {
"SuggestionTradeGroupID": 0,
"SuggestionID": null,
"TradeGroupID": null
},
"WatchListTemplate": {
"TemplateID": 0,
"WatchListTemplateName": null
},
"WatchListTemplateID": 0,
"WatchListTradeGroupDefault": {
"TradeGroupTemplateID": 0,
"TemplateID": null,
"TradeGroupID": null
},
"Challenge_ActiveDays": null,
"Challenge_WinCriteria": null,
"Challenge_LoseCriteriaDay": null,
"Challenge_LoseCriteriaOverall": null,
"Challenge_InitialBalance": null,
"Challenge_ChildGroupId": null,
"Challenge_ChildGroupName": null,
"Challenge_EmailTemplatePath": null,
"LotTypeId": 0,
"TradeGroupLotType": null,
"TradeGroupDefaultTraderSetting": {
"TradeGroupDefaultTraderSettingID": null,
"TradeGroupID": null,
"AskLine": null,
"BidLine": null,
"OneClickTrading": null,
"Sound": null,
"TradesOnChart": null,
"OneClickAmount": null,
"OneClickStopLoss": null,
"OneClickStopLossUnit": null,
"OneClickTakeProfit": null,
"OneClickTakeProfitUnit": null,
"OneClickTrailingStop": null,
"ChartCount": null,
"UseSltpForNonOneClickOrders": null,
"CiqLayouts": null,
"CiqPreferences": null,
"CiqDrawings": null,
"PendingOrderAccountRisk": null,
"PendingOrderSlPips": null,
"PendingOrderTpPips": null,
"UseAutoTradeSizing": null,
"UseAdvancedVolumeSettings": null,
"FavoriteSymbols": null,
"ShowNotifications": null,
"TvLayout": null,
"TvStudies": null,
"ViewMode": null,
"AlwaysShowDefaultView": null,
"LotTrading": null
},
"Challenge_CloseOrdersOnSchedule": null,
"ConnectionPointPool": 0,
"CreditProfitSplitPercent": 0,
"ProfitProfitSplitPercent": 0
}
],
"RespDateTime": "2021-05-31 11:58:13.036",
"Outcome": 0,
"Description": "Success."
}
POST /api/RetrieveSymbols.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )page - page number (starts with 1)pageSize - page sizeHeaders: NONE
Content-Type: application/json; charset=utf-8
Symbols - array of symbolRespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - string, contains PasswordCorrect in text formatDefaultVolume: decimalDecimalPlaces: intPipSize: decimalLongName: stringInternalName: stringSymbolID: intSymbolName: stringBaseCurrency: stringCounterCurrency: stringProfitCalcType: ProfitCalcTypeMarginCalcType: MarginCalcTypeRolloverBuy: decimalRolloverSell: decimalRolloverCalcType: RolloverCalcTypeQuoteSource: stringSourceSymbolName: stringBCConvertSymbolID: int?CCConvertSymbolID: int?SymbolCategory: SymbolCategoryMaxPrice: decimalMinPrice: decimalEnableStandard: boolEnableMini: boolEnableMicro: boolMaxVolume: decimalMinVolume: decimalTradingStep: decimalTickSize: decimalTickPrice: decimalPercentage: decimalSortOrder: intIsActive: boolSymbolCategoryName: stringSpikingFilter: SpikingFilterSettingsMaxSpreadValidator: MaxSpreadValidatorSettingsIsAddingToTradeGroup: boolSymbolTripleDayType: SymbolTripleDayTypeWorkingPeriod: intMaxReinitCount: intMaximumDifference: decimalMaxSpread: intStatus Code: 200
{
"Symbols": [
{
"DefaultVolume": 100000.0000,
"DecimalPlaces": 5,
"PipSize": 0.00010000,
"LongName": "US Dollar vs Canadian Dollar",
"InternalName": "USD/CAD",
"SymbolID": 1001,
"SymbolName": "USD/CAD",
"BaseCurrency": "USD",
"CounterCurrency": "CAD",
"ProfitCalcType": 1,
"MarginCalcType": 1,
"RolloverBuy": -0.63250000,
"RolloverSell": -0.50600000,
"RolloverCalcType": 4,
"QuoteSource": "/QSActive800061",
"SourceSymbolName": "USD/CAD",
"BCConvertSymbolID": null,
"CCConvertSymbolID": null,
"SymbolCategory": 1,
"MaxPrice": 10000000.00000000,
"MinPrice": 0.00000000,
"EnableStandard": true,
"EnableMini": true,
"EnableMicro": true,
"MaxVolume": 100000000.00000000,
"MinVolume": 1000.00000000,
"TradingStep": 1000.00000000,
"TickSize": 0.00000000,
"TickPrice": 0.00000000,
"Percentage": 1.00000000,
"SortOrder": 1063,
"IsActive": false,
"SymbolCategoryName": "Forex",
"SpikingFilter": {
"WorkingPeriod": 0,
"MaxReinitCount": 0,
"MaximumDifference": 0.00
},
"MaxSpreadValidator": {
"MaxSpread": 0
},
"IsAddingToTradeGroup": true,
"SymbolTripleDayType": 3
}
],
"RespDateTime": "2021-05-31 11:58:13.036",
"Outcome": 0,
"Description": "Success."
}
Case: Invalid account
Status Code: 400
{
"Error": "Invalid Account."
}
POST /api/RetrieveLastPrices.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )page - page number (starts with 1)pageSize - page sizeHeaders: NONE
Content-Type: application/json; charset=utf-8
Prices - array of price objects Count - int, countRespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - string, contains PasswordCorrect in text formatSymbolID: intSymbolName: stringBid: decimalAsk: decimalTimestamp: stringStatus Code: 200
{
"Prices": [
{
"SymbolID": 1,
"SymbolName": "AUDUSD",
"Bid": 1.111,
"Ask": 1.112,
"Timestamp": "2021-05-31 11:58:13.036"
}
],
"RespDateTime": "2021-05-31 11:58:13.036",
"Outcome": 0,
"Description": "Success."
}
POST /api/ReferralAgentCreate.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
accountLogin - string, login name for authorization (if accountLogin is empty it will be generated asaccountPasswordHash - string, password hashaccountPasswordHashFunction - string, MD5, SHA256, etc.accountCountryISOCode - string (any ISO code - Alpha2, Alpha3, Numeric) accountCountryISOCode has priority over accountCountryaccountCountry - integer (contact us for more information)accountCity - stringaccountState - stringaccountFullNameLine1 - string (First Name)accountFullNameLine2 - string (Last Name)accountAddressLine1 - stringaccountAddressLine2 - stringaccountPostCode - stringaccountPersonalAccountEmail - stringaccountPhoneNumber - stringaccountMobilePhoneNumber - stringcomments - string, additional user notesintroducingBrokerUserName - string (Introducing Broker User Name) Headers: NONE
Content-Type: application/json; charset=utf-8
AccountDetails - array, contains user details (see the format below)RespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operationAccountLogin - stringPersonalAccountID - integerIntroducingBrokerPersonalAccountID - integerStatus Code: 200
{
"AccountDetails": {
"AccountLogin": "RA",
"PersonalAccountID": 1121,
"IntroducingBrokerPersonalAccountID": 0
},
"Outcome": 0,
"RespDateTime": "2023-12-04T11:37:44.3553774+05:00",
"Description": "Account Created"
}
POST /api/IntroducingBrokerCreate.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
accountLogin - string, login name for authorization (if accountLogin is empty it will be generated asaccountPasswordHash - string, password hashaccountPasswordHashFunction - string, MD5, SHA256, etc.accountCountryISOCode - string (any ISO code - Alpha2, Alpha3, Numeric) accountCountryISOCode has priority over accountCountryaccountCountry - integer (contact us for more information)accountCity - stringaccountState - stringaccountFullNameLine1 - string (First Name)accountFullNameLine2 - string (Last Name)accountAddressLine1 - stringaccountAddressLine2 - stringaccountPostCode - stringaccountPersonalAccountEmail - stringaccountPhoneNumber - stringaccountMobilePhoneNumber - stringcomments - string, additional user notesHeaders: NONE
Content-Type: application/json; charset=utf-8
AccountDetails - contains user details (see the format below)RespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operationAccountLogin - string,PersonalAccountID - intStatus Code: 200
{
"AccountDetails": {
"AccountLogin": "IB",
"PersonalAccountID": 1121
},
"Outcome": 0,
"RespDateTime": "2023-12-04T11:37:44.3553774+05:00",
"Description": "Account Created"
}
POST /api/AccountRetrieveInfo.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )personalAccountID - account_id loginName - account login name, optional, using if personalAccountID field is not defined (personalAccountID has priority)Headers: NONE
Content-Type: application/json; charset=utf-8
AccountDetails - AccountDetails
RespDateTime - string in format yyyy-MM-dd HH:mm:ss, response time
Outcome - integer, error id, 0 if no error
Description - detailed description about processed operation
AccountLogin: string,
PersonalAccountID: integer,
Country: string,
Email: string,
FirstName: string,
MiddleName: string,
LastName: string,
TotalBalance - decimal
FreeBalance - decimal
Status Code: 200
"AccountDetails": {
"AccountLogin": "TestRA-1",
"PersonalAccountID": 4251,
"Country": null,
"Email": "",
"FirstName": "",
"MiddleName": "",
"LastName": "",
"TotalBalance": 0.0,
"FreeBalance": 0.0
},
"Outcome": 0,
"RespDateTime": "2024-01-12T16:12:05.6589663+05:00",
"Description": "Success"
"Outcome": 0,
"RespDateTime": "2024-01-12T16:18:45.0057186+05:00",
"Description": "Not found"
Case: Signature is wrong
Status Code: 400
{
"Error": "wrong signature"
}
POST /api/AgentWithdrawal.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )personalAccountID - account_id loginName - account login name, optional, using if personalAccountID field is not defined (personalAccountID has priority)amount - decimal, amount to withdrawbankCode - stringchequeNo - stringreferenceNumber - stringchequeBank - stringchequeAmount - decimalchequeCurrency - stringrate - decimalcomments - string, additional notesHeaders: NONE
Content-Type: application/json; charset=utf-8
RespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operationStatus Code: 200
"Outcome": 0,
"RespDateTime": "2024-01-22T20:44:45.5445269+05:00",
"Description": "Success"
"Outcome": 0,
"RespDateTime": "2024-01-22T20:49:39.009175+05:00",
"Description": "Not found"
"Outcome": 0,
"RespDateTime": "2024-01-22T20:50:28.044697+05:00",
"Description": "Not enought free balance"
Case: Signature is wrong
Status Code: 400
{
"Error": "wrong signature"
}
POST /api/AgentDeposit.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )personalAccountID - account_id loginName - account login name, optional, using if personalAccountID field is not defined (personalAccountID has priority)amount - decimal, amount to depositbankCode - stringchequeNo - stringreferenceNumber - stringchequeBank - stringchequeAmount - decimalchequeCurrency - stringrate - decimalcomments - string, additional notesHeaders: NONE
Content-Type: application/json; charset=utf-8
RespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operationStatus Code: 200
"Outcome": 0,
"RespDateTime": "2024-01-22T20:44:45.5445269+05:00",
"Description": "Success"
"Outcome": 0,
"RespDateTime": "2024-01-22T20:49:39.009175+05:00",
"Description": "Not found"
Case: Signature is wrong
Status Code: 400
{
"Error": "wrong signature"
}
POST /api/AccountReferralAgentDelete.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )personalAccountID - account_id loginName - account login name, optional, using if personalAccountID field is not defined (personalAccountID has priority)Headers: NONE
Content-Type: application/json; charset=utf-8
Status Code: 200
"Outcome": 0,
"RespDateTime": "2024-01-22T20:44:45.5445269+05:00",
"Description": "Success"
"Outcome": 0,
"RespDateTime": "2024-01-22T20:49:39.009175+05:00",
"Description": "Not found"
Case: Signature is wrong
Status Code: 400
{
"Error": "wrong signature"
}
POST /api/AccountReferralAccountHistory.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )personalAccountID - account_id loginName - account login name, optional, using if personalAccountID field is not defined (personalAccountID has priority)periodBegin - string in format yyyy-MM-dd HH:mm:ss periodEnd - string in format yyyy-MM-dd HH:mm:ss Headers: NONE
Content-Type: application/json; charset=utf-8
AccountingDocuments - array of symbol objects (see the format below)RespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operationTraderID: integer,TradeGroupID: integer,TradeGroupNameStr: string,ExternalAccountID: string,PersonalAccountID: integer,LoginName: string,UsedMargin: decimal,Balance: decimal,FreeMargin: decimal,Equity: decimal,UPL: decimal,Credit: decimal,CreatedAt: DateTime,IsDisabled: boolean,LastIpAddress: string,IsLocked: boolean,IsReadonly: booleanStatus Code: 200
{
"Outcome": 0,
"RespDateTime": "2024-08-29T04:04:12.0621853-07:00",
"Description": "Success",
"AccountingDocuments": [
{
"CommandID": 1492,
"CommandTime": "2023-04-24T12:03:02Z",
"CommandType": 1,
"CommandTypeName": "Deposit",
"CommandOrigin": 2,
"CommandSenderLoginName": "SYSTEM",
"DocumentID": 3664,
"IncomeItem": 1,
"Amount": 50000.0000,
"Balance": 50000.0000,
"OrderID": 0,
"SymbolName": null,
"DecimalPlaces": 0,
"Volume": 0.0,
"CommandVolume": 0.0,
"LotType": "Standard",
"LotSize": 0.0,
"CommandPrice": 0.0,
"PersonalAccountID": 3921,
"LoginName": "gianluca.lussi@gmail.com",
"TraderID": 0,
"TraderName": "SYSTEM",
"FirstName": "Gianluca",
"LastName": "Lussi",
"AccountName": "gianluca.lussi@gmail.com (Gianluca Lussi)"
},
.
.
.
]
}
"Outcome": 0,
"RespDateTime": "2024-01-22T20:49:39.009175+05:00",
"Description": "Not found"
Case: Signature is wrong
Status Code: 400
{
"Error": "wrong signature"
}
POST /api/AccountCreditDeposit.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )personalAccountID - account_id loginName - account login name, optional, using if personalAccountID field is not defined (personalAccountID has priority)amount - credit amount (decimal number)comment - an optional string commentHeaders: NONE
Content-Type: application/json; charset=utf-8
Status Code: 200
{
"Outcome": 0,
"RespDateTime": "2024-02-12T14:58:25.0153481+00:00",
"Description": "Success"
}
Case: Signature is wrong
Status Code: 400
{
"Error": "wrong signature"
}
POST /api/AccountCreditWithdraw.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )personalAccountID - account_id loginName - account login name, optional, using if personalAccountID field is not defined (personalAccountID has priority)amount - withdraw amount (decimal number)comment - an optional string commentHeaders: NONE
Content-Type: application/json; charset=utf-8
Status Code: 200
{
"Outcome": 0,
"RespDateTime": "2024-02-12T14:58:25.0153481+00:00",
"Description": "Success"
}
Case: Signature is wrong
Status Code: 400
{
"Error": "wrong signature"
}
POST /api/AccountOrderCreditDeposit.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )personalAccountID - account_id loginName - account login name, optional, using if personalAccountID field is not defined (personalAccountID has priority)orderId - id of the order (integer)amount - credit amount (decimal number)comment - an optional string commentHeaders: NONE
Content-Type: application/json; charset=utf-8
Status Code: 200
{
"Outcome": 0,
"RespDateTime": "2024-02-12T14:58:25.0153481+00:00",
"Description": "Success"
}
Case: Signature is wrong
Status Code: 400
{
"Error": "wrong signature"
}
POST /api/AccountOrderCreditWithdraw.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )personalAccountID - account_id loginName - account login name, optional, using if personalAccountID field is not defined (personalAccountID has priority)orderId - id of the order (integer)amount - withdraw amount (decimal number)comment - an optional string commentHeaders: NONE
Content-Type: application/json; charset=utf-8
Status Code: 200
{
"Outcome": 0,
"RespDateTime": "2024-02-12T14:58:25.0153481+00:00",
"Description": "Success"
}
Case: Signature is wrong
Status Code: 400
{
"Error": "wrong signature"
}
POST /api/AccountUpdateUserInfo.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )personalAccountId - account_id customerFirstNamecustomerLastNamecustomerStatecustomerCountrycustomerAddressLine1customerAddressLine2customerCitycustomerPostCodecustomerPhoneNumbercustomerMobilePhoneNumberaccountPersonalAccountEmailcommentsHeaders: NONE
Content-Type: application/json; charset=utf-8
Status Code: 200
{
"Outcome": 0,
"RespDateTime": "2024-02-12T14:58:25.0153481+00:00",
"Description": "Success"
}
Case: Signature is wrong
Status Code: 400
{
"Error": "wrong signature"
}
POST /api/TraderCloseAll.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )externalAccountId - stringloginName - string challengeEventCode - int, default 6force - bool, default falseHeaders: NONE
Content-Type: application/json; charset=utf-8
TraderId - integerOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operationStatus Code: 200
{
"TraderId": 140363,
"outcome": 0,
"description": "Success"
}
{
"Error": "Invalid traderID"
}
Case: Signature is wrong
Status Code: 400
{
"Error": "wrong signature"
}
POST /api/RetrieveOrderDetails.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )orderId - order_id Headers: NONE
Content-Type: application/json; charset=utf-8
OrderDetails - array, contains user details (see the format below)RespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operationTraderId: intOrderId: longSymbolName: stringOrderType: stringVolume: decimalOpenTime: DateTimeOpenPrice: decimalCurrentPrice: decimalProfit: decimalStopLoss: decimalTakeProfit: decimalTrailingStop: intMargin: decimalStatus Code: 200
{
"OrderDetails": {
"TraderId": 11053,
"OrderId": 10369,
"SymbolName": "USD/JPY",
"OrderType": "Buy",
"Volume": 10000.000000000,
"OpenTime": "2023-09-13T07:06:05.897",
"OpenPrice": 147.27,
"CurrentPrice": 151.383,
"Profit": 271.69,
"StopLoss": 0.0,
"TakeProfit": 0.0,
"TrailingStop": 0,
"Margin": 100.0000
},
"Outcome": 0,
"RespDateTime": "2024-03-28T08:17:38.6302706+00:00",
"Description": "Success"
}
{
"OrderDetails": null,
"Outcome": 1,
"RespDateTime": "2024-03-28T12:11:59.9243454+00:00",
"Description": "Order with order id 103 has never existed"
}
Case: Signature is wrong
Status Code: 400
{
"Error": "wrong signature"
}
POST /api/RetrieveOrderDetails_v2.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )orderId - order_id IncludeHistory - IncludeHistory (bool)Headers: NONE
Content-Type: application/json; charset=utf-8
OrderDetails - array, contains user details (see the format below)RespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operationStatus Code: 200
{
"OrderDetails": {
"PersonalAccountId": 47071,
"TraderId": 46563,
"TraderName": "Michal_Šadibol",
"OrderId": 3816901,
"TradeGroupId": 232,
"TradeGroupName": "2PhaseEvaluation-Phase1",
"SymbolName": "XAU/USD",
"SymbolId": 1084,
"OrderType": "Buy",
"Volume": 0.000000000,
"InitialVolume": 3.000000000,
"LotVolume": 3.000000000,
"OpenPrice": 3351.44000000,
"TakeProfit": 3353.59000000,
"Margin": 0.0000,
"LastIpAddress": "178.143.46.44",
"OpenTime": "2025-08-04T02:15:04.0633333+00:00",
"CloseTime": "2025-08-04T02:16:49.8233333+00:00",
"TotalProfit": 3.0600,
"TotalTransactionFee": -0.3000,
"OrderHistory": [
{
"OrderId": 3816901,
"StateId": 3816901,
"OrderType": "Buy",
"OpenPrice": 3351.44000000,
"Volume": 3.000000000,
"Margin": 502.7200,
"CommandPrice": 3351.44000000,
"CommandVolume": 3.000000000,
"CommandMargin": 502.7200,
"CommandRequestPrice": 3351.44000000,
"CommandDeviation": 0.0,
"StateOpenDate": "2025-08-04T02:15:04.0633333+00:00",
"StateCloseDate": "2025-08-04T02:15:09.94+00:00",
"TransactionFee": -0.1500,
"IpAddress": "178.143.46.44",
"CommandType": "OpenMarket"
},
{
"OrderId": 3816901,
"StateId": 3816903,
"OrderType": "Buy",
"OpenPrice": 3351.44000000,
"Volume": 3.000000000,
"TakeProfit": 3353.59000000,
"Margin": 502.7200,
"CommandPrice": 3353.59000000,
"CommandVolume": 0.000000000,
"CommandMargin": 0.0000,
"StateOpenDate": "2025-08-04T02:15:09.94+00:00",
"StateCloseDate": "2025-08-04T02:16:49.8233333+00:00",
"IpAddress": "178.143.46.44",
"CommandType": "SetTakeProfit"
},
{
"OrderId": 3816901,
"StateId": 3816905,
"OrderType": "Buy",
"OpenPrice": 3351.44000000,
"Volume": 0.000000000,
"TakeProfit": 3353.59000000,
"Margin": 0.0000,
"CommandPrice": 3352.46000000,
"CommandVolume": -3.000000000,
"CommandMargin": -502.7200,
"CommandRequestPrice": 0.00000000,
"CommandDeviation": 0.0,
"StateOpenDate": "2025-08-04T02:16:49.8233333+00:00",
"Profit": 3.0600,
"TransactionFee": -0.1500,
"IpAddress": "178.143.46.44",
"CommandType": "CloseMarket"
}
]
},
"Outcome": 0,
"RespDateTime": "2025-09-11T06:26:39.5367677+00:00",
"Description": "Success"
}
{
"Outcome": 1,
"RespDateTime": "2025-09-11T06:27:18.4881091+00:00",
"Description": "Not found"
}}
Case: Signature is wrong
Status Code: 400
{
"Error": "wrong signature"
}
POST /api/AccountRetrieveAccountStatement.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )personalAccountId - personalAccountIdperiodBeginDate - periodBeginDateperiodEndDate - periodEndDateinterval - intervalHeaders: NONE
Content-Type: application/json; charset=utf-8
AccountStatements - AccountStatementsRespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operationStatus Code: 200
{
"AccountStatements": [
{
"DisplayName": "AccountStatement",
"PersonalInfoExt": null,
"SystemExt": 0,
"PersonalAccountID": 13,
"CompletedPositions": 0,
"ProfitForCompletedPositions": 0.0,
"RolloverForCompletedPositions": 0.0,
"SubaccountFeeForCompletedPositions": 0.0,
"RebateForCompletedPositions": 0.0,
"OrderCreditForCompletedPositions": 0.0,
"TransactionFeeForCompletedPositions": 0.0,
"GSTForCompletedPositions": 0.0,
"WithholdingForCompletedPositions": 0.0,
"OpenPositionsLeft": 0,
"RolloverForOpenPositions": 0.0,
"SubaccountFeeForOpenPositions": 0.0,
"RebateForOpenPositions": 0.0,
"OrderCreditForOpenPositions": 0.0,
"TransactionFeeForOpenPositions": 0.0,
"GSTForOpenPositions": 0.0,
"WithholdingForOpenPositions": 0.0,
"TotalAccountCredit": 0.0,
"TotalDeposit": 0.0,
"TotalWithdrawal": 0.0,
"GrandTotalCharges": 0.0,
"TotalSubaccountFee": 0.0,
"TotalRebate": 0.0,
"TotalOrderCredit": 0.0,
"TotalForCompletedPositions": 0.0,
"TotalForOpenPositions": 0.0,
"TotalProfit": 0.0,
"TotalRollover": 0.0,
"TotalTransactionFee": 0.0,
"TotalGST": 0.0,
"TotalWithholding": 0.0,
"MoneyMovements": [],
"Symbols": [],
"StartingBalance": 0.0,
"EndingBalance": 0.0,
"Upl": 0.0,
"ReportName": "Report \"Account status\"",
"ReportTimeZone": {
"Id": "Eastern Standard Time",
"DisplayName": "(UTC-05:00) Eastern Time (USA and Canada)",
"StandardName": "US Eastern Time (winter)",
"DaylightName": "US Eastern Time (summer)",
"BaseUtcOffset": "-05:00:00",
"AdjustmentRules": [
{
"DateStart": "0001-01-01T00:00:00",
"DateEnd": "2006-12-31T00:00:00",
"DaylightDelta": "01:00:00",
"DaylightTransitionStart": {
"TimeOfDay": "0001-01-01T02:00:00",
"Month": 4,
"Week": 1,
"Day": 1,
"DayOfWeek": 0,
"IsFixedDateRule": false
},
"DaylightTransitionEnd": {
"TimeOfDay": "0001-01-01T02:00:00",
"Month": 10,
"Week": 5,
"Day": 1,
"DayOfWeek": 0,
"IsFixedDateRule": false
},
"BaseUtcOffsetDelta": "00:00:00"
},
{
"DateStart": "2007-01-01T00:00:00",
"DateEnd": "9999-12-31T00:00:00",
"DaylightDelta": "01:00:00",
"DaylightTransitionStart": {
"TimeOfDay": "0001-01-01T02:00:00",
"Month": 3,
"Week": 2,
"Day": 1,
"DayOfWeek": 0,
"IsFixedDateRule": false
},
"DaylightTransitionEnd": {
"TimeOfDay": "0001-01-01T02:00:00",
"Month": 11,
"Week": 1,
"Day": 1,
"DayOfWeek": 0,
"IsFixedDateRule": false
},
"BaseUtcOffsetDelta": "00:00:00"
}
],
"SupportsDaylightSavingTime": true
},
"PeriodBegin": "2023-01-01T00:00:00",
"PeriodEnd": "2024-04-04T00:00:00",
"Disclaimer": "",
"TradeGroupPermissions": null,
"ViewerPersonalAccountID": 21
}
],
"Outcome": 0,
"RespDateTime": "2024-04-05T19:11:12.8760901+03:00",
"Description": "Success"
}
Case: Signature is wrong
Status Code: 400
{
"Error": "wrong signature"
}
GET /api/CheckPrices.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )exclude - excludeHeaders: NONE
Content-Type: application/json; charset=utf-8
UnupdatedSymbols - string, symbols name stringStatus Code: 200
{
"UnupdatedSymbols": "USDCHF GBPUSD USDJPY EURUSD USDCAD AUDUSD NZDUSD DQS CADJPY EURGBP GBPJPY XAU XAG"
}
{
"UnupdatedSymbols": null
}
Case: Signature is wrong
Status Code: 400
{
"Error": "wrong signature"
}
POST /api/ExternalAccountChallengeCreate.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )accountLogin - accountLoginexternalAccountID - externalAccountIDaccountPasswordHash - accountPasswordHashaccountPasswordHashFunction - accountPasswordHashFunctionAccountGroupName - AccountGroupNameaccountFirstName - accountFirstNameaccountLastName - accountLastNameAccountCountryID - AccountCountryIDaccountAddress - accountAddressaccountCity - accountCityaccountState - accountStateaccountPostCode - accountPostCodeaccountPhoneNumber - accountPhoneNumberaccountEmail - accountEmailHeaders: NONE
Content-Type: application/json; charset=utf-8
AccountLogin: string,AccountEmail: string,ExternalAccountID: string,Status Code: 200
{
"AccountLogin": "13",
"AccountEmail": "13",
"ExternalAccountID": "13"
}
Case: signature is wrong
Status Code: 400
{
Error: wrong signature
}
POST /api/ExternalAccountIDUpdate.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )oldExternalAccountID - oldExternalAccountIDnewExternalAccountID - newExternalAccountIDHeaders: NONE
Content-Type: application/json; charset=utf-8
-ExternalAccountID - uppdeted id
Status Code: 200
{
"ExternalAccountID": "15"
}
Case:
Status Code: 400
{
Error: wrong signature
}
GET /api/ExternalAccountRetrieveTransactionHistory.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )externalAccountId - oldExternalAccountIDperiodBeginDate - periodBeginDateperiodEndDate - periodEndDatepage - pagepageSize - pageSizeforAll - forAllHeaders: NONE
Content-Type: application/json; charset=utf-8
TransactionHistory - TransactionHistoryCount - int, countRespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operationExternalAccountID: string,TransactionType: string,IncomeAmount: decimal,TransactionTime: DateTime,Comments: string,DocumentID: integerStatus Code: 200
{
"TransactionHistory": [],
"Count": 0,
"Outcome": 0,
"RespDateTime": "2024-04-05T21:23:56.799927+03:00",
"Description": "Success"
}
{
"TransactionHistory": [],
"Count": 0,
"Outcome": 1,
"RespDateTime": "2024-04-05T21:24:20.129487+03:00",
"Description": "The string is not recognized as a valid DateTime value."
}
Case: Signature is wrong
Status Code: 400
{
Error: worng signature
}
GET /api/Ping.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )Headers: NONE
Content-Type: application/json; charset=utf-8
Message - statusRespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeStatus Code: 200
{
"Message": "OK",
"RespDateTime": "2024-04-05T21:27:55.672804+03:00"
}
Case: Signature is wrong
Status Code: 400
{
"Error": "wrong signature"
}
GET /api/RetrieveAccountsByEmail.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )email - emailHeaders: NONE
Content-Type: application/json; charset=utf-8
Accounts - AccountsRespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operation TraderID: int,TradeGroupID: int,TradeGroupNameStr: string,ExternalAccountID: string,PersonalAccountID: int,LoginName: string,UsedMargin: decimal,Balance: decimal,FreeMargin: decimal,Equity: decimal,UPL: decimal,Credit: decimal,CreatedAt: DateTime,IsDisabled: bool,LastIpAddress: string,IsLocked: bool,IsReadonly: bool,Status Code: 200
{
"Accounts": [
{
"TraderID": 13,
"TradeGroupID": 12,
"TradeGroupName": "demoforex",
"ExternalAccountID": "00661070",
"PersonalAccountID": 41,
"LoginName": "ITClient-1",
"UsedMargin": 0.0,
"Balance": 278448.3000,
"FreeMargin": 0.0,
"Equity": 0.0,
"UPL": 0.0,
"Credit": 0.0000,
"CreatedAt": "0001-01-01T00:00:00",
"IsDisabled": false,
"LastIpAddress": null,
"IsLocked": false,
"IsReadonly": false
}
],
"Outcome": 1,
"RespDateTime": "2024-04-05T21:38:43.2654236+03:00",
"Description": "&&&"
{
"Accounts": [],
"Outcome": 1,
"RespDateTime": "2024-04-05T21:43:41.1742106+03:00",
"Description": "field Email is empty"
}
Case: Signature is wrong
Status Code: 400
{
"Error": "wrong signature"
}
GET /api/PersonalAccountEnable.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )Headers: NONE
Content-Type: application/json; charset=utf-8
-Outcome
-RespDateTime
-Description
Status Code: 200
{
"Outcome": 0,
"RespDateTime": "2024-04-09T00:46:03.6271151+03:00",
"Description": "Success."
}
Case: User Does not exist
Status Code: 400
{
"Error": "User Does not exist"
}
GET /api/PersonalAccountDisable.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )Headers: NONE
Content-Type: application/json; charset=utf-8
-Outcome
-RespDateTime
-Description
Status Code: 200
{
"Outcome": 0,
"RespDateTime": "2024-04-09T00:46:03.6271151+03:00",
"Description": "Success."
}
Case: User Does not exist
Status Code: 400
{
"Error": "User Does not exist"
}
GET /api/GetTopTradersOverallSystem.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )orderBy - Allowed values: Balance, Margin, Upl, Equity, FreeMargin, MarginUtilization, ProfitsortOrder - Allowed values: asc, desccountLimit - 1<=countLimit<=20tradeGroupID - tradeGroupIDtradeGroupName - tradeGroupNameHeaders: NONE
Content-Type: application/json; charset=utf-8
Traders - arrayRespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operationTraderId: int,PersonalAccountId: int,LoginName: string,Email: string,FirstName: string,LastName: string,MiddleName: string,Address1: string,Address2: string,City: string,State: string,CountryId: int,CountryName: string,ZipCode: string,PhoneNumber: string,CreationTime: DateTime,DisplayName: string,FirstDepositTime: DateTime,Balance: decimal,Margin: decimal,UPL: decimal,Equity: decimal,FreeMargin: decimal,MarginUtilization: decimal,MarginUtilizationPercentage: decimal,Profit: decimal,TradeGroupId: int,TradeGroupName: stringStatus Code: 200
{
"Traders": [
{
"TraderID": 23,
"LoginName": "ITClient-2",
"PersonalAccount": {
"PersonalAccountID": 51,
"LoginName": "ITClient-2",
"Email": "john.smith@forexdevelopment.com",
"FirstName": "John",
"MiddleName": null,
"LastName": "Smith",
"Address1": "Address1",
"Address2": "Address2",
"City": "New York City",
"State": "NY",
"Country": {
"CountryID": 1,
"CountryName": "United States"
},
"ZipCode": "10005",
"PhoneNumber": "212-656-3000",
"CreationTime": "0001-01-01T00:00:00",
"DisplayName": "ITClient-2 (John Smith)",
"FirstDepositTime": "0001-01-01T00:00:00"
},
"Balance": 0.0000,
"Margin": 0.0000,
"Upl": 0.000000,
"Equity": 0.000000,
"FreeMargin": 0.000000,
"MarginUtilization": 0.00000000000000000,
"MarginUtilizationPercentage": 0.00000000000000000,
"Profit": 0.0000,
"TradeGroupID": 12,
"TradeGroupName": "demoforex"
}
],
"RespDateTime": "2024-04-09T10:44:04.2629652+00:00",
"Description": "Success"
}
Case: wrong orderBy
Status Code: 400
{
"Error": "Invalid param value: `orderBy`. Allowed values: Balance, Margin, Upl, Equity, FreeMargin, MarginUtilization, Profit"
}
GET /api/GetServerTime.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )Headers: NONE
Content-Type: application/json; charset=utf-8
-ServerTime - ServerTime
Status Code: 200
{
"ServerTime": "2024-04-08T21:54:41.283Z"
}
Case: Signature is wrong
Status Code: 400
{
Error: wrong signature
}
GET /api/GetFixAccountsList.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )Headers: NONE
Content-Type: application/json; charset=utf-8
Status Code: 200
{
&&&
}
Case:
Status Code: 400
{
&&&
}
POST /api/MakeTraderReadOnly.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )externalAccountId - string, should be used one of 'externalAccountId' or 'traderId'traderId - integer, should be used one of 'ExternalAccountId' or 'traderId'Headers: NONE
Content-Type: application/json; charset=utf-8
Outcome - integer, error id, 0 if no errorDescription - detailed description about processed operationStatus Code: 200
{
"Outcome": 0,
"Description": "Success"
}
Case: Signature is wrong
Status Code: 400
{
"Error": "Invalid externalAccountId"
}
{
"Error": "Invalid traderId"
}
POST /api/MakeTraderReadWrite.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )externalAccountId - string, should be used one of 'externalAccountId' or 'traderId'traderId - integer, should be used one of 'ExternalAccountId' or 'traderId'Headers: NONE
Content-Type: application/json; charset=utf-8
Outcome - integer, error id, 0 if no errorDescription - detailed description about processed operationStatus Code: 200
{
"Outcome": 0,
"Description": "Success"
}
Case: Signature is wrong
Status Code: 400
{
"Error": "Invalid externalAccountId"
}
{
"Error": "Invalid traderId"
}
POST /api/TraderSettingsClone.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )traderIdFrom - integer, traderIdTo - integer, externalAccountIdFrom - string, should be used one of 'externalAccountIdFrom' or 'traderIdFrom' externalAccountIdTo - string, should be used one of 'externalAccountIdTo' or 'traderIdFrom' Headers: NONE
Content-Type: application/json; charset=utf-8
Outcome - integer, error id, 0 if no errorRespDateTime: datetime, "2024-05-02T17:13:13.8026823+00:00"Description - description about processed operationStatus Code: 200
{
"Outcome": 0,
"RespDateTime": "2024-05-02T17:13:13.8026823+00:00",
"Description": "Success"
}
Case: Signature is wrong
Status Code: 400
{
"Error": "traderIdFrom = 9187 does not exist"
}
{
"Error": "externalAccountIdFrom = dfgs12 does not exist"
}
POST /api/CreateLoginLink.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )externalAccountId - string, should be used one of 'externalAccountId' or 'traderId' or 'personalAccountId'traderId - integer, personalAccountId - integer Headers: NONE
Content-Type: application/json; charset=utf-8
Link - url with tokenExpirationDate - token expiration dateOutcome - integer, error id, 0 if no errorDescription - description about processed operation Status Code: 200
{
"Link": "https://webtrader1.company1.com/sign-in?Token=5fd3b0215f8447129e257364eddd694f",
"ExpirationDate": "2024-08-12T13:35:33.273Z",
"Outcome": 0,
"Description": "Success"
}
Case: Signature is wrong
Status Code: 400
{
"Error": "Trader is not found"
}
POST /api/AccountResetPassword.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )personalAccountId - integer password - string Headers: NONE
Content-Type: application/json; charset=utf-8
Password - string, passwordInfo - "Password reset completed",RespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operationStatus Code: 200
{
"Password" : "123456",
"Info" : "Password reset completed",
"ExpirationDate": "2024-08-12T13:35:33.273Z",
"Outcome": 0,
"Description": "Success"
}
Case: Signature is wrong
Status Code: 400
{
"Error": "PersonalAccountID not found!"
}
POST /api/OpenPositionOrder.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )symbol - string clientCompId - integer clientId - integer clientOrderId - integer orderTime - Datetime settleTime - Datetime side - string clientPrice - decimal clientVolume - decimal price - decimal volume - decimal status - string comment - string stopLoss - decimal, default 0takeProfit - decimal, default 0trailingStop - decimal, default 0 dealId - integer, default 0 dealTime - Datetime Headers: NONE
Content-Type: application/json; charset=utf-8
clientOrderId: string,TotalVolume: int,TotalPrice: decimal,Outcome - integer, error id, 0 if no errorDescription - detailed description about processed operationStatus Code: 200
{
"Password" : "123456",
"Info" : "Password reset completed",
"ExpirationDate": "2024-08-12T13:35:33.273Z",
"Outcome": 0,
"Description": "Success"
}
Case: Signature is wrong
Status Code: 400
{
"Error": "PersonalAccountID not found!"
}
POST /api/CloseAllTrades.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )externalAccountId - stringloginName - string challengeEventCode - int, default 6force - bool, default falseHeaders: NONE
Content-Type: application/json; charset=utf-8
TraderId - integerOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operationStatus Code: 200
{
"TraderId": 140363,
"outcome": 0,
"description": "Success"
}
{
"Error": "Invalid traderID"
}
Case: Signature is wrong
Status Code: 400
{
"Error": "wrong signature"
}
POST /api/UnlockAccount.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )externalAccountId - string, should be used one of 'externalAccountId' or 'traderId' or 'personalAccountId'traderId - integer, personalAccountId - integer Headers: NONE
Content-Type: application/json; charset=utf-8
Outcome - integer, error id, 0 if no errorDescription - description about processed operation Status Code: 200
{
"Outcome": 0,
"Description": "Success"
}
Case: Signature is wrong
Status Code: 400
{
"Error": "PersonalAccount is not found"
}
POST /api/RetrieveOrderHistory.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )orderId - stringHeaders: NONE
Content-Type: application/json; charset=utf-8
OrderHistory - arrayRespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operationOrderId: int,TraderId: int,StateId: int,SymbolName: string,OrderType: string,Volume: decimal,StateOpenDate: DateTime,CommandPrice: decimal,StopLoss: decimal?,TakeProfit: decimal?,TrailingStop: decimal?,Margin: decimal,Profit: decimal,TransactionFee: decimal,Rollover: decimal,ClearProfit: decimalStatus Code: 200
{
{
"OrderHistory": [
{
"OrderId": 568,
"TraderId": 13,
"StateId": 2,
"SymbolName": "EURUSD",
"OrderType": "Buy Limit",
"Volume": 0.0,
"StateOpenDate": "2008-10-12T09:15:00Z",
"CommandPrice": 0.0,
"StopLoss": null,
"TakeProfit": null,
"TrailingStop": null,
"Margin": 0.0000,
"Profit": 0.0,
"TransactionFee": 0.0000,
"Rollover": 0.0000,
"ClearProfit": 0.0000
},
{
"OrderId": 568,
"TraderId": 13,
"StateId": 1,
"SymbolName": "EURUSD",
"OrderType": "Buy Limit",
"Volume": 0.0,
"StateOpenDate": "2008-10-12T09:00:00Z",
"CommandPrice": 0.97610000,
"StopLoss": null,
"TakeProfit": null,
"TrailingStop": null,
"Margin": 0.0000,
"Profit": 0.0,
"TransactionFee": 0.0000,
"Rollover": 0.0000,
"ClearProfit": 0.0000
}
],
"Outcome": 0,
"RespDateTime": "2024-10-30T23:45:15.5449644-07:00",
"Description": "Success"
}
}
Case: Signature is wrong
Status Code: 400
{
"Error": "wrong signature"
}
POST /api/RetrieveIOSConfig.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )Headers: NONE
Content-Type: application/json; charset=utf-8
Config - setting config for iOSOutcome - integer, error id, 0 if no errorDescription - description about processed operation Status Code: 200
{
"Outcome": 0,
"Description": "Success"
}
Case: Signature is wrong
Status Code: 400
{
"Error": "Not found"
}
POST /api/RetrieveRunningTrades.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )Page - int, page number (for pagination) PageSize - int, number of records per page IncludeHistory - bool, flag to include historyPersonalAccountID - int[], array of personal account IDsExternalAccountID - string[], array of external account IDsℹ️ If both
PersonalAccountIDandExternalAccountIDare empty, data for all accounts will be returned.
Headers: NONE
Content-Type: application/json; charset=utf-8
RunningTrades - array, contains user details (see the format below)TotalCount - int, total number of records (for pagination)RespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operationStatus Code: 200
{
"RunningTrades": [
{
"PersonalAccountId": 1181,
"TraderId": 793,
"TraderName": "Dominik Kovarik",
"OrderId": 623,
"TradeGroupId": 12,
"TradeGroupName": "demoforex",
"SymbolName": "AAPL.OQ",
"SymbolId": 1124,
"OrderType": "Buy",
"Volume": 1.000000000,
"InitialVolume": 1.000000000,
"LotVolume": 1.000000000,
"OpenPrice": 169.65000000,
"Margin": 8.4800,
"CurrentPrice": 226.76000000,
"UPL": 57.11,
"OpenTime": "2024-04-05T15:04:26.54+00:00",
"TotalRollover": -5.9000,
"OrderHistory": [
{
"OrderId": 623,
"StateId": 623,
"OrderType": "Buy",
"OpenPrice": 169.65000000,
"Volume": 1.000000000,
"Margin": 8.4800,
"CommandPrice": 169.65000000,
"CommandVolume": 1.000000000,
"CommandMargin": 8.4800,
"CommandRequestPrice": 169.65000000,
"CommandDeviation": 0.0,
"StateOpenDate": "2024-04-05T15:04:26.54+00:00",
"StateCloseDate": "2024-04-05T21:00:00.0966667+00:00",
"CommandType": "OpenMarket"
},
{
"OrderId": 623,
"StateId": 637,
"OrderType": "Buy",
"OpenPrice": 169.65000000,
"Volume": 1.000000000,
"Margin": 8.4800,
"CommandVolume": 0.000000000,
"CommandMargin": 0.0000,
"StateOpenDate": "2024-04-05T21:00:00.0966667+00:00",
"StateCloseDate": "2025-09-10T21:00:00.4533333+00:00",
"Rollover": -5.9000,
"CommandType": "Rollover"
}
]
}
],
"TotalCount": 502,
"Outcome": 0,
"RespDateTime": "2025-09-11T06:26:39.5367677+00:00",
"Description": "Success"
}
{
"Outcome": 1,
"RespDateTime": "2025-09-11T06:27:18.4881091+00:00",
"Description": "Not found"
}}
Case: Signature is wrong
Status Code: 400
{
"Error": "wrong signature"
}
POST /api/RetrieveTradeHistory.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )Page - int, page number (for pagination) PageSize - int, number of records per page PeriodBeginDate - DateTime, start date of the periodPeriodEndDate - DateTime, end date of the periodIncludeHistory - bool, flag to include historyPersonalAccountID - int[], array of personal account IDsExternalAccountID - string[], array of external account IDsℹ️ If both
PersonalAccountIDandExternalAccountIDare empty, data for all accounts will be returned.
Headers: NONE
Content-Type: application/json; charset=utf-8
TradeHistory - array, contains user details (see the format below)TotalCount - int, total number of records (for pagination)RespDateTime - string in format yyyy-MM-dd HH:mm:ss, response timeOutcome - integer, error id, 0 if no errorDescription - detailed description about processed operationStatus Code: 200
{
"TradeHistory": [
{
"PersonalAccountId": 49991,
"TraderId": 49453,
"TraderName": "Test_Iskander_08",
"OrderId": 3824953,
"TradeGroupId": 12,
"TradeGroupName": "demoforex",
"SymbolName": "GBP/USD",
"SymbolId": 1018,
"OrderType": "Buy",
"Volume": 0.000000000,
"InitialVolume": 100000.000000000,
"LotVolume": 100000.000000000,
"OpenPrice": 1.05014000,
"Margin": 0.0000,
"LastIpAddress": "83.219.243.121",
"OpenTime": "2025-09-01T09:48:03.9666667+00:00",
"CloseTime": "2025-09-01T09:49:40.1333333+00:00",
"TotalProfit": -9026.0000,
"TotalTransactionFee": -0.4000,
"OrderHistory": [
{
"OrderId": 3824953,
"StateId": 3824953,
"OrderType": "Buy",
"OpenPrice": 1.05014000,
"Volume": 100000.000000000,
"Margin": 1050.1400,
"CommandPrice": 1.05014000,
"CommandVolume": 100000.000000000,
"CommandMargin": 1050.1400,
"CommandRequestPrice": 1.05014000,
"CommandDeviation": 0.0,
"StateOpenDate": "2025-09-01T09:48:03.9666667+00:00",
"StateCloseDate": "2025-09-01T09:49:40.1333333+00:00",
"TransactionFee": -0.2100,
"IpAddress": "83.219.243.121",
"CommandType": "OpenMarket"
},
{
"OrderId": 3824953,
"StateId": 3824955,
"OrderType": "Buy",
"OpenPrice": 1.05014000,
"Volume": 0.000000000,
"Margin": 0.0000,
"CommandPrice": 0.95988000,
"CommandVolume": -100000.000000000,
"CommandMargin": -1050.1400,
"CommandRequestPrice": 0.00000000,
"CommandDeviation": 0.0,
"StateOpenDate": "2025-09-01T09:49:40.1333333+00:00",
"Profit": -9026.0000,
"TransactionFee": -0.1900,
"IpAddress": "83.219.243.121",
"CommandType": "CloseMarket"
}
]
},
{
"PersonalAccountId": 49991,
"TraderId": 49453,
"TraderName": "Test_Iskander_08",
"OrderId": 3824961,
"TradeGroupId": 12,
"TradeGroupName": "demoforex",
"SymbolName": "GBP/USD",
"SymbolId": 1018,
"OrderType": "Buy",
"Volume": 0.000000000,
"InitialVolume": 1000.000000000,
"LotVolume": 1000.000000000,
"OpenPrice": 0.95326000,
"Margin": 0.0000,
"LastIpAddress": "83.219.243.121",
"OpenTime": "2025-09-01T09:49:53.1233333+00:00",
"CloseTime": "2025-09-01T09:52:14.32+00:00",
"TotalProfit": 96.6200,
"OrderHistory": [
{
"OrderId": 3824961,
"StateId": 3824961,
"OrderType": "Buy",
"OpenPrice": 0.95326000,
"Volume": 1000.000000000,
"Margin": 9.5300,
"CommandPrice": 0.95326000,
"CommandVolume": 1000.000000000,
"CommandMargin": 9.5300,
"CommandRequestPrice": 0.95326000,
"CommandDeviation": 0.0,
"StateOpenDate": "2025-09-01T09:49:53.1233333+00:00",
"StateCloseDate": "2025-09-01T09:52:14.32+00:00",
"IpAddress": "83.219.243.121",
"CommandType": "OpenMarket"
},
{
"OrderId": 3824961,
"StateId": 3824967,
"OrderType": "Buy",
"OpenPrice": 0.95326000,
"Volume": 0.000000000,
"Margin": 0.0000,
"CommandPrice": 1.04988000,
"CommandVolume": -1000.000000000,
"CommandMargin": -9.5300,
"CommandRequestPrice": 0.00000000,
"CommandDeviation": 0.0,
"StateOpenDate": "2025-09-01T09:52:14.32+00:00",
"Profit": 96.6200,
"IpAddress": "83.219.243.121",
"CommandType": "CloseMarket"
}
]
}
],
"TotalCount": 172,
"Outcome": 0,
"RespDateTime": "2025-09-11T06:39:01.7845744+00:00",
"Description": "Success"
}
{
"Outcome": 1,
"RespDateTime": "2025-09-11T06:27:18.4881091+00:00",
"Description": "Not found"
}}
Case: Signature is wrong
Status Code: 400
{
"Error": "wrong signature"
}
POST /api/ExternalAccountCreditDeposit.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )ExternalAccountID - string amount - credit amount (decimal number)comment - an optional string commentHeaders: NONE
Content-Type: application/json; charset=utf-8
Status Code: 200
{
"Outcome": 0,
"RespDateTime": "2024-02-12T14:58:25.0153481+00:00",
"Description": "Success"
}
Case: Signature is wrong
Status Code: 400
{
"Error": "wrong signature"
}
POST /api/ExternalAccountCreditWithdraw.ashx
Headers: NONE
Content-Type: application/x-www-form-urlencoded
login - your login in our systemtimestamp - current time in timestamp (e.g. 1576756325827)signature - md5(login+timestamp+ md5 password )ExternalAccountID - stringamount - withdraw amount (decimal number)comment - an optional string commentHeaders: NONE
Content-Type: application/json; charset=utf-8
Status Code: 200
{
"Outcome": 0,
"RespDateTime": "2024-02-12T14:58:25.0153481+00:00",
"Description": "Success"
}
Case: Signature is wrong
Status Code: 400
{
"Error": "wrong signature"
}