FX
API Reference

Introduction

The FXNode API is organized around REST. Our API has predictable resource-oriented URLs, accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes.

Authentication

Authenticate your account by including your secret API key in the request header x-fxnode-key. You can manage your API keys in the Dashboard.

Origin IP Whitelist Required

For enterprise security, authenticating with a valid API key is not enough. You must whitelist your server's IP address in the FXNode dashboard. Requests from non-whitelisted IPs will instantly return a 403 Forbidden response.

Base URL

https://connect.fxnode.cloud

Rate Limits

To ensure platform stability and protect against DDOS attacks, the FXNode headless API enforces request rate limits on a per-IP basis.

Global API Limit50 requests / second

If your application exceeds this threshold, the API will respond with a 429 Too Many Requests status code.

Authentication Header Example
bash
curl -X GET "https://connect.fxnode.cloud/finance/wallet" \
  -H "x-fxnode-key: fx_prod_YOUR_API_KEY_HERE"
Example 403 Error (IP Not Whitelisted)
json
{
  "detail": "Access denied. Origin IP (192.168.1.50) is not authorized. Please add it to your whitelist in the FXNode dashboard."
}

Finance Engine

Manage your enterprise wallet. All automated API deployments deduct directly from your available USD wallet balance.

GET/finance/wallet

Retrieves your current available USD balance.

Response
json
{
  "status": "success",
  "balance_usd": 1250.00
}

Fleet Engine

POST/fleet/deploy

Programmatically purchase and queue new MT5 instances. The cost ($14.00 per instance) is automatically deducted from your wallet.

Body Schema

ParameterDescription
instancesRequired
integer
The number of new MT5 nodes to provision (e.g., 5). Minimum is 1.

Catching Insufficient Funds

If your wallet balance is too low, this endpoint returns a 402 Payment Required status. Ensure your CRM handles this by alerting your billing department.

GET/fleet/instances

Returns a list of your deployed MT5 instances, including their secure RDP connection strings and passwords.

Query Parameters

ParameterDescription
status
string
Filter fleet by lifecycle state. Valid options: 'running', 'suspended', 'deploying', 'QUEUED', 'ALLOCATED'.
start_date
string
Filter by creation date (ISO 8601 UTC). e.g., '2026-04-01'.
end_date
string
Filter by creation date (ISO 8601 UTC). e.g., '2026-04-30'.
POST/fleet/instances/{id}/{action}

Dynamically control the state of an existing instance.

Path Parameters

ParameterDescription
idRequired
integer
The numeric instance_id of the node.
actionRequired
string
The lifecycle command to execute. Valid options: 'suspend', 'resume', 'redeploy'.

Destructive Action Warning

Calling redeploy will instantly and permanently wipe the instance data. Data cannot be recovered.

Deploy Instances
bash
curl -X POST "https://connect.fxnode.cloud/fleet/deploy" \
  -H "x-fxnode-key: fx_prod_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"instances": 2}'
Response
json
{
  "status": "success",
  "count": 1,
  "data": [
    {
      "instance_id": 45,
      "node_name": "API Deployment",
      "username": "fx_892_4a1f",
      "password": "S3cur3P@ssw0rd!",
      "connection": "168.119.104.19:54321",
      "status": "running"
    }
  ]
}

Status Codes

200 OK
Success.
400 Bad Request
Malformed JSON or missing params.
401 Unauthorized
Missing/invalid API key.
402 Payment Required
Wallet balance too low.
403 Forbidden
IP address not whitelisted.
404 Not Found
Instance does not exist.
429 Too Many Requests
You have exceeded the global rate limit of 50 requests per second.