Subscribe#
About#
Subscribes to the terminal synchronization events. The server will respond with authenticated synchronization event once terminal is connected.
For more information see AsyncApi documentation
Request#
In order to subscribe to terminal events, your application needs to emit request event with the following payload.
| Name | Type | Required | Description |
|---|---|---|---|
| type | string | Yes | request type, must be subscribe if you want to subscribe to terminal events |
| accountId | string | Yes | MetaTrader account id. You can retrieve account id from Web application after you add your MetaTrader account to our platform. The account id can also be obtained via Provisioning API |
| requestId | string | Yes | request id which your application must supply. Request id must be unique during an API connection |
| application | string | MetaApi application id. Default is MetaApi |
Response#
After executing your request the API server will emit response event with the following payload.
| Name | Type | Required | Description |
|---|---|---|---|
| type | string | Yes | The value of this field will be response in the response to the above request |
| requestId | string | Yes | request id the response relates to |
| accountId | string | Yes | account id specified in the request |
Once terminal is connected the server will emit synchronize event of the authenticated type. If terminal was already connected at the time subscribe were processed, then the server will emit authenticated immediately.
| Name | Type | Required | Description |
|---|---|---|---|
| type | string | Yes | The value of this field will be authenticated in the response to the above request |
| accountId | string | Yes | account id specified in the request |
Code example#
import ioClient from 'socket.io-client';
const socket = ioClient('https://mt-client-api-v1.agiliumtrade.agiliumtrade.ai', {
path: '/ws',
reconnection: false,
query: {
'auth-token': 'token'
}
});
const request = {
accountId: '865d3a4d-3803-486d-bdf3-a85679d9fad2',
type: 'subscribe',
requestId: '57bfbc9f-108d-4131-a300-5f7d9e69c11b'
};
socket.on('connect', () => {
socket.emit('request', request);
});
socket.on('synchronization', data => {
console.log(data);
if (data.type === 'authenticated') {
console.log('authenticated event received, you can send synchronize now');
}
});
socket.on('processingError', err => {
console.error(err);
});
Response example#
{
"type":"response",
"requestId":"04cc8b8f-f509-4d78-8154-ccaa148d3b62",
"accountId":"23ccdd23-0b8a-400d-9aba-0129de365ba9"
}