Precise • Fast • Dependable

Trading infrastructure, exposed as an API.

Connect MetaTrader 5 accounts. Place, modify and close orders. Move many accounts with one instruction. Build trading products on infrastructure that tells you exactly what happened to every order.

  • Free to start
  • No terminal or VPS to run
  • Built for developers
Core capabilities

Everything you need to build, in one API.

From connecting accounts to executing across many at once — one developer-first API for MetaTrader 5 trading, with every order's outcome recorded, never guessed.

Account connectivity

Connect an MT5 account with its login and server. We keep a terminal ready for it — always on, or warmed when you trade.

Order execution

Market and pending orders, closes and stop moves. Each ends filled, rejected, or unknown and being reconciled — never quietly failed.

Execution waves

One instruction across many accounts, released together at a barrier, with a result for every leg.

Reconciliation

Orders whose outcome was lost in transit are settled from the broker's own history — matched, never guessed.

API keys

Scoped keys, shown once and stored only as digests. Rename, re-scope or revoke — revocation applies on the next request.

Credential security

Broker passwords are encrypted per account and never returned by any endpoint or written to a log.

Get started

Integrate
in minutes.

One consistent JSON API. Retry safely with an idempotency key — the same key never places a second order.

Read the docs
> curl -X POST https://api.fxapis.com/v1/accounts/$ACCOUNT_ID/orders/market \
  -H "Authorization: Bearer $FXAPIS_KEY" \
  -H "Idempotency-Key: 7f3e0c9a-order-1" \
  -H "Content-Type: application/json" \
  -d '{
    "symbol": "EURUSD",
    "side": "buy",
    "volume": "0.10"
  }'
Response 201 Created
{
  "data": {
    "id": "b1c7…9e2a",
    "symbol": "EURUSD",
    "side": "buy",
    "volume": "0.10",
    "state": "filled",
    "filledVolume": "0.10",
    "filledPrice": "1.13722",
    "brokerOrderId": "2104837096"
  }
}
Execution waves

One instruction, every account.

Every terminal is warmed first, then every leg is released together. We measure how tight that release is, so you can see it.

wave · EURUSD · buy · 100 accounts
30 msfirst leg to last
Measured
10 accounts25 accounts50 accounts100 accounts
Dispatch spread by wave size, measured against an instant local broker to isolate our own contribution. Per-leg cost falls as the wave grows: 1.7 ms at 10 accounts, 0.3 ms at 100.

Barrier policies

Release the ready legs, wait for all, or hold until a deadline.

Measured spread

First leg to last, reported on every wave.

Per-leg results

A wave is not atomic, so each account reports its own fill.

Safe retries

Retrying a wave cannot place a second order anywhere.

Why fxapis

Built for what comes next.

Precise

Every order ends in a state that tells the truth — filled, rejected, or unknown and being reconciled. Nothing is retried on a guess.

Fast

Orders go to a terminal that is already logged in. A 100-account wave leaves within 30 ms, first leg to last.

Dependable

One terminal per account, fenced even across nodes — and a billing problem never stops you closing a position.

Pricing

Start free. Scale when you trade.

Pay by card or in crypto, monthly. Over your plan, opening is paused — closing never is.

Free

$0
  • 1 MT5 account
  • 100 orders a month
  • Execution waves
  • Pending orders
  • Always-on terminals
  • Webhooks

Starter

Popular
$99/ month
  • 5 MT5 accounts
  • 5,000 orders a month
  • Execution waves
  • Pending orders
  • Always-on terminals
  • Webhooks

Scale

$499/ month
  • 50 MT5 accounts
  • 100,000 orders a month
  • Execution waves
  • Pending orders
  • Always-on terminals
  • Webhooks

Enterprise

Custom
  • 500 MT5 accounts
  • 2,000,000 orders a month
  • Execution waves
  • Pending orders
  • Always-on terminals
  • Webhooks

Arranged directly with us

> Connect. Execute. Scale.

Start building with fxapis today.

Create an account, issue an API key, and place your first order in minutes.