CPlugin
Operational since 2015 · hundreds of MT4 / MT5 servers integrated

The MT4 / MT5 API
that just works.

A RESTful JSON Web API to manage MT4 and MT5 trading servers from any HTTP-enabled client. REST for request / response, SignalR over WebSockets / Long Polling / SSE for realtime quotes, margins and trade events. OAuth 2.0, geographically distributed, auto-failover.

REST + SignalR · OAuth 2.0 · Multi-region
auth-and-call.sh
# 1. OAuth Client Credentials → Bearer JWT
TOKEN=$(curl -s -X POST https://auth.cplugin.net/connect/token \
  -d 'grant_type=client_credentials&scope=webapi' \
  -d "client_id=$CPLUGIN_CLIENT_ID" \
  -d "client_secret=$CPLUGIN_CLIENT_SECRET" \
  | jq -r .access_token)

# 2. List your trade platforms
curl -H "Authorization: Bearer $TOKEN" \
  https://cloud.mywebapi.com/api/TradePlatforms

# 3. Ping one of them
curl -H "Authorization: Bearer $TOKEN" \
  https://cloud.mywebapi.com/api/TradePlatforms/$ID/Ping
Documentation

Two API versions, one reference each

Full MT4 / MT5 ManagerAPI surface — Organizations, TradePlatforms, MT4ManagerAPI, MT5ManagerAPI. Both versions run side by side on the same hosts, with the same token; the same references apply to Production and Sandbox.

Guides — authentication, timeouts, idempotency, realtime: cplugin.com/docs/webapi ↗ · What is new in v2

Swagger UI remains available, deprecated and slated for removal. · Test methods (no auth) ↗

New · Beta Now running in test mode

Meet the v2 API

A faster, cleaner endpoint surface is live for testing. v2 puts the version in the path — call /api/v2/… directly, no query string — and serves responses through a zero-reflection JSON pipeline. v1 stays stable and fully supported; migrate at your own pace.

Versioning
Version in the path

Call /api/v2/… directly — no api-version query parameter to remember.

Performance
Faster JSON

Source-generated serialization, zero runtime reflection — lower latency and allocations per response.

Realtime
New v2 hub

Hub /hubs/mt4/v2 streams ticks, margins and trade events.

quickstart.ts npm i @mywebapi.com/sdk
import { CPluginWebApiClient } from '@mywebapi.com/sdk';

const client = new CPluginWebApiClient({
  env: 'prod', // or 'staging' for the Sandbox
  clientId: process.env.CPLUGIN_WEBAPI_CLIENT_ID,
  clientSecret: process.env.CPLUGIN_WEBAPI_CLIENT_SECRET,
});

const time = await client.mt4.getServerTime(tradePlatformId);
Handles OAuth2 token discovery, caching and refresh for you. Full guide, all four SDKs: cplugin.com/docs/webapi ↗.
API v2 reference Beta — surface may still change before it’s promoted to stable.
Environments

Two environments, one API

Same surface, same OAuth flow, just different hosts. Sandbox is fully separated — no billing, no SLA, safe to break.

Production Billed · SLA
  • REST cloud.mywebapi.com
  • Auth auth.cplugin.net
  • Hub /hubs/mt4/v1 · /hubs/mt4/v2 (mt5 alike)
  • Manage toolbox.cplugin.com

Multi-region cloud (m3 / m4 / m9), DNS traffic manager routes to the nearest instance. Your pricing in Toolbox ↗

Sandbox Free · No SLA
  • REST pre.mywebapi.com
  • Auth pre.auth.cplugin.net
  • Hub /hubs/mt4/v1 · /hubs/mt4/v2 (mt5 alike)
  • Manage pre.toolbox.cplugin.com

Fully separated environment with its own Toolbox for client and MT4 / MT5 connection management. No charges, no SLA, may be reset without notice. Use for integration testing before pointing at Production.

Realtime over SignalR

Hubs /hubs/mt4/v1, /hubs/mt5/v1 for API v1 and /hubs/mt4/v2, /hubs/mt5/v2 for API v2. Subscribe to ticks, margins, trade events. WebSockets / Long Polling / SSE — same code path. Auto-reconnect, bearer auth, typed contracts.

Working examples

Full source for download. Plug in your credentials, run, ship.

Live status
Production
cloud.mywebapi.com
checking…
Sandbox
pre.mywebapi.com
checking…