{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/algovesta-com/json-schema/algovesta-com-post-webhook-yourtoken-request-schema.json",
  "title": "PostWebhookYourtokenRequest",
  "x-generated": "2026-11-01",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_ae-authored/algovesta-com-openapi-generated.yml#/components/schemas/PostWebhookYourtokenRequest",
  "type": "object",
  "properties": {
    "symbol": {
      "type": "string",
      "description": "Exchange trading pair, e.g. BTCUSDT."
    },
    "side": {
      "type": "string",
      "description": "Order direction: buy or sell."
    },
    "price": {
      "type": "string",
      "description": "Entry reference price; omit for market entry."
    },
    "stop_loss": {
      "type": "string",
      "description": "Stop-loss price. Recommended on every signal."
    },
    "take_profit": {
      "type": "string",
      "description": "Take-profit price. Multiple targets configurable in-app."
    },
    "market": {
      "type": "string",
      "description": "Target market: crypto (default) or forex. Sent to MetaTrader 5 when set to forex. Never inferred from the symbol."
    },
    "lots": {
      "type": "string",
      "description": "Forex only — position size in lots. Leave out to use your configured lot/risk mode."
    },
    "leverage": {
      "type": "string",
      "description": "Crypto only — your exchange's limit for that symbol applies."
    },
    "amount_usd": {
      "type": "string",
      "description": "Crypto only — margin, not notional. Notional = margin × leverage."
    },
    "risk_percent": {
      "type": "string",
      "description": "Crypto only — % of balance to risk (0.1–50)."
    },
    "quantity": {
      "type": "string",
      "description": "Crypto only — exact contract quantity. qty, size and contracts are accepted as aliases."
    },
    "take_profits": {
      "type": "string",
      "description": "Multiple targets: [{\"price\":…, \"close_pct\":…}]. tp1 … tp5 with tpN_close also work."
    },
    "trailing": {
      "type": "string",
      "description": "{\"trigger_pct\":…, \"distance_pct\":…} — trailing stop."
    },
    "breakeven": {
      "type": "string",
      "description": "true or {\"trigger_pct\":…} — move stop to entry once in profit."
    }
  },
  "required": [
    "symbol",
    "side"
  ]
}