Receive trading signal to execute on TradersPost.
POST
https://webhooks.traderspost.io/trading/webhook/{uuid}/{password}Path parameters
uuid
string · uuidrequired
Your unique webhook identifier, we call the uuid. Provided when you copy the entire webhook URL from your strategy dashboard.
password
string required
Your webhook password. Provided when you copy the entire webhook URL from your strategy dashboard.
Body
application/jsontickerstringrequired
The ticker symbol of the financial instrument (e.g.,
Note: For futures contracts, continuous symbols like NQ1! are automatically mapped to the front-month contract according to our rollover schedule. Since this schedule may differ from other platforms like TradingView, we strongly recommend using explicit futures contract symbols rather than continuous symbols.
AAPL, SPY 250624C596, MNQU2025, BTCUSD).Note: For futures contracts, continuous symbols like NQ1! are automatically mapped to the front-month contract according to our rollover schedule. Since this schedule may differ from other platforms like TradingView, we strongly recommend using explicit futures contract symbols rather than continuous symbols.
actionstring · enumrequired
The action or signal type used to determine what type of order to execute.
Put options: By default,
Put options: By default,
action=buy buys long puts and action=sell sells short puts. Enable the Invert puts strategy setting to swap this mapping (action=buy → sell short puts, action=sell → buy long puts). Use Invert puts when your strategy runs on the underlying chart and sends buy/sell for the stock's direction but trades puts instead of shares. When option type is Both, put contracts selected from the option chain always use inverted logic regardless of this setting.Possible values:
buysellexitreversebreakevencanceladd
sentimentstring · enumoptional
Optional and often used with TradingView strategies. The expected position sentiment after trade execution:
bullish - Open position after trade should be bullish or flat
bearish - Open position after trade should be bearish or flat
* flat - No position should be open after trade execution
bullish - Open position after trade should be bullish or flat
bearish - Open position after trade should be bearish or flat
* flat - No position should be open after trade execution
Possible values:
bullishbearishflat
pricenumber · floatoptional
The market price at the time your alert is triggered (RECOMMENDED).
For TradingView alerts, you can pass this using the
This value helps calculate slippage - the difference between the alert price and the actual fill price - allowing you to monitor execution quality.
The slippage calculation will fall back to
For TradingView alerts, you can pass this using the
{{close}} placeholder in your alert message.This value helps calculate slippage - the difference between the alert price and the actual fill price - allowing you to monitor execution quality.
The slippage calculation will fall back to
signalPrice, price, limitPrice, or stopPrice in that order.signalPricenumber · floatoptional
Optionally send the current market price at the time the signal was generated. This price is used in some cases when a broker does not support fetching quotes or the broker returns an empty quote and is also used to calculate slippage (see the
price property).orderTypestring · enumoptional
The type of order to create. If you send an order type not supported by your broker, it will fallback to the default order type configured in the strategy subscription settings.
Possible values:
marketlimitstopstop_limittrailing_stop
limitPricenumber · floatoptional
When
If you omit this value, the current market price will be used when the trade is executed
This price is also used to calculate slippage (see the
orderType=limit or orderType=stop_limit you can send a limitPrice for the order.If you omit this value, the current market price will be used when the trade is executed
This price is also used to calculate slippage (see the
price property)stopPricenumber · floatoptional
When
orderType=stop or orderType=stop_limit you can send a stopPrice for the order. If you omit this value, the current market price will be used when the trade is executed. This is also used to calculate slippage (see the price property).trailAmountnumber · floatoptional
For trailing stop orders (
orderType=trailing_stop), specifies the fixed dollar amount to trail the market price. The stop price will maintain this absolute dollar offset - for example, with $1.00, it stays $1.00 below the highest price for longs or above the lowest price for shorts. Note: Only one of trailAmount or trailPercent can be used.trailPercentnumber · floatoptional
For trailing stop orders (
orderType=trailing_stop), specifies the percentage to trail the market price. The stop price will maintain this percentage offset from the highest/lowest price reached. Note: Only one of trailAmount or trailPercent can be used.quantityTypestring · enumoptional
The type of the value sent in the quantity field. Supported values are:
fixed_quantity - A fixed quantity number that is used for the order
dollar_amount - Dynamically calculates a quantity for the given dollar amount
risk_dollar_amount - Dynamically calculates a quantity for the given risk dollar amount. This type requires a stop loss
risk_percent - Dynamically calculates a quantity for the given risk percent of equity. This type requires a stop loss
percent_of_equity - Dynamically calculates a quantity for the given percent of equity
percent_of_position - Dynamically calculates a quantity for the given percent of position
Default is fixed_quantity when you send a quantity without a quantityType.
fixed_quantity - A fixed quantity number that is used for the order
dollar_amount - Dynamically calculates a quantity for the given dollar amount
risk_dollar_amount - Dynamically calculates a quantity for the given risk dollar amount. This type requires a stop loss
risk_percent - Dynamically calculates a quantity for the given risk percent of equity. This type requires a stop loss
percent_of_equity - Dynamically calculates a quantity for the given percent of equity
percent_of_position - Dynamically calculates a quantity for the given percent of position
Default is fixed_quantity when you send a quantity without a quantityType.
Possible values:
fixed_quantitydollar_amountrisk_dollar_amountrisk_percentpercent_of_equitypercent_of_position
quantitynumberoptional
The quantity to enter. If you omit this value, the quantity will be dynamically calculated based on your strategy subscription settings or defaulted to 1.
takeProfitobjectoptionalOptional take profit configuration for the trade. If omitted, no take profit will be placed. It will be ignored if the broker or exchange does not support bracket orders. IMPORTANT: The signal take profit will only be used if you check Use signal take profit in the strategy subscription settings in TradersPost. For examples, see https://docs.traderspost.io/docs/core-concepts/webhooks#take-profit
takeProfitobjectoptional
Optional take profit configuration for the trade. If omitted, no take profit will be placed. It will be ignored if the broker or exchange does not support bracket orders. IMPORTANT: The signal take profit will only be used if you check Use signal take profit in the strategy subscription settings in TradersPost. For examples, see https://docs.traderspost.io/docs/core-concepts/webhooks#take-profit
limitPricenumber · floatoptional
Absolute limit price calculated on the webhook sender side.
pnlAmountnumber · floatoptional
Portfolio PnL take profit target in dollars. TradersPost converts this to a limit price using the planned entry quantity and the symbol's point value. Cannot be combined with percent, amount, or limitPrice.
percentnumber · floatoptional
Relative percentage take profit to calculate relative to entry price. The entry price for market orders is estimated based on the mid point between the bid and ask on the most recent quote.
amountnumber · floatoptional
Relative dollar amount take profit to calculate relative to entry price. The entry price for market orders is estimated based on the mid point between the bid and ask on the most recent quote.
stopLossobjectoptionalOptional stop loss configuration for the trade. If omitted, no stop loss will be placed. It will be ignored if the broker or exchange does not support bracket orders. IMPORTANT: When using market orders and you are calculating a relative stop loss price, TradersPost will fetch a quote from your broker and use the price from the quote as the entry price in order to calculate the stop loss stop price since with market orders, we don't know the price you will be filled at so we have to use the quote price. For examples, see https://docs.traderspost.io/docs/core-concepts/webhooks#stop-loss
stopLossobjectoptional
Optional stop loss configuration for the trade. If omitted, no stop loss will be placed. It will be ignored if the broker or exchange does not support bracket orders. IMPORTANT: When using market orders and you are calculating a relative stop loss price, TradersPost will fetch a quote from your broker and use the price from the quote as the entry price in order to calculate the stop loss stop price since with market orders, we don't know the price you will be filled at so we have to use the quote price. For examples, see https://docs.traderspost.io/docs/core-concepts/webhooks#stop-loss
typestring · enumoptional
Type of stop loss. If provided, overrides the stop loss type configured in strategy subscription settings.
Possible values:
stopstop_limittrailing_stop
percentnumber · floatoptional
Relative percentage stop loss to calculate relative to entry price.
amountnumber · floatoptional
Relative dollar amount stop loss to calculate relative to entry price.
stopPricenumber · floatoptional
Absolute stop price calculated on the webhook sender side.
limitPricenumber · floatoptional
Absolute limit price calculated on the webhook sender side. Requires type to be set to stop_limit.
pnlAmountnumber · floatoptional
Portfolio PnL stop loss cap in dollars. TradersPost converts this to a stop price using the planned entry quantity and the symbol's point value. Use only with type stop or stop_limit, not trailing_stop. Cannot be combined with percent, amount, stopPrice, or limitPrice.
trailAmountnumber · floatoptional
Dollar value away from the highest water mark. For a sell trailing stop, stop price is always hwm - trailAmount. Requires type to be set to trailing_stop.
trailPercentnumber · floatoptional
Percent value away from the highest water mark. For a sell trailing stop, stop price is always hwm * (1 - trailPercent/100). Requires type to be set to trailing_stop.
timeInForcestring · enumoptional
The time in force for your order. If you send a time in force not supported by your broker, it will fallback to the default time in force or the time in force configured in the strategy subscription settings.
The supported values are:
day - Good For Day
gtc - Good Until Canceled
gtd - Good Until Date
opg - Market on Open / Limit on Open
cls - Market on Close / Limit on Close
ioc - Immediate or Cancel
* fok - Fill or Kill
The supported values are:
day - Good For Day
gtc - Good Until Canceled
gtd - Good Until Date
opg - Market on Open / Limit on Open
cls - Market on Close / Limit on Close
ioc - Immediate or Cancel
* fok - Fill or Kill
Possible values:
daygtcgtdopgclsiocfok
timestring · date-timeoptional
ISO-8601 timestamp indicating when the signal was generated (e.g. '2024-01-15T14:30:00Z'). When using TradingView, you can use the
{{timenow}} placeholder. This timestamp is used to calculate the latency between signal generation and trade execution, which can be viewed in the trade signal logs.ignoreTradingWindowsbooleanoptional
Ignore the defined trading windows in the strategy subscription settings and allow the trade to execute even if it is currently outside of the trading windows.
cancelbooleanoptional
Explicitly control whether or not to cancel open orders before submitting new orders to your broker.
cancelOrderTypestring · enumoptional
When canceling open orders, optionally filter which orders are canceled by order type.
Possible values:
marketlimitstopstop_limittrailing_stop
cancelAfterintegeroptional
Automatically cancel the entry order after this many seconds if it has not filled.
rejectAfterintegeroptional
Maximum signal age in seconds (1-30) for entry or exit staleness checks. Uses the
time field when provided, otherwise the webhook receive time. Requires Allow signal overrides or the matching per-field override in strategy subscription settings.delayobjectoptional
Postpone trade execution until after a delay. Accepts seconds as an integer, a relative expression, or an absolute datetime with timezone.
bidAskSpreadFilternumber · floatoptional
Maximum bid-ask spread in dollars for entry or exit. Cannot be sent together with bidAskSpreadFilterPercent in the same payload.
bidAskSpreadFilterPercentnumber · floatoptional
Maximum bid-ask spread as a percentage for entry or exit. Cannot be sent together with bidAskSpreadFilter in the same payload.
marketPriceTypestring · enumoptional
Which quote price to use when a market price is needed for calculations. Defaults to mark (midpoint) when omitted.
Possible values:
ask_bidmarkaskbidlast
breakevenOffsetnumber · floatoptional
For action breakeven, the offset in ticks from the entry fill price when moving the stop to breakeven. Requires orderType stop or stop_limit.
expiresAtstringoptional
ISO-8601 datetime after which the signal should no longer be executed.
messagestringoptional
Optional message to attach to the signal for logging.
testbooleanoptional
When true, the signal is processed as a test signal and orders are not sent to your broker.
extendedHoursbooleanoptional
(STOCKS and OPTIONS SPECIFIC): Whether or not to send the order as an extended hours order. This is only applicable for stocks and the supported values are either true or false.
optionTypestring · enumoptional
(OPTIONS SPECIFIC): The type of option contract to trade. The supported values are both, call and put.
Possible values:
bothcallput
intrinsicValuestring · enumoptional
(OPTIONS SPECIFIC): The intrinsic value of the option contract to trade. The supported values are itm (in the money) and otm (out of the money).
Possible values:
itmotm
expirationstringoptional
(OPTIONS SPECIFIC): The expiration of the option contract to trade. The value can be a specific date like 2024-05-06 or a relative date expression like +6 months.
strikeCountintegeroptional
(OPTIONS SPECIFIC): How many strikes to ask for from the broker when executing options trades and scanning the option chain to find a contract to trade.
strikesAwayintegeroptional
(OPTIONS SPECIFIC): How many strikes away from at the money to select.
strikePriceinteger · floatoptional
(OPTIONS SPECIFIC): Specifies the strike price of the option contract to trade.
extrasobjectoptional
Custom metadata for any additional logging needs (optional). We recommend putting whatever you like in this property so they don't conflict with the other properties.
Responses
200
Successfully received webhook.
application/json
successbooleanrequired
idstringrequired
logIdstringrequired
payloadobjectrequired
tickerstringoptional
actionstringoptional
sentimentstringoptional
pricenumber · floatoptional
quantitynumberoptional
quantityTypestringoptional
orderTypestringoptional
timestring · date-timeoptional
testbooleanoptional
takeProfitobjectoptional
stopLossobjectoptional
extrasobjectoptional
400
Bad Request - The JSON that gets sent to TradersPost has to be precisely accurate in order for us to accept it. It is important to pay attention to all the details, all the little characters have meaning and are important.
application/json
successbooleanrequired
logIdstringoptional
Optional log identifier for tracking the request. May not be present for certain types of errors (e.g., authentication failures, malformed requests).
messageCodestring · enumrequired
Specific error code indicating the type of validation error encountered.
Possible values:
post-requiredempty-jsonmalformed-jsoninvalid-payloadinvalid-actioninvalid-sentimentinvalid-sentiment-actioninvalid-order-typeinvalid-trailing-stopinvalid-option-typeinvalid-intrinsic-valueinvalid-expirationinvalid-strike-countinvalid-strikes-awayinvalid-strike-pricenot-trading-viewnot-trend-spiderinvalid-ip-addressinvalid-ip-address-formatticker-does-not-existinvalid-ticker-and-option-typeinvalid-passwordempty-ticker-nameunsupported-tickerinvalid-quantity-typeinvalid-quantity-type-actioninvalid-risk-dollar-amount-actioninvalid-percent-of-position-actionquantity-type-requires-quantityinvalid-quantity-type-for-asset-classinvalid-quantityinvalid-time-in-forceinvalid-extended-hoursinvalid-asset-classinvalid-take-profit-percentinvalid-take-profit-amountinvalid-take-profit-limit-priceinvalid-take-profit-amount-and-percentinvalid-take-profit-relative-and-absoluteinvalid-take-profit-value-requiredinvalid-stop-loss-typeinvalid-stop-loss-percentinvalid-stop-loss-amountinvalid-stop-loss-stop-priceinvalid-stop-loss-limit-priceinvalid-stop-loss-trail-priceinvalid-stop-loss-trail-amountinvalid-stop-loss-trail-percentinvalid-stop-loss-trail-valueinvalid-stop-loss-trail-value-requiredinvalid-stop-loss-amount-and-percentinvalid-stop-loss-relative-and-absoluteinvalid-stop-loss-stop-price-requiredinvalid-stop-loss-value-requiredinvalid-expires-atinvalid-message-lengthinvalid-message-tagsinvalid-delayinvalid-delay-formatinvalid-delay-pastinvalid-delay-exceeds-maxinvalid-delay-missing-timezoneinvalid-cancel-afterinvalid-reject-afterinvalid-stocks-ticker-formatinvalid-options-ticker-formatinvalid-futures-ticker-formatinvalid-crypto-ticker-formatinvalid-breakeven-offsetinvalid-breakeven-order-typeinvalid-market-price-typeinvalid-bid-ask-spread-filter-amount-and-percentinvalid-bid-ask-spread-filter-percentinvalid-take-profit-pnl-amountinvalid-take-profit-pnl-incompatibleinvalid-stop-loss-pnl-amountinvalid-stop-loss-pnl-incompatibleinvalid-stop-loss-pnl-trailinginvalid-risk-percent-actioninvalid-cancel-order-typeinvalid-formula-syntaxinvalid-formula-referenceinvalid-formula-dependencyinvalid-formula-nestedinvalid-formula-runtimeinvalid-formula-lengthinvalid-formula-operatorinvalid-formula-resultinvalid-formula-blacklisted-field
messagestringrequired
Human-readable error message explaining the validation error.
404
Resource not found.
application/json
successbooleanrequired
messageCodestringrequired
messagestringrequired
500
Internal server error. Sometimes an HTML response might come back, but it's best just to rely on the 500 status code.
No content
POST
/trading/webhook/{uuid}/{password}{
"ticker": "AAPL",
"action": "buy",
"sentiment": "bullish",
"price": 191.25,
"quantity": 10,
"quantityType": "fixed_quantity",
"orderType": "market",
"time": "2025-06-18T14:30:00Z",
"test": true,
"takeProfit": {
"percent": 10
},
"stopLoss": {
"type": "stop",
"percent": 5
},
"extras": {
"strategy": "EMA_Crossover",
"comment": "Breakout entry",
"exitType": "trailing_atr"
}
}{
"success": true,
"id": "47462f2d-378c-4bf5-a016-1c1221aa0e62",
"logId": "a036eff1-b7db-4f15-b5b6-f5e51995ad29",
"payload": {
"ticker": "AAPL",
"action": "buy",
"sentiment": "bullish",
"price": 191.25,
"quantity": 10,
"quantityType": "fixed_quantity",
"orderType": "market",
"time": "2025-06-18T14:30:00Z",
"test": true,
"takeProfit": {
"percent": 10
},
"stopLoss": {
"type": "stop",
"percent": 5
},
"extras": {
"strategy": "EMA_Crossover",
"comment": "Breakout entry",
"exitType": "trailing_atr"
}
}
}