TradingView to TradersPost webhook JSON
Start from TradersPost's own TradingView payload, change it, and see as you type whether it is valid JSON with the ticker and action TradersPost requires. The secret is in your webhook URL, so nothing secret goes in the message.
Updated 23 October 2026. Runs in your browser; nothing you type is uploaded.
Send to
Alert from
Placeholders for any alert
Strategy alerts only
Text placeholders go in quotes; a placeholder added outside a string comes with them.
TradersPost, strategy alert
Valid JSON: TradingView sends it as application/json
Nothing to fix. This is the TradersPost preset for a strategy.
What TradersPost receives
Content-Type: application/json, with sample values in place of the placeholders.
{
"ticker": "NQ1!",
"action": "buy",
"sentiment": "long",
"quantity": "2",
"price": "18342.25",
"time": "2026-10-23T14:35:02Z",
"interval": "5"
}Where it goes
- Webhook URL
https://webhooks.traderspost.io/trading/webhook/YOUR_UUID/YOUR_PASSWORDCopy the whole URL from your TradersPost strategy's webhook.- The secret
- In the URL: its last part is the webhook's password. Nothing secret goes in the message.
- ticker and action are required with every message; field names are case-sensitive, and fields TradersPost does not list are ignored.
- action reads buy, sell, exit, reverse, breakeven, cancel, add or resize; sentiment (long, short or flat) is the position the signal should leave.
- Whether quantity and quantityType are used depends on Allow signal override in your TradersPost strategy's settings.
From TradersPost's docs, read 23 October 2026: signal message reference, TradingView as a signal source, webhook reference.
Or build it in Pine, so the JSON is never inside other JSON
In the alert: Order fills only, and nothing but {{strategy.order.alert_message}} in the Message box. Each order passes the whole message as alert_message, with its own buy or sell.
//@version=6
strategy("Webhook message", overlay = true)
// Your own rules go here; this example crosses two averages.
fast = ta.sma(close, 10)
slow = ta.sma(close, 30)
qty = 1
// The whole message, built here. In the alert: Order fills only, and nothing but
// {{strategy.order.alert_message}} in the Message box.
webhookMessage(string action, string id, string position) =>
string m = '{'
m += '"ticker": "' + syminfo.ticker + '",'
m += '"action": "' + action + '",'
m += '"sentiment": "' + position + '",'
m += '"quantity": "' + str.tostring(qty) + '",'
m += '"price": "' + str.tostring(close) + '",'
m += '"time": "' + str.format_time(timenow, "yyyy-MM-dd'T'HH:mm:ss'Z'", "UTC") + '",'
m += '"interval": "' + timeframe.period + '"'
m += '}'
m
if ta.crossover(fast, slow)
strategy.entry("Long", strategy.long, qty, alert_message = webhookMessage("buy", "Long", "long"))
if ta.crossunder(fast, slow)
strategy.entry("Short", strategy.short, qty, alert_message = webhookMessage("sell", "Short", "short"))
The code for every preset compiles on TradingView with no errors or warnings. Put your own entry rules in place of the two averages, then check the script for repaint risks.
What TradersPost reads
- Format
- JSON; it needs "ticker", "action".
- Webhook URL
https://webhooks.traderspost.io/trading/webhook/YOUR_UUID/YOUR_PASSWORDCopy the whole URL from your TradersPost strategy's webhook.- The secret
- In the URL: its last part is the webhook's password. Nothing secret goes in the message.
- ticker and action are required with every message; field names are case-sensitive, and fields TradersPost does not list are ignored.
- action reads buy, sell, exit, reverse, breakeven, cancel, add or resize; sentiment (long, short or flat) is the position the signal should leave.
- Whether quantity and quantityType are used depends on Allow signal override in your TradersPost strategy's settings.
The two starting messages
{
"ticker": "{{ticker}}",
"action": "{{strategy.order.action}}",
"sentiment": "{{strategy.market_position}}",
"quantity": "{{strategy.order.contracts}}",
"price": "{{close}}",
"time": "{{timenow}}",
"interval": "{{interval}}"
}{
"ticker": "{{ticker}}",
"action": "buy",
"price": "{{close}}",
"time": "{{timenow}}",
"interval": "{{interval}}"
}From TradersPost's own docs, read 23 October 2026: signal message reference, TradingView as a signal source, webhook reference.
TradingView's side of a webhook
- Plan and 2FA
- Webhook notifications are on Essential, Plus, Premium, Ultimate, not on the free Basic plan (pricing table), and webhook alerts are allowed only with two-factor authentication turned on.
- Content-Type
- application/json when the message is valid JSON, text/plain otherwise. TradingView sends a POST with the message as the body.
- IP addresses to allowlist
52.89.214.238,34.212.75.30,54.218.53.128,52.32.178.7. Over HTTPS TradingView also sends a client certificate for webhook-server@tradingview.com (webhook authentication).- Ports, IPv6 and time
- Ports 80 and 443 only; no IPv6; no localhost or private addresses. A request your server takes more than three seconds to answer is cancelled, and a 500 to 599 answer other than 504 is sent again after 5 seconds, up to 3 times (resubmission).
- Message length
- 4,000 characters in the alert's Message box; 40,960 from alert() or alert_message. The body has the same limits, and an emoji counts as several characters (size limits).
- Secrets
- TradingView asks you not to put login credentials or passwords in the webhook URL or message (credentials for webhooks).
From TradingView's How to configure webhook alerts and the pages linked above, read 23 October 2026.
Other receivers
- TradingView to PineConnector alert message Comma-separated text, not JSON; the License ID leads the message.
- TradingView to CrossTrade webhook JSON Flat JSON or key=value; text; the Secret Key goes in the message.
- TradingView to 3Commas Signal Bot JSON v2 Signal Bot JSON; the v1 secret and bot_uuid format is retired.
- TradingView to Discord webhook JSON JSON with content or embeds; the token is in the webhook URL.
- TradingView to Telegram webhook JSON JSON with chat_id and text; the bot token is in the URL.
- Custom JSON for your own server and TradingView's placeholders in full.
Common questions
What JSON does TradersPost need from TradingView?
At least ticker and action; every other field is optional. TradersPost's own strategy payload sends ticker, action ({{strategy.order.action}}), sentiment ({{strategy.market_position}}), quantity, price, time and interval. Field names are case-sensitive, and fields TradersPost does not list are ignored.
What does sentiment do in a TradersPost webhook?
It is the position the signal should leave you in: long, short or flat (bullish and bearish work too). It is how TradersPost tells a strategy's sell that exits a long from one that opens a short. TradersPost takes sentiment only with buy, sell or resize.
Where does the TradersPost webhook password go?
In the URL, https://webhooks.traderspost.io/trading/webhook/ followed by your webhook's id and password, copied whole from your TradersPost strategy. The message carries no key.
Alerts that already send the message
- Signal Desk Premium A Pine v6 desk whose alerts write the message for you, as ticket text, JSON, TradersPost or PineConnector, with a Discord and Telegram relay. $49 once.
- Pine Fixer An AI skill pack for 45 compiler-verified Pine v6 failure classes, with a repaint clinic. $9.99 once.