---
title: "Get available signals"
method: GET
path: "/rest/api/v1/projects/{projectId}/signals"
tags: ["Project API"]
---

# Get available signals

`GET /rest/api/v1/projects/{projectId}/signals`

## Path parameters

- `projectId` string, uuid, required

## Response `200`

OK

- FeatureDTO[]
  - `accountId` string, uuid — You have to set it during resource creation, after that, it is only read-only
  - `copierId` string, uuid — You have to set it during resource creation, after that, it is only read-only
  - `created` string, date-time — ISO 8601
  - `featureId` string, uuid — You have to set it during resource creation, after that, it is only read-only. Use this to attach copier features to a Signal Follower feature.
  - `id` string, uuid
  - `projectId` string, uuid — You have to set it during resource creation, after that, it is only read-only
  - `setting` union, required — Configure setting for the specific feature
    - object — DTO for telegram feature (project)
      - `notifications` TelegramNotificationDTO[], required — List of telegram notifications
        - `accountIds` string[] — Only the account IDs listed here will receive notifications
        - `aliasMapping` object
        - `logLevel` LogTypeDTO, required — You have only to set the id e.g 1 for Telegram. Example: {id:1}
          - `id` integer, required
          - `name` string
        - `useAlias` boolean — Use alias instead of UUID for identification
        - `username` string, required — Enter the Telegram username (e.g. @john98734)
    - object — DTO for copier filter feature (copier)
      - `comment` string[] — Regex (case insensitive) applied to the comment field to filter. If multiple filters are specified, they are combined using an OR condition.
      - `magicNumber` string[] — Regex (case insensitive) applied to magic number field (MetaTrader -> magic number, DXtrade/TradeLocker/MatchTrader/Binance/Bybit/Bitget/BloFin/OKX/TradeStation/Tradovate/Alpaca -> no field and CTrader -> label) to filter. If multiple filters are specified, they are combined using an OR condition.
      - `maxLotSize` number, double — Maximum lot size on the master. If the master position lot size is greater than this value, the position will be skipped. Set to null or 0 to disable.
      - `minLotSize` number, double — Minimum lot size on the master. If the master position lot size is less than this value, the position will be skipped. Set to null or 0 to disable.
    - object — DTO for keep alive trade feature (account) (PRO)
      - `closeAfterInSeconds` integer — Defines the duration in seconds after which the opened trade will be closed automatically.
      - `cronExpressions` string[], required — Cron expressions to trigger the trade (UTC time)
      - `symbol` string, required — Define the symbol for which the trades will be opened. The opened lot size is the minimum size of the symbol.
    - object — DTO for the permitted symbols feature: If both a whitelist and a blacklist are defined, the whitelist has priority over the blacklist. (copier)
      - `blacklist` string[] — Blacklist regex (case insensitive). If multiple regex are specified, they are combined using an OR condition. The regex is applied to both the master symbol and the slave/mapped symbol - if either matches, the trade is blocked.
      - `whitelist` string[] — Whitelist regex (case insensitive). If multiple regex are specified, they are combined using an OR condition. The regex is applied to both the master symbol and the slave/mapped symbol - if either matches, the trade is allowed.
    - object — DTO for assigning a dedicated IP feature (account) (PRO)
      - `dedicatedProxyServerId` integer, required — Enter an dedicated proxy server id (see "FeatureDedicatedIpPoolDTO")
    - object — DTO for defining a pool of dedicated IPs feature (project) (PRO)
      - `dedicatedProxyServerIds` object — Read-only. The system will reserve the proxy servers per region and list them in this field.
      - `poolSize` object, required — Specify the number of dedicated proxy server (IPs) per region you want. Use "FeatureDedicatedIpDTO" to assign an proxy server (IP) to an account.
    - object — DTO for progressive trade sizing feature (copier) (PRO)
      - `cycles` integer — Number of consecutive profitable trades at the elevated level required before the trade volume resets to the base size. For example, if set to 2, you need 2 consecutive winning trades at the multiplied level before it drops back. Default is 1 (original behavior: a single win resets immediately).
      - `lastLossGreaterThanInPercentage` number — Defines the loss percentage threshold required to activate the feature. For instance, if set to 1%, the system will trigger the multiplier if a trade closes with a loss greater than 1% of the account balance. The default is 0%, meaning any negative trade will activate the feature.
      - `limitLevels` integer — Limits the maximum number of consecutive times the trade volume can be increased after successive losses. For example, if set to 3, the trade volume will only be increased up to 3 times before being capped.
      - `lookBackInDays` integer — Defines the number of days to consider when evaluating past trades. For example, if set to 5, the system will look back at trades opened by the copier over the last 5 days to determine if the most recent trade closed with a loss.
      - `multiplier` number — Specifies the multiplier to apply when increasing trade volume after a loss. The default multiplier is 2.000, meaning the volume of the next trade will be doubled after a loss.
    - object — DTO for TP/SL management feature (copier) (PRO)
      - `additionalSlPoints` integer — Additional points to add to the existing SL value. Useful for prop firms.
      - `additionalTpPoints` integer — Additional points to add to the existing TP value. Useful for prop firms.
      - `adjustWithMasterDistance` boolean — Indicates whether the TP/SL should be adjusted based on the distance from the master trade's values, maintaining the same distance on both the master and the slave trades.
      - `blockTradeWithoutTpSl` boolean — If true, trades will not be opened on slave accounts if no TP/SL is available (neither from master nor from configured values). Important for prop firm accounts.
      - `fixedSlInPoints` integer — Fixed Stop Loss value in points. Set to 0 if not used.
      - `fixedTpInPoints` integer — Fixed Take Profit value in points. Set to 0 if not used.
      - `lockTpSl` boolean — If true, the TP/SL values are set once and are never modified afterward.
      - `masterTpSlPriority` boolean — If true, the master account's TP/SL values have priority. The configured fixed TP/SL values are only applied as a fallback when the master has no TP/SL set. If the master later adds TP/SL, the slave accounts will be updated accordingly.
      - `removeSl` boolean — If true, removes the Stop Loss (SL) from the copied positions.
      - `removeTp` boolean — If true, removes the Take Profit (TP) from the copied positions.
      - `symbolsConfiguration` object — Defines TP/SL management per symbol. Symbol configuration has priority over the general configuration.
    - object — DTO for configuring the exit signal override feature (copier)
      - `ignoreForSeconds` integer — Specifies the number of seconds to wait before closing the trade. This is useful if you want the slave account to hold the position until the Take Profit (TP) level is reached. A value of 0 indicates that the exit signal will be ignored indefinitely.
      - `onlyIfTpSlAreSet` boolean, required — Indicates whether the exit signal should only be ignored if both Take Profit (TP) and Stop Loss (SL) levels are set on the trade.
    - object — DTO for daily profit target feature (account)
      - `autoResetIfBalanceIsBelow` boolean — Reset this target if the balance falls below the target. For example, after a withdrawal.
      - `dailyAbsoluteProfitTarget` number — Enter a daily absolute profit target in account currency. If the target is reached, all positions will be closed (unless 'pauseInsteadOfClose' is enabled) and new ones will be blocked until the next day. Set to 0 to deactivate. For example if is set to 1300, the profit target is 1300 in the account currency.
      - `dailyProfitTarget` number — Enter a daily target in %. If the target is reached, all positions will be closed (unless 'pauseInsteadOfClose' is enabled). New positions will not be copied until the next day, and any positions placed outside our system will be closed immediately (if 'pauseInsteadOfClose' is false). Set to 0 to deactivate.
      - `dailyRelativeProfitTarget` number — Enter a daily relative profit target in account currency. If the target is reached, all positions will be closed (unless 'pauseInsteadOfClose' is enabled) and new ones will be blocked until the next day. Set to 0 to deactivate. For example if is set to 300 and account balance is 1000, the profit target is 1300 in the account currency.
      - `pauseInsteadOfClose` boolean — If set to 'true', when the profit target is reached, the copier will pause and stop opening new positions instead of closing all existing positions. The open positions will remain active. If set to 'false', all positions will be closed when the target is reached.
      - `resetOnBalanceChange` boolean — If set to 'false', balance changes (deposits and withdrawals) will NOT trigger a reset of this profit target. If set to 'true', any deposit or withdrawal will reset the profit target reference balance. This option allows you to maintain the profit target calculation even when adding or removing funds from the account.
      - `resetTime` string, date-time — ISO 8601. Set the reset time for the profit target. Only the time is considered, and the date is ignored.
      - `trackByOpenDate` boolean — If set to 'true', the daily profit target will be calculated based on the profit of trades that were OPENED on the current day (instead of the default equity-vs-balance comparison). This is useful for prop firm consistency rules (e.g. Aqua Funded) where a single day's profits (by open date) may not exceed a certain percentage.
    - object — DTO for weekly profit target feature (account)
      - `autoResetIfBalanceIsBelow` boolean — Reset this target if the balance falls below the target. For example, after a withdrawal.
      - `pauseInsteadOfClose` boolean — If set to 'true', when the profit target is reached, the copier will pause and stop opening new positions instead of closing all existing positions. The open positions will remain active. If set to 'false', all positions will be closed when the target is reached.
      - `resetOnBalanceChange` boolean — If set to 'false', balance changes (deposits and withdrawals) will NOT trigger a reset of this profit target. If set to 'true', any deposit or withdrawal will reset the profit target reference balance. This option allows you to maintain the profit target calculation even when adding or removing funds from the account.
      - `weeklyAbsoluteProfitTarget` number — Enter a weekly absolute profit target in account currency. If the target is reached, all positions will be closed (unless 'pauseInsteadOfClose' is enabled) and new ones will be blocked until the next week. Set to 0 to deactivate.
      - `weeklyProfitTarget` number — Enter a weekly target in %. If the target is reached, all positions will be closed (unless 'pauseInsteadOfClose' is enabled). New positions will not be copied until the next week, and any positions placed outside system will be closed immediately (if 'pauseInsteadOfClose' is false). Set to 0 to deactivate.
      - `weeklyRelativeProfitTarget` number — Enter a weekly relative profit target in account currency. If the target is reached, all positions will be closed (unless 'pauseInsteadOfClose' is enabled) and new ones will be blocked until the next week. Set to 0 to deactivate.
    - object — DTO for monthly profit target feature (account)
      - `autoResetIfBalanceIsBelow` boolean — Reset this target if the balance falls below the target. For example, after a withdrawal.
      - `monthlyAbsoluteProfitTarget` number — Enter a monthly absolute profit target in account currency. If the target is reached, all positions will be closed (unless 'pauseInsteadOfClose' is enabled) and new ones will be blocked until the next month. Set to 0 to deactivate.
      - `monthlyProfitTarget` number — Enter a monthly target in %. If the target is reached, all positions will be closed (unless 'pauseInsteadOfClose' is enabled). New positions will not be copied until the next month, and any positions placed outside system will be closed immediately (if 'pauseInsteadOfClose' is false). Set to 0 to deactivate.
      - `monthlyRelativeProfitTarget` number — Enter a monthly relative profit target in account currency. If the target is reached, all positions will be closed (unless 'pauseInsteadOfClose' is enabled) and new ones will be blocked until the next month. Set to 0 to deactivate.
      - `pauseInsteadOfClose` boolean — If set to 'true', when the profit target is reached, the copier will pause and stop opening new positions instead of closing all existing positions. The open positions will remain active. If set to 'false', all positions will be closed when the target is reached.
      - `resetOnBalanceChange` boolean — If set to 'false', balance changes (deposits and withdrawals) will NOT trigger a reset of this profit target. If set to 'true', any deposit or withdrawal will reset the profit target reference balance. This option allows you to maintain the profit target calculation even when adding or removing funds from the account.
    - object — DTO for signal provider feature (project)
      - `accessAllowed` boolean — Indicates whether the current user has access to subscribe to this signal. This is determined based on the signal's visibility settings (isPublic, makeVisibleInMarketplace) and the user's email in the allowCustomers list.
      - `allowCustomers` string[] — If the signal is private, specify the email addresses of customers you wish to grant access. Only users with these listed email addresses will be able to view and subscribe to your private signals.
      - `allowOverrideCopierSetting` boolean — Enable this option if you want followers to customize certain copier settings, such as risk parameters or trade sizes. Allowing overrides gives followers flexibility while using your signals. NOTE: This field can ONLY be set during resource creation and CANNOT be changed later.
      - `allowReselling` boolean — Enable this option to allow subscribers to resell your signal to their own customers. When enabled, your subscribers can act as intermediaries, offering your signals to others while potentially adding their own markup or fees. This creates a reseller network for your signal. NOTE: This field can ONLY be set during resource creation and CANNOT be changed later.
      - `allowedBrokers` string[] — List of allowed broker patterns (regex supported) that followers must use to subscribe to this signal. Use regex patterns to match broker names, for example 'ICMarketsSC-Live.*' will match all ICMarkets SC Live servers. Leave empty to allow all brokers.
      - `allowedOverrideFields` string[] — Fine-grained control over which specific copier settings followers are allowed to override. Specify the field names from CopierDTO (e.g., 'multiplier', 'maxSlippage', 'copyStopLoss'). If this list is null or empty, ALL copier settings can be overridden (when allowOverrideCopierSetting is true). If this list contains specific field names, ONLY those fields can be overridden by followers, and all other settings will use the signal provider's defaults. This provides precise control over follower customization.
      - `billingModel` 'MONTHLY_PROFIT' | 'HIGH_WATERMARK' — Billing model for profit sharing fees. MONTHLY_PROFIT: Charge on all profits each month (default). HIGH_WATERMARK: Charge only on new profits above the previous peak cumulative profit. High watermark ensures followers only pay when their total performance reaches a new high, regardless of deposits/withdrawals. NOTE: This field can ONLY be set during resource creation and CANNOT be changed later.
      - `contact` ContactDTO — Contact information for signal providers
        - `discord` string — Discord username or server invite. This provides a community-oriented communication channel.
        - `email` string — Email contact for inquiries and support.
        - `telegram` string — Telegram username or contact information. This provides an alternative communication channel for support and updates.
        - `website` string — Additional website or social media link for contact purposes.
        - `whatsapp` string — WhatsApp contact information. Include country code (e.g., +1234567890). This provides an additional channel for communication with subscribers.
      - `copier` CopierDTO, required — If you add a copier to a strategy, only the properties 'active', 'multiplier', and the feature 'FeatureCopierFilterDTO' are available. Copying is only allowed from an account; copying from one strategy to another strategy is not allowed.
        - `active` boolean — Controls whether the copier is active or disabled. When false (inactive), the copier is fully disabled/detached and will not copy any new trades and existing open positions are no longer managed. When true, the copier operates normally.
        - `copyMagicNumber` boolean — When enabled, the magic number from the master account's order will be copied to the corresponding trade on the slave account. If the master's magic number is 0 (or absent), no magic number is stamped on the copy — the field is omitted in the outgoing order rather than sent as 0. If `customMagicNumber` is also set to a non-zero value, `customMagicNumber` takes precedence and overrides this behavior.
        - `copyOpenPositions` boolean — When enabled, the copier will also replicate any open positions on the master account to the slave account at the time of activation.
        - `copyOriginalComment` boolean — Enabling this option is not recommended. Comments on the slave account are used for internal tracking purposes, and if missing, open positions may under certain circumstances be incorrectly detected as unmanaged. When enabled, the original order comment from the master account will be copied to the corresponding order on the slave account. If disabled, the default tracking comment will be used instead.
        - `copyStopLoss` boolean — If the copier belongs to a strategy, this setting will be ignored.
        - `copyTakeProfit` boolean — If the copier belongs to a strategy, this setting will be ignored.
        - `created` string, date-time — ISO 8601. Timestamp when this copier was created.
        - `customComment` string — Custom comment to be used for trades. If specified, this comment will be used instead of the default tracking comment.
        - `customMagicNumber` integer — Custom magic number to be stamped on every copied trade on the slave account, overriding the master's magic number regardless of the `copyMagicNumber` setting. Only applies to copied trades — trades opened directly on the slave (manual or by other systems) are not affected. The value 0 is treated as 'not set' (no override is applied, and no magic number is sent on the copy); use null/omit the field for the same effect. To apply a magic number, send any positive integer.
        - `fixMasterBalanceAndEquity` integer — Set the master balance and equity to the specified value. A value of 0 means deactivated. If set to 1000, the lot size calculation for the slave account will use 1000 as the master balance/equity. If the copier belongs to a strategy, this setting will be ignored.
        - `fixSlaveBalanceAndEquity` integer — Set the slave balance and equity to the specified value. A value of 0 means deactivated. If set to 1000, the lot size calculation for the slave account will use 1000 as the slave balance/equity. If the copier belongs to a strategy, this setting will be ignored.
        - `fixedLotSize` number — Set the lot size to a specific value, only applicable when the scaleType is set to '3' (Fixed lot size). If the copier belongs to a strategy, this setting will be ignored.
        - `forceMinTrade` boolean — If set to true, when the calculated lot size is for example 0.005, it will be adjusted to the minimum size of the symbol. If set to false, the trade will not be executed. If the copier belongs to a strategy, this setting will be ignored.
        - `forcePositionLotSize` boolean — Place more trades if max lot size for a specific symbol is reached. Not available for Binance, Bybit, Bitget, BloFin, OKX, TradeStation, Tradovate and Alpaca.
        - `fromAccountAlias` string
        - `fromAccountId` string, uuid — You have to set it during resource creation, after that, it is only read-only
        - `fromStrategyId` string, uuid — You have to set it during resource creation, after that, it is only read-only
        - `fromStrategyName` string
        - `hideComment` boolean — When enabled, the comment will be hidden, leaving the comment field empty. Furthermore, any positions opened manually or by other systems with an empty comment field will be closed to prevent them from remaining open in case of an error. It is recommended to enable this option only if absolutely necessary.
        - `id` string, uuid
        - `ignoreContractSize` boolean — For the lot size calculation, the contract size (lot size) of the symbol will be ignored.
        - `ignoreCurrency` boolean — When enabled, the lot size calculation will ignore currency differences between the master and slave accounts—no conversion will be applied. If false, and the currencies of the master and slave accounts differ, the lot size calculation will include a conversion to account for the currency difference.
        - `martingaleStrategy` boolean — Adjust the lot size based on the Martingale multiplier. If there is a significant difference in balance/equity between the master and slave accounts, the lot size on the slave account may be rounded down. For example, if trades of 0.02 and 0.04 lots are placed on the master account (balance 4000 USD), a standard copier would open 0.01 and 0.01 lots on the slave account (balance 1000 USD - which is incorrect). However, if this option is activated, it will open 0.01 and 0.02 lots. Default is false. If the copier belongs to a strategy, this setting will be ignored.
        - `maxLotSize` number — Sets the maximum lot size for each position. If a position exceeds this size, it will be adjusted to this maximum limit. A value of 0 means deactivated.
        - `maxOpenPositions` integer — Limits the maximum number of open positions the copier can maintain at any given time. If the limit is reached, new positions will be skipped until existing positions are closed. A value of 0 means the feature is deactivated.
        - `maxSlippage` integer — Set the slippage (deviation) in points. A value of 0 means deactivated. For scalping strategies with a close take profit, it's recommended to set the value low, for example, 1-3 points (10 points = 1 pip). A common value is 20. A value of 0 means deactivated (Trade is always executed at actual price - recommended if you use martingale/hedging/grid). If the copier belongs to a strategy, this setting will be ignored.
        - `maximumLot` number — When enabled, the total lot size of all open positions (related to this copier) will not exceed this value, new positions will be skipped until existing positions are closed. A value of 0 means deactivated.
        - `minVolumeSafetySkipThresholdMultiplier` number — Defines the maximum allowed amplification when forceMinTrade would increase the calculated slave lot to the broker minimum. This check only applies when the slave broker's minimum lot size for the symbol is greater than the master broker's minimum lot size. If the amplification (slave min lot / calculated lot) is equal to or greater than this value, the trade is skipped. A value of 0 means deactivated. Example: master min lot 0.01, slave min lot 1.00, calculated lot 0.10 → amplification = 1.00 / 0.10 = 10.0x → skipped if threshold <= 10.0. If both brokers have the same min lot size, this check is not applied.
        - `monitorOnly` boolean — Indicates whether this copier is in monitor-only mode. When true, the copier monitors the source account and manages existing open positions (can close, modify them) but will not copy any new trades. When false, the copier operates in normal copying mode.
        - `multiplier` number — Set the multiplier. Default is 1.000
        - `openRetry` boolean — If enabled, the retry mechanism activates when a broker rejects the request or fails to respond. If set to false, the request is sent only once. For Martingale strategies, it is recommended to activate this option, especially when copying between different brokers with varying market opening/closing times. For strategies with small pip profits and larger lot sizes, it is better to deactivate the retry mechanism. For HFT (High-Frequency Trading), it is also better to deactivate it.
        - `openRetryTimeoutInMinutes` integer — Specifies the total duration (in minutes) during which the retry mechanism will attempt to resend a rejected or failed request. If set to 0, the system will retry indefinitely. Once this duration elapses, no further retry attempts will be made. This setting is applicable only if 'openRetry' is set to true.
        - `reverse` boolean — If enabled, the order direction is reversed. Useful for trading strategies that require inverse operations.
        - `scaleType` ScaleTypeDTO — You have only to set the id e.g 1 for scale by balance. 1: Balance 2: Equity 3: Fixed lot size 4: No scaling. Example: {id:1}
          - `id` integer, required
          - `name` string
        - `skipPendingOrders` boolean — This setting allows traders to choose whether or not to replicate pending orders (orders that have not yet been executed). Skipping pending orders is highly recommended. By default, this option is blocked. If you are an expert trader, please contact us to unlock this option. If the copier belongs to a strategy, this setting will be ignored. For DXtrade is not supported. For TradeLocker, MatchTrader, Binance, Bybit, Bitget, BloFin, OKX, TradeStation, Tradovate and Alpaca, quotes are not in real-time, so small slippage settings are not recommended.
        - `toAccountId` string, uuid — You have to set it during resource creation, after that, it is only read-only
        - `toStrategyId` string, uuid — You have to set it during resource creation, after that, it is only read-only
      - `coverFollowerCosts` boolean — When enabled, the follower accounts' MetaCopier subscription fees will be charged to this signal provider's project instead, allowing followers to use MetaCopier for free. This applies to all accounts that follow your signal (subject to 'maxCoveredAccountsPerProject'). Note: This only covers the base MetaCopier subscription cost, not signal provider performance fees or other charges. NOTE: This flag is read-only via this endpoint; activation/deactivation is performed by MetaCopier (contact support to enable).
      - `customerId` integer — The customer ID of the signal provider owner.
      - `description` string — A short summary of your trading strategy or approach. Use this field to give potential followers an idea of what to expect from your signals, including any specific methods, goals, or markets you specialize in.
      - `detailedDescription` string — A comprehensive description of how your trading strategy works, including entry/exit criteria, risk management approach, trading timeframes, market conditions, and any other important details that help followers understand your methodology. Use this field to provide in-depth information about your strategy.
      - `isPublic` boolean — Mark this setting if you want your signal provider profile to be visible and searchable by other users. If set to private, only users with direct access will be able to view and follow your signals. NOTE: This field can ONLY be set during resource creation and CANNOT be changed later.
      - `logo` string — A square logo image for the signal provider profile, encoded as a Base64 string. The image must be square and the Base64 string cannot exceed 256 KB in size.
      - `makeHistoryPublic` boolean — Enable this option to make your trading history publicly visible to potential followers. When enabled, users can view your historical trades before subscribing. This transparency can help build trust and attract more followers.
      - `makeVisibleInMarketplace` boolean — If the signal is not public, enable this option to make your signal visible in the marketplace for discovery. This allows users to find your signal through the marketplace while maintaining controlled access.
      - `maxCoveredAccountsPerProject` integer — Maximum number of follower accounts per follower project whose MetaCopier costs the signal provider will cover. Only applies when 'coverFollowerCosts' is enabled (otherwise this value is silently ignored). If a follower project connects more accounts than this limit to the same signal, only the first accounts (by follower-feature creation date ascending) up to the cap will be covered; the remaining accounts will be billed to the follower's project as usual. Within a billing month, a covered slot remains assigned to its earliest-created feature even if that feature is deleted mid-month - this prevents gaming the cap by deleting and recreating features. Use 0 to cover all follower accounts without a per-project cap. This field can be updated at any time; changes take effect immediately for the current billing period.
      - `minimumBalance` integer — The minimum account balance required for followers to use this signal, specified in the currency of the signal provider's account. If a follower's account uses a different currency, this minimum will be automatically converted to their account currency using the current exchange rate. Set this to ensure followers have adequate capital to properly follow your trading strategy and manage risk. Leave null or 0 for no minimum requirement.
      - `monthlySubscriptionFee` number — The amount charged to followers on a monthly basis for access to your signals. Set a competitive price based on the value and insights you provide, or leave it 0 if you want to offer free access. NOTE: This field can ONLY be set during resource creation and CANNOT be changed later.
      - `name` string, required — The display name for your signal provider profile. Choose a name that reflects your trading style or focus, so followers can easily recognize and identify your signals.
      - `profileLink` string — Optional link to your trading performance profile on platforms like MyFXBook, FXBlue, or ShowMyTrades. This allows potential followers to verify your track record and trading history.
      - `profitSharingFee` number — An optional fee based on the profits generated by followers using your signals. This allows you to earn a percentage of your followers' profits, providing an incentive tied directly to performance. NOTE: This field can ONLY be set during resource creation and CANNOT be changed later.
      - `subscribers` string[] — List of customers subscribed to this signal
      - `useMetaCopierAsPaymentProvider` boolean — Select this option to have MetaCopier manage payments on your behalf. When enabled, MetaCopier collects payments from followers, either through a subscription fee or profit-sharing arrangement, and transfers the funds to you. Please note that Metacopier retains a 30% service fee from each transaction.
      - `verified` boolean — Indicates whether this signal provider has been verified by MetaCopier. A verified signal provider means MetaCopier has personally reviewed the provider, analyzed the signals, and confirmed that the provider follows good trading practices.
    - object — DTO for signal follower feature (account)
      - `active` boolean — Specifies if the copier is active.
      - `copier` CopierDTO — If you add a copier to a strategy, only the properties 'active', 'multiplier', and the feature 'FeatureCopierFilterDTO' are available. Copying is only allowed from an account; copying from one strategy to another strategy is not allowed.
        - `active` boolean — Controls whether the copier is active or disabled. When false (inactive), the copier is fully disabled/detached and will not copy any new trades and existing open positions are no longer managed. When true, the copier operates normally.
        - `copyMagicNumber` boolean — When enabled, the magic number from the master account's order will be copied to the corresponding trade on the slave account. If the master's magic number is 0 (or absent), no magic number is stamped on the copy — the field is omitted in the outgoing order rather than sent as 0. If `customMagicNumber` is also set to a non-zero value, `customMagicNumber` takes precedence and overrides this behavior.
        - `copyOpenPositions` boolean — When enabled, the copier will also replicate any open positions on the master account to the slave account at the time of activation.
        - `copyOriginalComment` boolean — Enabling this option is not recommended. Comments on the slave account are used for internal tracking purposes, and if missing, open positions may under certain circumstances be incorrectly detected as unmanaged. When enabled, the original order comment from the master account will be copied to the corresponding order on the slave account. If disabled, the default tracking comment will be used instead.
        - `copyStopLoss` boolean — If the copier belongs to a strategy, this setting will be ignored.
        - `copyTakeProfit` boolean — If the copier belongs to a strategy, this setting will be ignored.
        - `created` string, date-time — ISO 8601. Timestamp when this copier was created.
        - `customComment` string — Custom comment to be used for trades. If specified, this comment will be used instead of the default tracking comment.
        - `customMagicNumber` integer — Custom magic number to be stamped on every copied trade on the slave account, overriding the master's magic number regardless of the `copyMagicNumber` setting. Only applies to copied trades — trades opened directly on the slave (manual or by other systems) are not affected. The value 0 is treated as 'not set' (no override is applied, and no magic number is sent on the copy); use null/omit the field for the same effect. To apply a magic number, send any positive integer.
        - `fixMasterBalanceAndEquity` integer — Set the master balance and equity to the specified value. A value of 0 means deactivated. If set to 1000, the lot size calculation for the slave account will use 1000 as the master balance/equity. If the copier belongs to a strategy, this setting will be ignored.
        - `fixSlaveBalanceAndEquity` integer — Set the slave balance and equity to the specified value. A value of 0 means deactivated. If set to 1000, the lot size calculation for the slave account will use 1000 as the slave balance/equity. If the copier belongs to a strategy, this setting will be ignored.
        - `fixedLotSize` number — Set the lot size to a specific value, only applicable when the scaleType is set to '3' (Fixed lot size). If the copier belongs to a strategy, this setting will be ignored.
        - `forceMinTrade` boolean — If set to true, when the calculated lot size is for example 0.005, it will be adjusted to the minimum size of the symbol. If set to false, the trade will not be executed. If the copier belongs to a strategy, this setting will be ignored.
        - `forcePositionLotSize` boolean — Place more trades if max lot size for a specific symbol is reached. Not available for Binance, Bybit, Bitget, BloFin, OKX, TradeStation, Tradovate and Alpaca.
        - `fromAccountAlias` string
        - `fromAccountId` string, uuid — You have to set it during resource creation, after that, it is only read-only
        - `fromStrategyId` string, uuid — You have to set it during resource creation, after that, it is only read-only
        - `fromStrategyName` string
        - `hideComment` boolean — When enabled, the comment will be hidden, leaving the comment field empty. Furthermore, any positions opened manually or by other systems with an empty comment field will be closed to prevent them from remaining open in case of an error. It is recommended to enable this option only if absolutely necessary.
        - `id` string, uuid
        - `ignoreContractSize` boolean — For the lot size calculation, the contract size (lot size) of the symbol will be ignored.
        - `ignoreCurrency` boolean — When enabled, the lot size calculation will ignore currency differences between the master and slave accounts—no conversion will be applied. If false, and the currencies of the master and slave accounts differ, the lot size calculation will include a conversion to account for the currency difference.
        - `martingaleStrategy` boolean — Adjust the lot size based on the Martingale multiplier. If there is a significant difference in balance/equity between the master and slave accounts, the lot size on the slave account may be rounded down. For example, if trades of 0.02 and 0.04 lots are placed on the master account (balance 4000 USD), a standard copier would open 0.01 and 0.01 lots on the slave account (balance 1000 USD - which is incorrect). However, if this option is activated, it will open 0.01 and 0.02 lots. Default is false. If the copier belongs to a strategy, this setting will be ignored.
        - `maxLotSize` number — Sets the maximum lot size for each position. If a position exceeds this size, it will be adjusted to this maximum limit. A value of 0 means deactivated.
        - `maxOpenPositions` integer — Limits the maximum number of open positions the copier can maintain at any given time. If the limit is reached, new positions will be skipped until existing positions are closed. A value of 0 means the feature is deactivated.
        - `maxSlippage` integer — Set the slippage (deviation) in points. A value of 0 means deactivated. For scalping strategies with a close take profit, it's recommended to set the value low, for example, 1-3 points (10 points = 1 pip). A common value is 20. A value of 0 means deactivated (Trade is always executed at actual price - recommended if you use martingale/hedging/grid). If the copier belongs to a strategy, this setting will be ignored.
        - `maximumLot` number — When enabled, the total lot size of all open positions (related to this copier) will not exceed this value, new positions will be skipped until existing positions are closed. A value of 0 means deactivated.
        - `minVolumeSafetySkipThresholdMultiplier` number — Defines the maximum allowed amplification when forceMinTrade would increase the calculated slave lot to the broker minimum. This check only applies when the slave broker's minimum lot size for the symbol is greater than the master broker's minimum lot size. If the amplification (slave min lot / calculated lot) is equal to or greater than this value, the trade is skipped. A value of 0 means deactivated. Example: master min lot 0.01, slave min lot 1.00, calculated lot 0.10 → amplification = 1.00 / 0.10 = 10.0x → skipped if threshold <= 10.0. If both brokers have the same min lot size, this check is not applied.
        - `monitorOnly` boolean — Indicates whether this copier is in monitor-only mode. When true, the copier monitors the source account and manages existing open positions (can close, modify them) but will not copy any new trades. When false, the copier operates in normal copying mode.
        - `multiplier` number — Set the multiplier. Default is 1.000
        - `openRetry` boolean — If enabled, the retry mechanism activates when a broker rejects the request or fails to respond. If set to false, the request is sent only once. For Martingale strategies, it is recommended to activate this option, especially when copying between different brokers with varying market opening/closing times. For strategies with small pip profits and larger lot sizes, it is better to deactivate the retry mechanism. For HFT (High-Frequency Trading), it is also better to deactivate it.
        - `openRetryTimeoutInMinutes` integer — Specifies the total duration (in minutes) during which the retry mechanism will attempt to resend a rejected or failed request. If set to 0, the system will retry indefinitely. Once this duration elapses, no further retry attempts will be made. This setting is applicable only if 'openRetry' is set to true.
        - `reverse` boolean — If enabled, the order direction is reversed. Useful for trading strategies that require inverse operations.
        - `scaleType` ScaleTypeDTO — You have only to set the id e.g 1 for scale by balance. 1: Balance 2: Equity 3: Fixed lot size 4: No scaling. Example: {id:1}
          - `id` integer, required
          - `name` string
        - `skipPendingOrders` boolean — This setting allows traders to choose whether or not to replicate pending orders (orders that have not yet been executed). Skipping pending orders is highly recommended. By default, this option is blocked. If you are an expert trader, please contact us to unlock this option. If the copier belongs to a strategy, this setting will be ignored. For DXtrade is not supported. For TradeLocker, MatchTrader, Binance, Bybit, Bitget, BloFin, OKX, TradeStation, Tradovate and Alpaca, quotes are not in real-time, so small slippage settings are not recommended.
        - `toAccountId` string, uuid — You have to set it during resource creation, after that, it is only read-only
        - `toStrategyId` string, uuid — You have to set it during resource creation, after that, it is only read-only
      - `monitorOnly` boolean — Indicates whether this copier is in monitor-only mode. When true, the copier monitors the source account and manages existing open positions (can close, modify them) but will not copy any new trades. When false, the copier operates in normal copying mode.
      - `signalProviderAvailable` boolean — Indicates that the signal provider is available to the follower.
      - `signalProviderId` string, uuid, required — Unique identifier (id of FeatureSignalProviderDTO) for the associated signal provider that the follower is linked to.
      - `signalProviderName` string — Name of the signal provider.
      - `suspended` boolean — Specifies whether the follower is suspended (the copier is deactivated). This setting can only be changed by the signal provider and cannot be overridden by the follower.
    - object — DTO for fallback setting feature (account and project). If applied to a project, the fallback behavior will be applied to all accounts within that project.
      - `allowedRegions` RegionDTO[] — A list of allowed regions to which the account can be moved if an error or issue occurs. When an account is moved, another IP address will be assigned to it. If the list is empty, all regions are allowed.
        - `id` integer, required
        - `name` string
      - `noFallback` boolean — Indicates whether fallback behavior is disabled. If set to true, the account will not be moved to another region in case of errors or issues. If fallback is enabled, another IP address will be assigned to the account when it is moved.
    - object — DTO for defining a my home ip feature (project) (PRO)
      - `host` string, required — Your IP address or DNS hostname.
      - `httpPort` integer — The port number for HTTP proxy.
      - `password` string, required — The password for SOCKS/HTTP authentication.
      - `socksPort` integer — The port number for SOCKS proxy.
      - `username` string, required — The username for SOCKS/HTTP authentication.
    - object — DTO for max open positions feature (copier/account)
      - `maxOpenPositions` integer — Specifies the global maximum number of open positions allowed across all symbols. If this limit is reached, no new positions will be opened until existing positions are closed. This setting will override the copier's multiplier. A value of 0 disables this feature, allowing unlimited open positions.
      - `maxPositionsInTimeWindow` integer — Maximum number of positions allowed to be opened within the specified time window. For example, if set to 1 with a 120-second time window, only 1 position can be opened every 2 minutes. If multiple orders arrive simultaneously, only the first N orders (based on this value) will be taken, and the rest will be skipped until the time window expires. A value of 0 disables this time-based throttling. Works at both copier and account levels.
      - `symbolsConfiguration` object — Defines the maximum number of open positions per symbol. The total number of open positions across all symbols is subject to the general maxOpenPositions limit.
      - `timeWindowSeconds` integer — Time window in seconds for the position throttling. Works together with maxPositionsInTimeWindow to limit how many positions can be opened in a given time period. For example, with maxPositionsInTimeWindow=1 and timeWindowSeconds=120, only 1 position can be opened every 2 minutes. Works at both copier and account levels.
    - object — DTO for max lot size feature (copier)
      - `checkMasterLotSize` boolean — If true, the max lot size check will compare against the master account's original position lot size instead of the calculated lot size. Only active when skipIfExceedsMax is true.
      - `maxLotSize` number — Sets the global max lot size for each position for all symbols. If a position exceeds this size, it will be adjusted to this max limit. This setting will override the copier's max lot size. A value of 0 means deactivated.
      - `skipIfExceedsMax` boolean — If true, positions that exceed the max lot size will be skipped instead of being limited to the max lot size.
      - `symbolsConfiguration` object — Defines the max lot size per symbol.
    - object — DTO for multiplier feature (copier)
      - `fixMasterBalanceAndEquity` integer — Set the master balance and equity to the specified value for lot size calculation. A value of 0 means deactivated. If set to 1000, the lot size calculation will use 1000 as the master balance/equity. This allows for flexible lot size calculations per symbol within the multiplier feature.
      - `fixSlaveBalanceAndEquity` integer — Set the slave balance and equity to the specified value for lot size calculation. A value of 0 means deactivated. If set to 1000, the lot size calculation will use 1000 as the slave balance/equity. This allows for flexible lot size calculations per symbol within the multiplier feature.
      - `fixedLotSize` number — Set the lot size to a specific value, only applicable when the scaleType is set to '3' (Fixed lot size).
      - `multiplier` number — Specifies the global multiplier applied to all symbols. This setting will override the copier's multiplier.
      - `scaleType` ScaleTypeDTO — You have only to set the id e.g 1 for scale by balance. 1: Balance 2: Equity 3: Fixed lot size 4: No scaling. Example: {id:1}
        - `id` integer, required
        - `name` string
      - `symbolsConfiguration` object — Defines the multiplier for each symbol.
    - object — DTO for maximum lot feature (copier)
      - `maximumLot` number — When enabled, the total lot size of all open positions (related to this copier) will not exceed this value, new positions will be skipped until existing positions are closed. This setting will override the copier's maximum lot. A value of 0 means deactivated.
      - `symbolsConfiguration` object — Defines the maximum lot size per symbol.
    - object — DTO for the break-even feature (copier/account) (PRO)
      - `reverse` boolean — If true and no reverseTriggerInPoints/reverseStopLossInPoints are set, the break-even logic operates in reverse using triggerInPoints/stopLossInPoints. If reverseTriggerInPoints/reverseStopLossInPoints are set, this field is ignored and both normal and reverse break-even run simultaneously.
      - `reverseStopLossInPoints` integer — Defines the distance in points from the entry price at which the take profit will be placed after the reverse break-even is triggered.
      - `reverseTriggerInPoints` integer — Specifies the number of points the trade must move against the position (in loss) to trigger the reverse break-even logic. When set together with reverseStopLossInPoints, the reverse break-even runs simultaneously with the normal break-even. A value of 0 disables the reverse trigger.
      - `stopLossInPoints` integer — Defines the distance in points from the entry price at which the stop loss will be placed after the break-even logic is triggered.
      - `symbolsConfiguration` object — Defines the break-even per symbol.
      - `triggerInPoints` integer — Specifies the number of points required for the trade to trigger the break-even logic. Once the profit reaches this value, the stop loss will be adjusted. A value of 0 disables the trigger.
    - object — DTO for the trailing stop feature (copier/account) (PRO)
      - `activationThresholdPercentage` number, double — Defines the activation threshold as a percentage of the take profit. For example, if TP is 1000 points and this is set to 50, trailing stop activates at 500 points profit. A value of 0 means this activation method is deactivated. Requires TakeProfit to be set on the trade. If both activationThresholdPoints and activationThresholdPercentage are active (>0), the maximum (most conservative) value will be used.
      - `activationThresholdPoints` integer — Defines the activation threshold in points. Trailing stop starts only when profit reaches this value. A value of 0 means this activation method is deactivated. If both activationThresholdPoints and activationThresholdPercentage are active (>0), the maximum (most conservative) value will be used.
      - `initialStopLossPoints` integer — Defines the initial stop loss distance in points from the entry price when the trade is opened. A value of 0 means no stop loss is applied initially.
      - `minimumDistancePoints` integer — Defines the minimum distance in points from the current price to the stop loss. Prevents the stop-loss from moving too close.
      - `symbolsConfiguration` object — Defines the trailing stop configuration per symbol.
      - `trailingStepPercentage` number, double — Defines the step distance as a percentage of the take profit. For example, if TP is 1000 points and this is set to 10, the trailing step equals 100 points. A value of 0 means this method is deactivated. Requires TakeProfit to be set on the trade. If both trailingStepPoints and trailingStepPercentage are active (>0), the maximum (most conservative) value will be used.
      - `trailingStepPoints` integer — Defines the step distance in points at which the trailing stop will move as the trade progresses. A value of 0 means this method is deactivated. If both trailingStepPoints and trailingStepPercentage are active (>0), the maximum (most conservative) value will be used.
    - object — DTO for the trading windows feature (copier/account) (PRO)
      - `closePositionsAtWindowEnd` boolean — Indicates whether to close all open positions at the end of the trading window.
      - `symbolsConfiguration` object — Defines the trading windows configuration per symbol.
      - `temporarilySkipUntilNextWindow` boolean — Indicates whether trades outside the defined windows are temporarily skipped until the next trading window starts. This option is only applicable to copiers.
      - `tradingWindows` TradingWindowDTO[], required — List of trading windows defined by the user.
        - `activeDays` integer[] — Specific days when this trading window is active, represented as integers (e.g., 1 for Monday, 7 for Sunday).
        - `endTime` string, date-time, required — End time of the trading window. Note: The date component is ignored.
        - `startTime` string, date-time, required — Start time of the trading window. Note: The date component is ignored.
    - object — DTO to activate the hft mode feature (account) (PRO)
      - `activateHftMode` boolean — Activate the hft mode. This property is always set to true.
    - object — DTO to activate the socket feature (account) (PRO)
      - `activateSocket` boolean — Activate the socket. This property is always set to true.
    - object — DTO for approval feature (copier) (PRO)
      - `activateApproval` boolean — Activate the approval. This property is always set to true.
    - object — DTO for the Delayed Execution feature (copier) (PRO)
      - `maxDelayClose` number — Maximum delay in seconds (with millisecond resolution) before closing a trade. Maximum allowed value is 3600 seconds (60 minutes).
      - `maxDelayOpen` number — Maximum delay in seconds (with millisecond resolution) before opening a trade. Maximum allowed value is 3600 seconds (60 minutes).
      - `minDelayClose` number — Minimum delay in seconds (with millisecond resolution) before closing a trade. A value of 0 means no delay.
      - `minDelayOpen` number — Minimum delay in seconds (with millisecond resolution) before opening a trade. A value of 0 means no delay.
      - `symbolsConfiguration` object — Defines the delay execution per symbol.
    - object — DTO for defining a maintenance window (project)
      - `accountType` AccountTypeDTO — Select allowed account types for the white-label solution. If not specified, all account types are allowed.
        - `id` integer, required
        - `name` string
      - `affectedAccountIds` string[] — List of account IDs that were affected by this maintenance window. Used to restart/resume only these accounts when the window ends.
      - `affectedCopierStates` object — Map of copier IDs to their original states before maintenance. Used to restore copiers to their exact previous state.
      - `broker` string — Is only applied to a specific broker, for example, 'ICMarkets.*' (case non sensitive). For all brokers, you can enter '.*' or null (this is a regex)
      - `closePositionStrategy` 'DO_NOT_CLOSE' | 'CLOSE_ALL' | 'CLOSE_ALL_IF_PROFIT' — Strategy for closing positions during maintenance window. Default is DO_NOT_CLOSE.
      - `enabled` boolean — Whether the maintenance window is enabled. Default is true.
      - `endTime` string, date-time, required — End time of the maintenance window.
      - `entryActionsExecuted` boolean — Tracks whether entry actions (close positions, stop accounts/pause copiers) have been executed for this maintenance window instance.
      - `maintenanceAction` 'STOP_ACCOUNTS' | 'PAUSE_COPIERS' — Action to perform during maintenance window. Default is PAUSE_COPIERS.
      - `positionsClosedForAccounts` string[] — Set of account IDs for which positions have already been closed during this maintenance window.
      - `startTime` string, date-time, required — Start time of the maintenance window.
    - object — DTO for white-label feature (project)
      - `accountPriceDedicated` number — Price per day (USD) for an account in a dedicated project
      - `accountPriceDedicatedMin` number — Minimum daily price in USD for an account in a dedicated project after volume discount
      - `accountPriceShared` number — Price per day (USD) for an account in a shared project
      - `accountTypes` AccountTypeDTO[] — Select allowed account types for the white-label solution. If not specified, all account types are allowed.
        - `id` integer, required
        - `name` string
      - `allowedEmailDomains` string[] — Comma-separated list of email domains (without @) allowed to register/access this white-label platform. Only enforced when restrictRegistration is true. Users with emails matching any listed domain are allowed.
      - `allowedRegions` RegionDTO[] — Select allowed regions for the white-label solution. If empty or not specified, all regions are allowed.
        - `id` integer, required
        - `name` string
      - `allowedRegistrationEmails` string[] — Comma-separated list of email addresses allowed to register/access this white-label platform. Only enforced when restrictRegistration is true.
      - `authPageBackground` string — Hex color code (e.g. #1C1917) for the authentication page background.
      - `cTraderClientId` string — cTrader Client ID used to enable support for cTrader accounts
      - `cTraderClientSecret` string — cTrader Client Secret used to enable support for cTrader accounts
      - `cryptoEnabledCoins` string[] — Public copy of the tenant's coin allow-list.
      - `cryptoNativeEnabled` boolean — Enable MetaCopier-native crypto payments for this white-label.
      - `cryptoNativeReady` boolean — True iff MCC is fully configured for this tenant (public flag).
      - `cryptoWallet` CryptoWalletConfigDTO — Per-chain wallet configuration for MetaCopier-native crypto
        - `btcXpub` string — Bitcoin zpub (native segwit) used to derive BTC receive addresses
        - `custodyMode` string — XPUB_ONLY (default) lets us only derive addresses. ENCRYPTED_SEED lets the platform sweeper move funds; not enabled in v1.
        - `enabledCoins` string[] — Coins offered to end-users. Default: all coins for which an xpub is set.
        - `encryptedSeed` string — AES-GCM ciphertext of the BIP39 mnemonic (advanced mode only).
        - `ethXpub` string — Ethereum xpub used to derive ETH / USDT-ERC20 / USDC-ERC20 receive addresses
        - `sweepDestinationByNetwork` object — Destination cold address per chain used by the platform sweeper (advanced mode only).
        - `tronXpub` string — TRON xpub used to derive USDT/USDC TRC20 receive addresses
      - `customCss` string — Custom CSS that will be injected into the white-label frontend. Use this to customize styling beyond the built-in theme options.
      - `customJavascript` string — Custom JavaScript that will be injected into the white-label frontend. Use this to integrate third-party tools like chatbots, analytics, or tracking scripts.
      - `disableAddingCopiers` boolean — Disable the ability to add copiers. When enabled, users cannot add new copiers.
      - `disableDedicatedIpPurchase` boolean — Disable the purchase of dedicated IPs. When enabled, users cannot buy dedicated IPs.
      - `disableDedicatedProjects` boolean — Disable the creation of dedicated projects. When enabled, users can only create shared projects.
      - `disableInvoicing` boolean — Disable automatic invoice generation. When enabled, the white-label owner handles invoicing externally.
      - `disableMarketplaceSubscription` boolean — Disable the Subscribe button on the marketplace. When enabled, users cannot subscribe to signals from the marketplace.
      - `enableTelegramSignals` boolean — Enable the Telegram Signals feature for this white-label. When enabled, users can create Telegram connector accounts.
      - `enableTradingViewWebhook` boolean — Enable the TradingView Webhook feature for this white-label. When enabled, users can create TradingView webhook accounts. Requires DNS alias and ingress configuration - contact support to activate.
      - `featurePrice` number — Price per day (USD) for feature PRO
      - `hideBrokerInSignalProvider` boolean — Hide broker information in signal provider listings. When enabled, broker details are not displayed.
      - `hideCurrentBalanceInSignalProvider` boolean — Hide current balance in signal provider listings and detail pages. When enabled, balance and equity values are not displayed.
      - `homeLink` string — Optional URL that adds a 'Home' menu item to the navigation. When set, clicking the logo also navigates to this URL.
      - `layout` string — Select a layout for the white-label solution.
      - `logo` string, required — Publicly reachable URL (PNG, SVG, etc.) or a CDN path for the logo displayed in emails and the white-label UI.
      - `manualCollection` boolean — Enable per-customer manual collection. When true, invoices are generated with the real amount in OPEN status, Stripe auto-charging is suppressed, and the white-label owner collects payments externally and marks invoices as paid in the dashboard. Requires disableInvoicing=true.
      - `manualCollectionPaymentInstructions` string — Free-text payment instructions shown to the end customer in the manual-collection statement email (bank account / IBAN, crypto wallet, in-person pickup, etc.). Required when sendManualCollectionEmail=true.
      - `maxAccountsPerProject` integer — Maximum number of accounts allowed per project. Set to 0 to use platform default.
      - `maxProjectsPerUser` integer — Maximum number of projects a user can create. Set to 0 to use platform default.
      - `name` string, required — Customer-facing brand or business name, shown as the sender name in emails
      - `pro` boolean — Whether the white-label has PRO enabled
      - `publicMarketplace` boolean — Marketplace visibility. When true (default), the marketplace is publicly visible to non-authenticated users. When false, only authenticated users can access the marketplace.
      - `registrationLink` string — URL to redirect restricted users to a registration/signup page. Required when restrictRegistration is enabled.
      - `restrictRegistration` boolean — When true, only email addresses listed in allowedRegistrationEmails (or matching allowedEmailDomains) can access this white-label platform.
      - `sendManualCollectionEmail` boolean — When manualCollection=true, send a branded statement email to the end customer containing the outstanding amount and the payment instructions configured by the white-label owner. Requires manualCollection=true and non-empty manualCollectionPaymentInstructions.
      - `showScoreOnMarketplace` boolean — Show signal score on the marketplace. When enabled, signal scores are visible to users on the white-label marketplace.
      - `signalProviderAlias` string — Custom label to replace 'Signal Provider' / 'Signal' terminology in the white-label UI. For example, set to 'EA Expert' or 'Strategy' if the word 'Signal' cannot be used for regulatory reasons. When null or empty, the default 'Signal' terminology is used.
      - `stripeApiKey` string, required — Stripe secret API key (sk_live_... or sk_test_...) used to save customers, validate addresses, and handle billing. Note: Using sk_test_ keys will automatically enable disableInvoicing.
      - `subdomain` string, required — Sub-domain used for the white-label solution. Root domains are not allowed.
      - `supportLink` string — Optional URL that adds a 'Support' menu item to the navigation, linking to your help desk or support page.
      - `theme` string — Select a theme for the white-label solution.
      - `tradeStationClientId` string — TradeStation OAuth Client ID used to enable support for TradeStation accounts. When set together with the secret, TradeStation becomes an allowed account type for this white-label.
      - `tradeStationClientSecret` string — TradeStation OAuth Client Secret used to enable support for TradeStation accounts. When set together with the client ID, TradeStation becomes an allowed account type for this white-label.
      - `tradovateClientId` string — Tradovate OAuth Client ID used to enable support for Tradovate accounts. When set together with the secret, Tradovate becomes an allowed account type for this white-label.
      - `tradovateClientSecret` string — Tradovate OAuth Client Secret used to enable support for Tradovate accounts. When set together with the client ID, Tradovate becomes an allowed account type for this white-label.
    - object — DTO for configuring the minimum holding time feature (copier)
      - `minimumHoldSeconds` integer — Minimum number of seconds a copied trade must stay open before the exit signal from the master account can be executed on the slave account. Example: if this value is set to 30 and the master opens and closes a position after 2 seconds, the slave will keep the position open for the full 30 seconds. 0 means deactivated
      - `symbolsConfiguration` object — Defines the minimum holding time for each symbol.
    - object — DTO for skip position feature (copier)
      - `ifSlNotDefined` boolean — If set to true and the master position does not define a Stop Loss (SL), the copier will skip copying the position to the slave account. This can be used to avoid trades without predefined risk management.
      - `ifTpNotDefined` boolean — If set to true and the master position does not define a Take Profit (TP), the copier will skip copying the position to the slave account.
      - `logicOperatorTpSl` 'AND' | 'OR' | 'AND' | 'OR' — Specifies how the copier should evaluate SL and TP conditions. If set to AND, both conditions must be met to skip the position. If set to OR, either condition is enough to skip.
      - `symbolsConfiguration` object — Defines skip position per symbol. Symbol configuration has priority over the general configuration.
    - object — DTO for risk per trade feature (copier/account) (PRO)
      - `absoluteRisk` number — Defines the risk per trade as a fixed absolute value (e.g., 50 USD). If set to 0, this mode is disabled.
      - `aggregateRiskPerSymbol` boolean — If enabled, aggregates risk calculation across all open positions for the same symbol. When true and multiple positions exist for a symbol (e.g., XAUUSD), the total risk will be calculated by summing all open positions for that symbol before checking against the risk limits. When false, each position is evaluated independently.
      - `autoCloseOnRiskThresholdReached` boolean — Only applies when 'correctLotSizeBasedOnTheStopLoss' is enabled. If set to true (default), the system will automatically close the position when the defined risk threshold is reached, acting as a hard risk limit supervisor. If set to false, the system will NOT auto-close the position when the risk threshold is reached, allowing the stop loss to execute naturally. Use this option when you want precise lot sizing based on SL but prefer the trade to hit the SL rather than being closed by the risk supervisor. Note: If the position has no stop loss set, the system will still auto-close regardless of this setting.
      - `correctLotSizeBasedOnTheStopLoss` boolean — If enabled, adjusts the lot size automatically based on the distance to the stop loss (SL). Ensures that the actual monetary risk per trade aligns with the configured percentage or absolute risk. This calculation only applies when a stop loss is defined on the master trade. Only valid for copier.
      - `relativeRisk` number — Defines the risk per trade as a percentage of the account balance. If set to 0, this mode is disabled.
      - `symbolsConfiguration` object — Defines risk per trader per symbol. Symbol configuration has priority over the general configuration.
      - `tickValue` number — Monetary value of one point (smallest price increment) per 1.0 lot, already expressed in the account currency.
      - `tickValueAutomaticAdjustement` boolean — Enable automatic detection of the point-value in account currency from live trades. When true, the system overrides `tickValue` with the detected value at runtime.
    - object — DTO for live delay feature (copier)
      - `resetIntervalMinutes` integer — Time interval in minutes after which the skip counter resets. The timer starts from the last time an order was opened. For example, if set to 120, the skip counter will reset every 120 minutes from the last order. A value of 0 disables time-based reset (the counter will only reset via resetOnPositionClose if enabled). Maximum value is 1440 minutes (24 hours).
      - `resetOnPositionClose` boolean — If true, the skip counter resets automatically when a copied position closes. For example, if skipOrdersCount is 1, order 1 is skipped, order 2 is copied, and when order 2 closes, the counter resets so the next order will be skipped again. This can be used with resetIntervalMinutes=0 to disable time-based reset and only reset on position close.
      - `skipOrdersCount` integer — Number of orders to skip from the master account. For example, if set to 3, the first 3 orders will be skipped and only subsequent orders will be copied. A value of 0 means the feature is deactivated (no live delay).
      - `symbolsConfiguration` object — Defines the live delay configuration per symbol. Each symbol can have its own skip count and reset interval.
      - `trackByDirection` boolean — If true, BUY and SELL orders are tracked separately. For example, if skipOrdersCount is 3, the first 3 BUY orders AND the first 3 SELL orders will be skipped (6 total). If false (default), direction is ignored and the first 3 orders are skipped regardless of direction.
    - object — DTO for order type filter feature (copier)
      - `allowedOrderTypes` string[] — List of order types to copy. Only orders matching these types will be copied. If the list is empty or null, all order types will be copied. Available types: Buy, Sell, BuyLimit, SellLimit, BuyStop, SellStop.
    - object — DTO for the Data Collector feature (account) (PRO)
      - `activateDataCollector` boolean, required — Activate the data collector feature to record equity, profit, and balance time series data.
      - `collectionIntervalSeconds` integer, required — Collection interval in seconds. Defines how frequently the system checks and records equity, profit, and balance data. Note: Data is only saved when values have changed from the previous record to optimize storage and reduce redundancy.
      - `normalizeValues` boolean, required — If true, normalizes all values when fetching data via REST endpoint to hide real account size. Uses the first record's balance (or equity if balance not recorded, or floating PnL if neither recorded) as reference point and scales it to 100,000. The same scaling factor is then applied to ALL records, preserving relative performance and growth patterns while obscuring actual account values. Example: if first balance is 50,000, all values are doubled (factor 2.0), making first balance = 100,000, but subsequent balances scale proportionally. Data is always stored as-is without normalization. Use this feature when sharing performance data without exposing real capital.
      - `recordBalance` boolean, required — If true, records account balance (closed positions only). Balance represents the account value based on closed trades only.
      - `recordEquity` boolean, required — If true, records account equity (including floating PnL). Equity represents the current account value including open positions.
      - `recordFloatingPnL` boolean, required — If true, records floating PnL separately. This is the unrealized profit/loss from currently open positions.
      - `retentionDays` integer — Data retention period in days. This is a fixed system value and cannot be modified by users.
    - object — DTO for the Masaniello money management feature (copier) (PRO)
      - `assumedPointRisk` number — Expected point movement used to convert money stakes to lot sizes. Represents the typical price movement in points (MetaTrader minimal price change) for position sizing calculations. Larger values = more conservative lot sizes (smaller positions for the same stake).
      - `autoResetOnSeriesComplete` boolean — Reset after completing all events.
      - `autoTuneBoundsValid` boolean
      - `bankrollBase` 'BALANCE' | 'EQUITY' | 'FREE_MARGIN', required — Defines the base used for bankroll percentage: BALANCE, EQUITY, FREE_MARGIN.
      - `bankrollPercentage` number — Percentage of account base (balance/equity/free margin) used as bankroll for one series.
      - `cooldownAfterResetMinutes` integer — Cooldown period in minutes before starting a new series after reset. 0 = no cooldown.
      - `excludeBreakEvenTrades` boolean — If true, break-even trades do not consume an event in the series.
      - `expectedLossRMultiple` number — Expected loss per losing trade as R multiple. Default -1.0 means full risk is lost. For binary options use -1.0. For Forex with SL, typically -1.0. Use values like -0.5 if you expect partial losses on average.
      - `expectedPayoutFactor` number — Expected payout factor for fixed payout systems (binary, etc). Example: 0.75 means +75% of risk on win. Used when payoutModel=PAYOUT_FACTOR.
      - `expectedRMultiple` number — Expected average profit per win, expressed as R multiple. Example: 1.0 means +1R average win. Used when payoutModel=R_MULTIPLE.
      - `expectedWins` integer — Expected number of wins in one series. Must be <= totalEvents.
      - `expectedWinsValid` boolean
      - `lotRoundingMode` 'DOWN' | 'UP' | 'NEAREST', required — How to round the computed lot size to the lot step.
      - `lotStep` number — Lot step to round lots to, e.g. 0.01 for Forex.
      - `maxConsecutiveLosses` integer — Maximum consecutive losses allowed before forcing series reset as safety breaker. 0 = disabled.
      - `maxExpectedWins` integer — Maximum expectedWins when auto-tuning is enabled. Null means no cap besides totalEvents.
      - `maximumLotSize` number — Maximum lot size allowed.
      - `minExpectedWins` integer — Minimum expectedWins when auto-tuning is enabled.
      - `minimumLotSize` number — Minimum lot size allowed.
      - `minimumTradesForHistoricalWinRate` integer — Minimum number of historical trades required before using historical win rate. If fewer trades exist, falls back to manual expectedWins.
      - `outcomePolicy` 'THRESHOLD' | 'SIGN' | 'R_BASED', required — Defines how trades are classified (win/loss/breakeven).
      - `partialWinPolicy` 'IGNORE' | 'COUNT_AS_WIN' | 'COUNT_AS_LOSS' | 'PROPORTIONAL', required — Defines how partial closes (multiple TPs, manual partial close) are handled for outcome classification.
      - `payoutModel` 'R_MULTIPLE' | 'PAYOUT_FACTOR' | 'REALIZED_R', required — Defines how expected profit per win is modeled.
      - `resetOnBankrollDepleted` boolean — Reset series if bankroll is depleted.
      - `resetOnTargetReached` boolean — Reset series automatically when target profit is reached early.
      - `statisticsLookBackDays` integer — Look-back days for stats (0 = only current series).
      - `symbolsConfiguration` object — Symbol-specific overrides for Masaniello settings. Only changed fields need to be provided.
      - `targetProfitPercentage` number — Target profit percentage relative to bankroll. Example: 50 means +50% of the bankroll.
      - `totalEvents` integer — Total number of trades (events) in one Masaniello series.
      - `useHistoricalWinRate` boolean — If true, system adjusts expectedWins based on historical win rate.
      - `winRateSmoothingFactor` number — Smoothing factor for historical win-rate adjustment (0..1). Higher means faster adaptation.
      - `winThresholdBase` 'RISK' | 'NOTIONAL' | 'ABSOLUTE', required — Defines what winThresholdPercentage is applied to.
      - `winThresholdPercentage` number — Trade counts as WIN if profit >= winThresholdPercentage% of base (risk or notional), depending on winThresholdBase.
    - object — DTO for trade guardrails feature (account) (PRO)
      - `aggregatePerSymbol` boolean — If true, the lot size threshold will be applied to the aggregated total lot size per symbol rather than to individual positions. For example, if you have 3 positions on EURUSD with 0.3 lots each (total 0.9 lots), setting this to true will check the 0.9 total against the threshold instead of checking each 0.3 lot position individually.
      - `enabled` boolean — If true, the trade guardrails feature is enabled and will monitor and close positions that exceed the threshold. If false, the feature is disabled.
      - `maxLotSizeThreshold` number — Sets the global maximum lot size threshold for individual open positions across all symbols. By default, each position is checked individually. If an open position exceeds this lot size, it will be automatically closed. A value of 0 means deactivated.
      - `maxOpenTimeSeconds` integer — Sets the maximum open time for positions in seconds. If a position has been open longer than this threshold, it will be automatically closed. A value of 0 means deactivated (no time limit).
      - `symbolsConfiguration` object — Defines the maximum lot size threshold per symbol. This allows for symbol-specific thresholds that override the global threshold.
    - object — DTO for martingale strategy feature (copier)
      - `enableMartingaleStrategy` boolean — Adjust the lot size based on the Martingale multiplier. If there is a significant difference in balance/equity between the master and slave accounts, the lot size on the slave account may be rounded down. For example, if trades of 0.02 and 0.04 lots are placed on the master account (balance 4000 USD), a standard copier would open 0.01 and 0.01 lots on the slave account (balance 1000 USD - which is incorrect). However, if this option is activated, it will open 0.01 and 0.02 lots. Default is false. This can be overridden per symbol using symbolsConfiguration.
      - `symbolsConfiguration` object — Defines the martingale strategy setting per symbol. Each symbol can have its own enabled/disabled setting that overrides the global setting.
    - object — DTO for investor program trader feature (account)
      - `analyticsUrl` string — Link to the trader's performance analytics profile on platforms like MyFXBook, FXBlue, or ShowMyTrades. This value is set by MetaCopier.
      - `description` string, required — A description of the trader's strategy or approach within the investor program.
      - `displayName` string, required — The display name for the trader within the investor program.
      - `maxDrawdownPercentage` number, required — Maximum drawdown percentage that the trader sets for their strategy. This information is used by MetaCopier to calculate an adequate risk level for investors. This value can only be set at feature creation and cannot be updated afterwards.
      - `status` 'PENDING' | 'ACTIVE' | 'SUSPENDED' — Status of a trader within the investor program
    - object — DTO for investor program investor feature (account)
      - `profitSharePercentage` number — Profit share percentage that goes to the traders after MetaCopier fee deduction (0-100). Example: 30.00 means 30% profit share to traders.
      - `status` 'PENDING' | 'ACTIVE' | 'SUSPENDED' — Status of an investor within the investor program
      - `traderFeatures` FeatureDTO[] — List of trader features this investor is following. The investor can choose multiple traders.
    - object — DTO to enable TradingView webhook access (account) (PRO)
      - `allowCloseAll` boolean — Allow closeAll action. WARNING: Closes ALL positions!
      - `allowSymbolOnlyClose` boolean — Allow close by symbol only without additional filters (direction/closeMode). WARNING: Can close multiple positions.
      - `allowedActions` string[] — Allowed actions. Null or empty means all actions are allowed.
      - `authMethod` 'SECRET' | 'HMAC', required — Authentication method: SECRET (recommended) or HMAC (requires proxy)
      - `dataRetentionDays` integer — TTL in days for stored TradingView data.
      - `enableWebhook` boolean, required — Enable TradingView webhook access for this account
      - `enabled` boolean
      - `hmacSecret` string — HMAC secret (auto-generated, read-only). Used for HMAC signature verification.
      - `ipAllowlist` string[] — IP allowlist for additional security. Empty means allow all IPs (recommended). WARNING: TradingView IPs may change without notice.
      - `maxAllowedVolume` number, double — Maximum allowed volume in lots (safety cap). Applies to ALL sizing modes (explicit volume, riskPercent, riskAmount). If the resulting volume exceeds this value it is capped to it. 0 (or null) means the cap is deactivated (default). For multi-TP requests the cap applies to each leg.
      - `maxMatchCount` integer — Max positions to match before requiring force:true. Safety guard against accidental bulk operations.
      - `maxMatchCountOrDefault` integer
      - `openRetry` boolean — If enabled, the retry mechanism activates when the broker rejects the request or the terminal does not respond in time. If set to false, the request is sent only once. Retries are executed every 30 seconds until 'openRetryTimeoutInMinutes' has elapsed.
      - `openRetryTimeoutInMinutes` integer — Specifies the total duration (in minutes) during which the retry mechanism will attempt to resend a rejected or unanswered request. Retries run every 30 seconds. Once this duration elapses, no further retry attempts will be made and the request is marked as failed. This setting is applicable only if 'openRetry' is set to true.
      - `openRetryTimeoutInMinutesOrDefault` integer
      - `requireTimestampForSecret` boolean — Require timestamp field for SECRET auth (optional replay protection).
      - `timestampToleranceSeconds` integer — Timestamp tolerance in seconds for replay protection. Requests with timestamps older than this are rejected.
      - `timestampToleranceSecondsOrDefault` integer
      - `webhookSecret` string — Webhook secret for SECRET auth (min 16 chars, stored hashed). Use 'Generate Secret' button for a random secure secret.
    - object — DTO to configure outbound webhook delivery (project/account)
      - `authMethod` 'HMAC_SHA256' | 'BEARER_TOKEN' | 'NONE', required — Authentication method for webhook delivery. HMAC_SHA256: Signs payload with shared secret (most secure, recommended). BEARER_TOKEN: Sends a static token in Authorization header. NONE: No authentication (not recommended).
      - `bearerToken` string — Bearer token for BEARER_TOKEN auth method. Sent as 'Authorization: Bearer <token>' header. Required when authMethod is BEARER_TOKEN. Min 16 characters for security.
      - `customHeaders` object — Custom HTTP headers to include in every webhook delivery. Useful for routing, identification, or receiver-side filtering. Max 10 headers. Header names must not override reserved headers (Content-Type, Authorization, X-MetaCopier-*).
      - `description` string — Optional description/label for this webhook endpoint (for dashboard display).
      - `enableOutboundWebhook` boolean, required — Enable or disable webhook delivery. When disabled, events are not sent but configuration is preserved.
      - `enabled` boolean
      - `endpointUrl` string, required — The destination URL where webhook payloads will be delivered via HTTP POST. Must be HTTPS in production.
      - `hmacSecret` string — HMAC signing secret for HMAC_SHA256 auth method. Used to compute: HMAC-SHA256(timestamp + '.' + body, secret). Verify on your side by recomputing and comparing signatures. Required when authMethod is HMAC_SHA256. Min 32 characters for security.
      - `includeAccountMetadata` boolean — Include additional account metadata (broker name, login number) in webhook payload. The accountId is always included by default. When enabled, extra identifying fields are added so receivers can distinguish accounts without a separate lookup.
      - `includePositionDetails` boolean — Include full position details in webhook payload (symbol, volume, prices, profit, etc.). When false, only accountId and ticket are sent (minimal payload). Full payload is useful for analytics; minimal reduces bandwidth.
      - `includeTimestampInSignature` boolean — Include a timestamp in the HMAC signature for replay protection. When enabled, the X-MetaCopier-Timestamp header is included and the signature is computed as HMAC-SHA256(timestamp + '.' + body, secret). Receivers can reject old timestamps to prevent replay attacks. Only relevant for HMAC_SHA256 auth method.
      - `initialRetryDelayMs` integer — Initial retry delay in milliseconds. Each subsequent retry doubles the delay (exponential backoff). E.g., 2000ms → retries at 2s, 4s, 8s.
      - `initialRetryDelayMsOrDefault` integer
      - `maxRetries` integer — Maximum number of retry attempts on delivery failure (5xx or network error). Retries use exponential backoff. 0 = no retries.
      - `maxRetriesOrDefault` integer
      - `rateLimitPerMinute` integer — Maximum webhook deliveries per minute per endpoint. Protects the receiver from being overwhelmed during high-frequency trading. Events exceeding the limit are queued and delivered when the window resets. 0 = unlimited.
      - `rateLimitPerMinuteOrDefault` integer
      - `requestTimeoutSeconds` integer — Request timeout in seconds. If the receiver does not respond within this time, the delivery is considered failed and may be retried.
      - `requestTimeoutSecondsOrDefault` integer
      - `subscribedEvents` string[] — List of events that trigger webhook delivery. Null or empty means ALL events are subscribed. Available events: POSITION_OPENED, POSITION_CLOSED, HISTORY_UPDATED.
    - object — DTO for Telegram Account configuration (project)
      - `apiHash` string — Telegram API Hash (from https://my.telegram.org) - write only, not returned in responses. Required on create, optional on update (null/empty means keep existing value).
      - `apiId` integer, required — Telegram API ID (from https://my.telegram.org)
      - `authErrorMessage` string — Error message if auth failed
      - `authStatus` 'PENDING' | 'CODE_REQUIRED' | 'PASSWORD_REQUIRED' | 'AUTHORIZED' | 'FAILED' | 'SESSION_EXPIRED' | 'DISCONNECTED' — Current authorization status
      - `availableChats` TelegramChatDTO[] — Available chats from this account (read-only, synced from backend-telegram)
        - `chatId` integer — Telegram chat ID
        - `chatType` string — Chat type (private, group, supergroup, channel)
        - `memberCount` integer — Number of members (for groups/channels)
        - `title` string — Chat title/name
        - `username` string — Username if available (without @)
      - `connected` boolean — Is the Telegram client currently connected
      - `includePrivateChats` boolean — Include private chats in the available chats list (default: false, only groups/channels are listed)
      - `lastSyncAt` string, date-time — Last sync timestamp
      - `phoneNumber` string, required — Phone number with country code (e.g., +41790000000)
      - `regionId` integer, required — Region ID where this Telegram client should run
      - `restartAuth` boolean — Set to true to restart authentication flow (use when session expired or auth failed)
      - `twoFactorPassword` string — Two-factor authentication password (if enabled)
      - `verificationCode` string — SMS verification code (write-only, for completing auth)
    - object — DTO for Telegram Connector configuration (account) (PRO)
      - `aiInstructions` string — AI instructions for signal interpretation. Use this to customize how the AI interprets signals. The default prompt (JSON format, symbol mappings, SL/TP rules, open positions context) is always included. Examples: 'The signal provider uses GOLD instead of XAUUSD', 'Ignore messages from admin', 'SL/TP values are always in points', 'Use only 50% of the volume specified in the signal', 'If signal says 1 lot, use 0.1 lot instead'
      - `aiTier` 'BASIC' | 'STANDARD' | 'PRO' — AI model tier for signal interpretation. BASIC = default model, no extra charge. STANDARD = enhanced model, $5/month (billed daily). PRO = premium model, $10/month (billed daily). NOTE: Can only be set on creation. To change the tier, delete and recreate the connector.
      - `allowedActions` string[] — Allowed actions for signals from this chat. Valid values: open, close, modify.
      - `chatId` integer, required — Telegram chat ID to subscribe to
      - `chatTitle` string — Chat title (denormalized for display)
      - `confidenceThreshold` integer — AI confidence threshold (0-100). The AI analyzes each message and assigns a confidence score. Only signals with confidence >= this threshold are executed. Example: If threshold is 70 and AI returns confidence 65, the signal is skipped and logged but NOT executed. Lower values = more signals executed (but more false positives). Higher values = fewer signals (but more reliable). If null, uses global default (70).
      - `connectorIndex` integer — Unique connector index (1-9) within the account. Auto-assigned on creation. Appended to position comments to identify which connector opened each position. This allows multiple connectors on the same account to manage their own positions independently.
      - `contextMessageCount` integer — Number of recent messages to include as context for AI interpretation. Higher values give the AI more context (useful for multi-message signals) but consume more tokens. If null, uses global default (5).
      - `defaultStopLossPoints` integer — Default stop loss in points if the signal doesn't provide a SL. Will be applied as relative distance from the fill price.
      - `defaultTakeProfitPoints` integer — Default take profit in points if the signal doesn't provide a TP. Will be applied as relative distance from the fill price.
      - `defaultVolume` number, double — Default volume if not specified in signal (used when volumeMode='fixed')
      - `enabled` boolean, required — Enable signal processing from this chat
      - `errorMessage` string — Error message if status is ERROR
      - `excludePatterns` string[] — Optional list of regular expressions (case-insensitive) used as an exclusion filter. If any pattern matches the message text, the message is skipped BEFORE the AI is called (does not count against the daily AI call limit). Exclude is evaluated before include and always wins.
      - `forceVolumeMode` boolean — Force volume mode (ignore signal volume). If false (default): use volume from signal if provided, otherwise use volumeMode calculation. If true: always use volumeMode calculation, ignore any volume specified in the signal. Note: forceVolumeMode=true with volumeMode=AI will fall back to defaultVolume.
      - `includePatterns` string[] — Optional list of regular expressions (case-insensitive) used as an inclusion filter. If non-empty, only messages whose text matches AT LEAST ONE pattern are sent to the AI. If null/empty, all messages are eligible (subject to the exclude list). When BOTH include and exclude are set, exclude is evaluated first and wins; the message is then sent only if it also matches at least one include pattern.
      - `lastMessageAt` string, date-time — Last message processed timestamp
      - `lotsPerThousandBalance` number, double — Lots per 1000 balance (used when volumeMode='balance_scaled'). Example: If balance is 10000 and lotsPerThousandBalance is 0.01, calculated volume will be 0.1
      - `magicNumber` integer — Magic number for positions from this connector
      - `marginPercent` number, double — Percentage of the account's free (available) margin the position should consume. Used when volumeMode='MARGIN_PERCENT'. The lot size is calculated as (freeMargin * marginPercent/100) / marginPerLot. Unlike RISK_PERCENT/RISK_AMOUNT this does NOT require a stop loss.
      - `maxAllowedVolume` number, double — Maximum allowed volume (safety limit). Applies to ALL volume modes. If calculated volume exceeds this, it will be capped to this value. Default is 1.0 lot.
      - `messageExpiryMinutes` integer — Maximum message age in minutes. Messages older than this are skipped (e.g., due to network delays, Telegram outages, or server restarts). If null, uses global default (10).
      - `riskAmount` number, double — Risk per trade as fixed currency amount (in account currency). Used when volumeMode='RISK_AMOUNT'. The lot size is calculated based on this amount, the stop loss distance, and the tick value. Requires the account-level FeatureRiskPerTrade to be enabled (for tick value configuration). A stop loss must be present on the signal or configured via defaultStopLossPoints.
      - `riskPercent` number, double — Risk per trade as percentage of account balance (used when volumeMode='RISK_PERCENT'). The lot size is calculated based on this percentage, the stop loss distance, and the tick value. Requires the account-level FeatureRiskPerTrade to be enabled (for tick value configuration). A stop loss must be present on the signal or configured via defaultStopLossPoints.
      - `status` 'PENDING' | 'ACTIVE' | 'PAUSED' | 'ERROR' | 'DISCONNECTED' — Connector status
      - `telegramAccountFeatureId` string, uuid, required — Reference to the FeatureTelegramAccount feature ID
      - `volumeMode` 'FIXED' | 'BALANCE_SCALED' | 'RISK_PERCENT' | 'RISK_AMOUNT' | 'MARGIN_PERCENT' | 'AI' — Volume calculation mode: FIXED = use defaultVolume, BALANCE_SCALED = calculate from account balance, AI = let AI determine volume based on signal (customizable via aiInstructions field), RISK_PERCENT = calculate lot size from risk percentage of account balance (requires riskPercent and stop loss), RISK_AMOUNT = calculate lot size from fixed currency amount risk (requires riskAmount and stop loss), MARGIN_PERCENT = calculate lot size so the position consumes a percentage of the free (available) margin (requires marginPercent, no stop loss needed)
    - object — DTO for block hedging feature (copier)
      - `blockHedging` boolean — If true, the copier will skip opening a position when the slave account already has an open position with the same symbol but in the opposite direction (BUY vs SELL). This is useful for prop firms that prohibit hedging.
    - object — DTO for trade cooldown feature (copier). Skips copying a new market open on a symbol when a previous copied trade on the same (or a configured correlated) symbol was opened/closed less than 'cooldownMinutes' ago. Helps comply with prop-firm 'trade idea' rules (e.g. FTMO's 1-hour rule).
      - `cooldownAnchor` 'CLOSE' | 'OPEN' — Whether the cooldown window is measured from the previous copied position's CLOSE (default) or OPEN.
      - `cooldownMinutes` integer — Minutes after the anchor event during which new market opens on the symbol are skipped. A value of 0 or null disables the feature. Maximum is 1440 minutes (24 hours).
      - `correlationGroups` array[] — Used only when correlationMode is CUSTOM_GROUPS. Groups of symbols treated as one trade idea, e.g. [["US30","US500","NAS100"],["USOIL","UKOIL"]]. A cooldown started by any member also applies to the other members of its group.
        - string[] — Used only when correlationMode is CUSTOM_GROUPS. Groups of symbols treated as one trade idea, e.g. [["US30","US500","NAS100"],["USOIL","UKOIL"]]. A cooldown started by any member also applies to the other members of its group.
      - `correlationMode` 'NONE' | 'CUSTOM_GROUPS' — How a 'correlated symbol' is resolved. NONE = same symbol only. CUSTOM_GROUPS = symbols listed together in correlationGroups are treated as one trade idea.
      - `symbolsConfiguration` object — Per-symbol overrides. The cooldownMinutes, cooldownAnchor and trackByDirection of an override are applied for that symbol; correlationMode and correlationGroups are always taken from the top-level configuration.
      - `trackByDirection` boolean — If true, BUY and SELL are tracked separately, so only a new open in the same direction as the anchored position is blocked. If false (default), both directions are blocked during the cooldown.
  - `type` FeatureTypeDTO, required — You have only to set the id e.g 1 for Telegram. Example: {id:1}
    - `id` integer, required
    - `name` string
    - `planName` string

---

[API](https://skmtc.net/metacopier/apis/metacopier-api.md) · [All operations](https://skmtc.net/metacopier/apis/metacopier-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/metacopier/metacopier-api/revisions/ff1699330afa/schema)
