# MetaTrader 5 REST & WebSocket API

> Index of every docs page as Markdown: [llms.txt](https://fxsocket.com/docs/llms.txt). All pages in one file: [llms-full.txt](https://fxsocket.com/llms-full.txt).

Source: https://fxsocket.com/docs/mt5

FxSocket exposes each connected MetaTrader 5 account through a REST API and a WebSocket stream. Every account gets its own dedicated MT5 terminal in our cloud. Requests to your account hit your own terminal, nobody shares it. All endpoints return JSON.

Per-account base URL: `https://api.fxsocket.com/mt5/{account_id}`

`{account_id}` is the UUID of your connected MT5 account. Copy it from the [Accounts page](https://app.fxsocket.com/dashboard/accounts) or read it from `GET https://api.fxsocket.com/v1/accounts`. Your API key lives on the [API Key page](https://app.fxsocket.com/dashboard/api-key).

You can link, list, and remove accounts from the dashboard, or programmatically through the account-management API at `https://api.fxsocket.com/v1`. See [Managing Accounts](https://fxsocket.com/docs/mt5/accounts.md).

## Explore the MT5 API

- [Authentication](https://fxsocket.com/docs/mt5/authentication.md): API keys: header or query parameter.
- [Managing Accounts](https://fxsocket.com/docs/mt5/accounts.md): Link, list, and remove accounts via /v1.
- [Account Data](https://fxsocket.com/docs/mt5/account-data.md): Balances, positions, history, and connection status.
- [Market Data](https://fxsocket.com/docs/mt5/market-data.md): Symbols, quotes, price history, and contract specs.
- [Trading](https://fxsocket.com/docs/mt5/trading.md): Place, modify, and close orders.
- [WebSocket Streams](https://fxsocket.com/docs/mt5/websocket.md): Live ticks, bars, positions, and trades.
- [Errors & Rate Limits](https://fxsocket.com/docs/mt5/errors.md): Error envelope, status codes, and rate limits.

## SDKs & Generated Clients

The official FxSocket SDKs wrap this API (account management, trading, market data, and live WebSocket streams) with typed models for MT4 and MT5:

- Python: `pip install fxsocket`, sync and async clients. [PyPI](https://pypi.org/project/fxsocket/) · [GitHub](https://github.com/fxsocket-com/FxSocket-Python-SDK)
- Node.js / TypeScript: `npm install @fxsocket/sdk`, ESM and CommonJS. [npm](https://www.npmjs.com/package/@fxsocket/sdk) · [GitHub](https://github.com/fxsocket-com/FxSocket-Node-SDK)

Using another language? The API is plain HTTP and JSON, and every account serves its own live OpenAPI 3 spec, so you can generate a typed client for any language instead:

- Swagger UI: `https://api.fxsocket.com/mt5/{account_id}/swagger-ui/`: browsable, per-account interactive docs (keep the trailing slash). No API key needed.
- Raw spec: `https://api.fxsocket.com/mt5/{account_id}/api-doc/openapi.json`: point any OpenAPI generator (openapi-generator, openapi-typescript, oapi-codegen, ...) at this URL.

These two routes (plus `/`) are the only ones served without an API key.
