API Endpoints

Complete list of LX API endpoints - production, testnet, regional, and failover endpoints

API Endpoints

Status Page: https://status.lux.network | Uptime: 99.99%

Endpoint Overview

LX provides geographically distributed endpoints optimized for latency and reliability. All endpoints support the same API interface with automatic failover capabilities.

Production Endpoints

Global (GeoDNS Load Balanced)

ProtocolEndpointPortDescription
RESThttps://api.lux.network443Primary REST API
WebSocketwss://ws.lux.network443Real-time feeds
gRPCgrpc.lux.network9760High-performance RPC
FIXfix.lux.network9880Financial Information eXchange

Regional Endpoints

North America

RegionRESTWebSocketgRPCLatency from NYC
US East (NY)https://us-east.api.lux.networkwss://us-east.ws.lux.networkus-east.grpc.lux.network:9760< 1ms
US West (LA)https://us-west.api.lux.networkwss://us-west.ws.lux.networkus-west.grpc.lux.network:9760~60ms
US Central (CH)https://us-central.api.lux.networkwss://us-central.ws.lux.networkus-central.grpc.lux.network:9760~20ms
Canada (TO)https://ca.api.lux.networkwss://ca.ws.lux.networkca.grpc.lux.network:9760~15ms

Europe

RegionRESTWebSocketgRPCLatency from London
UK (London)https://uk.api.lux.networkwss://uk.ws.lux.networkuk.grpc.lux.network:9760< 1ms
Germany (Frankfurt)https://de.api.lux.networkwss://de.ws.lux.networkde.grpc.lux.network:9760~10ms
Netherlands (Amsterdam)https://nl.api.lux.networkwss://nl.ws.lux.networknl.grpc.lux.network:9760~8ms
Switzerland (Zurich)https://ch.api.lux.networkwss://ch.ws.lux.networkch.grpc.lux.network:9760~15ms

Asia Pacific

RegionRESTWebSocketgRPCLatency from Tokyo
Japan (Tokyo)https://jp.api.lux.networkwss://jp.ws.lux.networkjp.grpc.lux.network:9760< 1ms
Singaporehttps://sg.api.lux.networkwss://sg.ws.lux.networksg.grpc.lux.network:9760~70ms
Hong Konghttps://hk.api.lux.networkwss://hk.ws.lux.networkhk.grpc.lux.network:9760~50ms
Australia (Sydney)https://au.api.lux.networkwss://au.ws.lux.networkau.grpc.lux.network:9760~100ms
South Korea (Seoul)https://kr.api.lux.networkwss://kr.ws.lux.networkkr.grpc.lux.network:9760~30ms

Failover Endpoints

Dedicated failover endpoints for mission-critical systems:

Primary:   https://api.lux.network
Secondary: https://api2.lux.network
Tertiary:  https://api3.lux.network

Failover DNS Records:

# Check all endpoints
dig api.lux.network +short
dig api2.lux.network +short
dig api3.lux.network +short

Testnet Endpoints

ProtocolEndpointDescription
RESThttps://testnet-api.lux.networkTestnet REST API
WebSocketwss://testnet-ws.lux.networkTestnet real-time feeds
gRPCtestnet-grpc.lux.network:9760Testnet gRPC
Faucethttps://faucet.lux.networkTest token faucet

Internal/Private Endpoints

For colocation and dedicated connection customers:

Colocation (Private IPs)

Matching Engine:  10.100.1.1:9760 (gRPC)
Market Data:      10.100.1.2:9770 (Multicast)
Order Entry:      10.100.1.3:9780 (Binary)
Drop Copy:        10.100.1.4:9790 (FIX)
AWS PrivateLink:   vpce-xxx.api.lux.network
GCP Private:       private-api.lux.network
Azure Private:     azure-api.lux.network

Endpoint Configuration

REST API Configuration

const config = {
  // Production
  production: {
    baseUrl: 'https://api.lux.network',
    timeout: 30000,
    retries: 3,
    failoverUrls: [
      'https://api2.lux.network',
      'https://api3.lux.network'
    ]
  },

  // Testnet
  testnet: {
    baseUrl: 'https://testnet-api.lux.network',
    timeout: 60000,
    retries: 5
  },

  // Regional (low latency)
  regional: {
    baseUrl: 'https://us-east.api.lux.network',
    timeout: 5000,
    retries: 1
  }
};

WebSocket Configuration

