WebAPI v1 (legacy)

The original REST + SignalR v1 surface. Still fully supported with no deprecation date — for MT5 it remains the recommended API today. New MT4 work should start on v2.

v1 is the original WebAPI surface, and it keeps running exactly as it always has — there is no deadline attached to it. Whether it's still the right one to build against depends on the platform:

MT5: stay on v1 for a full integration. v2 for MT5 today has 12 operations — server time, manager/user/group/symbol reads, positions/orders/deals by group, and partial updates (PATCH) of user, group and symbol records. Dealing, balance operations, account creation and password changes exist only on v1, which carries the full MT5 surface of 55 operations.
MT4: new work should start on v2 instead — 147 operations against v1's 42. This page is for maintaining an existing v1 MT4 integration, not for starting one.

Authentication

Same OAuth2 Client Credentials flow as v2 — see Authorization. The client id/secret you create in Toolbox works against both versions; only the base path and response shape differ.

REST

Rooted at https://cloud.mywebapi.com, no version segment in the path. Every request carries the bearer token in the Authorization header; methods that target a specific server take the trade platform id in the path.

curl https://cloud.mywebapi.com/api/MT4/{tradePlatform}/UserRecordGet/{login} \
  -H "Authorization: Bearer $ACCESS_TOKEN"

The full v1 method catalogue — with request/response schemas and a "try it" console — lives in the v1 Swagger reference.

The most basic things to request are your Organizations, the list of available TradePlatforms, and a connection check (ping) to any of them — all under those sections in Swagger.

Realtime

v1 realtime uses SignalR over Web Sockets (with Long Polling and other transports as fallback), on the v1 hubs. Connect and provide the bearer token via accessTokenFactory:

const connection = new signalR.HubConnectionBuilder()
  .withUrl('https://cloud.mywebapi.com/hubs/mt4/v1', {
    accessTokenFactory: () => access_token,
  })
  .build()

await connection.start()

// subscribe to a symbol, then receive ticks as they happen
await connection.invoke('SubscribeToTicks', tradePlatform, 'EURUSD')
connection.on('onTick', (tp, tick) => console.log(tick))

Live demos

View source on the working Test hub (no auth) and MT4 hub demos for full client code.

Typed interface

Download the up-to-date hub/method/event definitions as CPlugin.WebAPI.Realtime.ts.

SDKs and v1

The published SDKs (TypeScript, .NET, PowerShell) target v2 only — every generated call goes to a /api/v2/… path. There is no SDK support for v1; direct HTTP (above) or your own client generated from the v1 Swagger spec is the way to call it.

See WebAPI for environments, pricing, firewall whitelisting and the cloud routing notes — those apply the same way regardless of API version.