VeztaVezta

Copy Trade

Copy trade subscriptions and configuration

The Copy Trade API allows users to automatically replicate trades from top traders. Users can configure position sizing, risk controls, and category filters for each subscription. All copy trade endpoints require authentication.

Endpoints

MethodPathAuthDescription
GET/api/v1/copy-trade/subscriptionsBearerList all copy-trade subscriptions
GET/api/v1/copy-trade/feedBearerGet copy-trade activity feed
POST/api/v1/copy-trade/subscribeBearerSubscribe to copy a trader
PUT/api/v1/copy-trade/:idBearerUpdate a subscription's settings
DELETE/api/v1/copy-trade/:idBearerDeactivate a subscription
GET/api/v1/copy-trade/:id/historyBearerGet trade history for a subscription
GET/api/v1/copy-trade/:id/performanceBearerGet performance stats for a subscription

Subscribe to a Trader

Create a new copy-trade subscription. The system will automatically mirror the target trader's future trades according to the configured rules.

Request Body:

FieldTypeRequiredDescription
targetWalletAddressstringYesWallet address of the trader to copy
sizingStrategystringYesfixed (fixed USD per trade) or percentage (% of target size)
fixedAmountstringNoFixed amount per trade in USD (when using fixed strategy)
percentagenumberNoPercentage of target trade size (1-100, when using percentage strategy)
maxPositionUsdstringYesMaximum total position size in USD
maxPerTradestringNoMaximum amount per single trade in USD
maxOpenPositionsnumberNoMaximum concurrent open positions
dailyTradeCapnumberNoMaximum number of trades per day
maxDailyLossstringNoMaximum daily loss in USD before auto-pausing
slippageTolerancenumberNoMaximum slippage tolerance (0.01 = 1%)
exitStrategystringYesmirror (auto-exit when target exits) or manual
takeProfitPercentnumberNoAuto take-profit percentage
stopLossPercentnumberNoAuto stop-loss percentage
categoriesstring[]NoOnly copy trades in these market categories
minLiquiditynumberNoMinimum market liquidity threshold in USD
// POST /api/v1/copy-trade/subscribe
{
  "targetWalletAddress": "0x1234567890abcdef1234567890abcdef12345678",
  "sizingStrategy": "fixed",
  "fixedAmount": "50.00",
  "maxPositionUsd": "500.00",
  "maxPerTrade": "100.00",
  "maxOpenPositions": 10,
  "dailyTradeCap": 10,
  "maxDailyLoss": "200.00",
  "exitStrategy": "mirror",
  "categories": ["politics", "crypto"]
}
// Response 201
{
  "id": "sub-uuid-123",
  "targetWalletAddress": "0x1234...5678",
  "targetDisplayName": "TopTrader",
  "sizingStrategy": "fixed",
  "fixedAmount": "50.00",
  "maxPositionUsd": "500.00",
  "exitStrategy": "mirror",
  "status": "active",
  "createdAt": "2026-03-27T12:00:00.000Z"
}

Update Subscription

Modify an existing subscription's configuration. Only the fields you provide will be updated.

// PUT /api/v1/copy-trade/sub-uuid-123
{
  "fixedAmount": "75.00",
  "maxDailyLoss": "300.00"
}

Subscription History

Get the trade history for a specific copy-trade subscription, showing which trades were copied and their outcomes.

// GET /api/v1/copy-trade/sub-uuid-123/history

// Response 200
{
  "trades": [
    {
      "id": "trade-uuid-456",
      "marketTitle": "Will the Fed cut rates in June 2026?",
      "side": "yes",
      "amount": 50.00,
      "price": 0.63,
      "pnl": 8.50,
      "status": "filled",
      "copiedAt": "2026-03-25T14:30:00.000Z"
    }
  ]
}

Notes

  • Copy-trade subscriptions are monitored in real-time via WebSocket; when the target trader places a trade, the system automatically creates a mirrored order
  • Deleting a subscription deactivates it (soft delete) but does not close existing copied positions
  • The user:copy-trade WebSocket channel broadcasts real-time updates about copied trades
  • Risk controls (daily loss cap, max positions, slippage tolerance) act as circuit breakers to pause copying when thresholds are hit

On this page