const wsConfig = {
  url: 'wss://ws.lux.network',
  reconnect: true,
  reconnectInterval: 1000,
  maxReconnectAttempts: 10,
  heartbeatInterval: 30000,

  // Regional override for lower latency
  regionalUrls: {
    'US': 'wss://us-east.ws.lux.network',
    'EU': 'wss://uk.ws.lux.network',
    'APAC': 'wss://jp.ws.lux.network'
  }
};

gRPC Configuration

import (
    "google.golang.org/grpc"
    "google.golang.org/grpc/credentials"
    "google.golang.org/grpc/keepalive"
)

func NewGRPCClient() (*grpc.ClientConn, error) {
    return grpc.Dial(
        "grpc.lux.network:9760",
        grpc.WithTransportCredentials(credentials.NewTLS(nil)),
        grpc.WithKeepaliveParams(keepalive.ClientParameters{
            Time:                10 * time.Second,
            Timeout:             3 * time.Second,
            PermitWithoutStream: true,
        }),
        grpc.WithDefaultServiceConfig(`{
            "loadBalancingPolicy": "round_robin",
            "healthCheckConfig": {
                "serviceName": "lxdex.TradingService"
            }
        }`),
    )
}

IP Allowlisting

Production IP Ranges

For firewall configuration, allow these CIDR ranges:

# Primary (NY5)
198.51.100.0/24
203.0.113.0/24

# Secondary (LD4)
192.0.2.0/24

# Secondary (TY3)
198.18.0.0/24

# CDN/Edge
Cloudflare IP ranges (see cloudflare.com/ips)

Outbound IPs

If you need to allowlist our outbound connections (webhooks, callbacks):

Webhooks: 198.51.100.50-60
Callbacks: 203.0.113.50-60

DNS Configuration

# Primary DNS
nameserver 1.1.1.1  # Cloudflare
nameserver 8.8.8.8  # Google

# For lowest latency, use regional DNS
nameserver <your-isp-dns>

DNS TTL Values

RecordTTLPurpose
api.lux.network60sFast failover
ws.lux.network60sFast failover
grpc.lux.network300sStable connections
static.lux.network3600sStatic assets

Health Check Endpoints

REST Health

curl https://api.lux.network/health
# Response: {"status":"healthy","version":"1.2.3","timestamp":1234567890}

WebSocket Ping

ws.send(JSON.stringify({type: 'ping'}));
// Response: {"type":"pong","timestamp":1234567890}

gRPC Health

grpcurl -plaintext grpc.lux.network:9760 grpc.health.v1.Health/Check
# Response: {"status":"SERVING"}

Rate Limits by Endpoint

Endpoint TypePublicAuthenticatedVIP
REST (orders)10/sec100/sec1000/sec
REST (data)100/sec1000/sec10000/sec
WebSocket (subscribe)10/min100/minUnlimited
gRPC (orders)100/sec1000/sec10000/sec

Connection Limits

TypeLimitNotes
WebSocket connections5 per IP100 for authenticated
gRPC streams100 per connection1000 for VIP
REST concurrent100 per IP1000 for authenticated
FIX sessions1 per account10 for institutional

TLS Configuration

Supported TLS Versions

  • TLS 1.3 (preferred)
  • TLS 1.2 (minimum)

Cipher Suites

TLS_AES_256_GCM_SHA384
TLS_CHACHA20_POLY1305_SHA256
TLS_AES_128_GCM_SHA256

Certificate Pinning (Optional)

SPKI Pin: sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
Backup Pin: sha256/BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB=

Endpoint Status

Real-time status available at: https://status.lux.network

Status API

curl https://status.lux.network/api/v1/status

Response:

{
  "overall": "operational",
  "components": {
    "rest_api": "operational",
    "websocket": "operational",
    "grpc": "operational",
    "matching_engine": "operational",
    "settlement": "operational"
  },
  "latency": {
    "rest_p50": 5,
    "rest_p99": 25,
    "ws_p50": 1,
    "ws_p99": 10
  },
  "incidents": []
}

Migration Guide

From Other Exchanges

ExchangeLX Equivalent
Binance api.binance.comapi.lux.network
FTX ftx.com/apiapi.lux.network/v1
Coinbase api.coinbase.comapi.lux.network/v1

Endpoint Mapping

// Binance → LX
const endpointMap = {
  '/api/v3/order': '/v1/orders',
  '/api/v3/openOrders': '/v1/orders?status=open',
  '/api/v3/depth': '/v1/orderbook/:symbol',
  '/api/v3/trades': '/v1/trades',
  '/ws/stream': '/ws'
};