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. v2 for MT5 today is a 12-endpoint read-only preview (server time, user/group/symbol lookups, positions/orders/deals by group) — no writes, no configuration. v1 carries the full 55-endpoint MT5 surface.
MT4: new work should start on v2 instead — 160 endpoints against v1's 43. 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.