TradingView to PineConnector alert message
PineConnector reads a comma-separated command, not JSON: LicenseID,command,symbol, then parameters. Build it, check each field against PineConnector's own syntax as you type, and get the Pine code that sends it.
Updated 23 October 2026. Runs in your browser; nothing you type is uploaded.
Send to
Alert from
Placeholders for any alert
Strategy alerts only
PineConnector reads plain text, so placeholders go in as they are.
PineConnector, strategy alert
Text, sent as text/plain, the way PineConnector reads it
0 errors, 2 things to check. This is the PineConnector preset for a strategy.
- YOUR_LICENSE_ID is still a stand-inCheck
Replace it with your own value before you create the alert.
- Every fill becomes buy or sellCheck
A strategy's sell can close a long. PineConnector warns that sending every fill as an entry can open a position you did not mean; send closelong/closeshort from Pine with alert_message instead.
What PineConnector receives
Content-Type: text/plain, with sample values in place of the placeholders.
YOUR_LICENSE_ID,buy,EURUSD,vol_lots=0.01Where it goes
- Webhook URL
https://webhook.pineconnector.comThe same URL for everyone; the License ID in the message routes it.- The secret
- In the message: the License ID comes first, and secret= carries your Signal Authentication key if you turned it on.
- The message is text, LicenseID,command,symbol,parameters, not JSON, so TradingView sends it as text/plain, the way PineConnector's own examples send it.
- The symbol is the broker's, suffix and letter case included. Parameters use explicit units for new alerts: vol_lots, sl_pips, tp_pips; risk=, sl= and tp= are the legacy style.
- A strategy that supplies alert_message on its orders needs the Order fills only condition and {{strategy.order.alert_message}} in the Message box.
From PineConnector's docs, read 23 October 2026: syntax, legacy syntax, no-code strategy alerts, signal authentication.
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 = 'YOUR_LICENSE_ID,' + action + ',EURUSD,vol_lots=0.01'
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 PineConnector reads
- Format
- Plain text, sent as text/plain.
- Webhook URL
https://webhook.pineconnector.comThe same URL for everyone; the License ID in the message routes it.- The secret
- In the message: the License ID comes first, and secret= carries your Signal Authentication key if you turned it on.
- The message is text, LicenseID,command,symbol,parameters, not JSON, so TradingView sends it as text/plain, the way PineConnector's own examples send it.
- The symbol is the broker's, suffix and letter case included. Parameters use explicit units for new alerts: vol_lots, sl_pips, tp_pips; risk=, sl= and tp= are the legacy style.
- A strategy that supplies alert_message on its orders needs the Order fills only condition and {{strategy.order.alert_message}} in the Message box.
The two starting messages
YOUR_LICENSE_ID,{{strategy.order.action}},EURUSD,vol_lots=0.01YOUR_LICENSE_ID,buy,EURUSD,vol_lots=0.01,sl_pips=20,tp_pips=40From PineConnector's own docs, read 23 October 2026: syntax, legacy syntax, no-code strategy alerts, signal authentication.
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 TradersPost webhook JSON JSON with ticker and action; the password is in the webhook URL.
- 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
Does PineConnector use JSON?
No. PineConnector reads one comma-separated command, LicenseID,command,symbol,parameters, such as LicenseID,buy,EURUSD,vol_lots=0.01,sl_pips=20,tp_pips=40. Its docs say not to convert it into JSON, so TradingView sends it as text/plain, the way PineConnector's own examples send it.
What happened to risk=, sl= and tp= in PineConnector alerts?
PineConnector now calls them the legacy style: their meaning depends on the EA's Volume Type and Target Type settings. New alerts should use explicit units such as vol_lots, sl_pips and tp_pips. Its legacy page dates the change to 18 December 2025 for market orders and 27 January 2026 for pending orders.
Can I send {{strategy.order.action}} to PineConnector?
PineConnector's no-code template does, but its docs warn that a strategy's sell can be closing a long, so sending every fill as a buy or sell entry can open a position you did not intend. Building the command per order in Pine, with alert_message, lets an exit send closelong or closeshort.
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.