The TradingView webhook checklist
Use this page before you go live, and again whenever an alert goes missing. Part A is about TradingView firing the alert. Part B is about the webhook reaching your endpoint. Part C is about not acting twice. Each item links to a longer guide.
Part A: will TradingView fire it?
- The alert shows Active in the Alerts Manager, not Stopped — Triggered, Stopped manually or Stopped — Expired (Manage alerts).
- The expiration is far enough away. Standard alerts last up to two months; open-ended is for Premium and Ultimate (Introduction to alerts).
- The alert won't trigger more than 15 times in 3 minutes, or TradingView stops it (triggered too often).
- You recreated the alert after your last script or input change (Pine FAQ).
- The script runs without runtime errors and doesn't repaint (custom script issue).
- Frequency is set on purpose: "Once Per Bar Close" for confirmed alerts; "Only once" stops after one trigger.
- Your active alerts fit your plan's alert limit.
More: why didn't my TradingView alert fire?
Part B: will the webhook arrive?
- 2-factor authentication is on (webhook docs). Check that your TradingView plan includes webhook alerts (TradingView plans).
- Webhook URL is ticked in the alert's Notifications tab.
- The URL uses port 443 (or 80). No other ports.
- The host resolves to a public IPv4 address. No IPv6-only hosts, no localhost.
- HTTPS uses a valid, publicly trusted certificate with the full chain.
- Use the final URL. TradingView's docs don't say whether webhooks follow redirects, and a redirect adds a round trip inside the 3-second limit.
- Your firewall allows TradingView's four published sending IPs, if you allowlist.
- Your server replies 2xx within about 3 seconds; slower requests are cancelled (timeout guide).
- The message is what your endpoint expects: valid JSON (double quotes) for
application/json, otherwise it's sent astext/plain. - Placeholders are spelled correctly (placeholder docs).
alert()messages don't process placeholders. - No passwords or credentials in the message body; TradingView warns against it.
More: TradingView webhook not received
Part C: will your app act on each alert once?
- Your server never returns 5xx after it has already acted, because TradingView resends 500–599 (except 504), with a total of 3 such resends (resubmission).
- Each message carries an id built from placeholders, including
{{timenow}}. - Your app stores the ids it acted on and ignores repeats.
- Conditions fire on events (crossovers), not states.
More: duplicate TradingView alerts
Check Part B in one go
Most of Part B can be tested automatically. Our free Webhook Checker for TradingView needs no signup and doesn't store your URL or message (only a one-way hash of the URL, to count tests). Our server sends one test request to your URL and reports:
- HTTPS, and port 443 or 80
- whether the address is public
- whether the host has a public IPv4 address (TradingView doesn't support IPv6)
- whether the TLS certificate is valid
- whether the reply comes back within ~3 s
- whether the status is 2xx
- whether there are redirects
- whether your message template is valid JSON, its placeholders and its size
It also gives you the Part A checklist of TradingView-side causes: expired alert, trigger frequency, 2FA, plan limits and repainting. What it can't do: see TradingView's logs, tell you whether TradingView fired, or test from TradingView's IP addresses.
When the checklist passes but your endpoint isn't always up
Servers restart and APIs stall. If your endpoint can be slow or briefly offline, HoldAlarms answers TradingView as soon as the alert is queued, designed to reply fast, well before its ~3-second timeout and delivers in the background. Failed deliveries are retried up to 5 times, 2 to 60 seconds apart. Retries finish within about 3 minutes, or up to about 6 with Retry-After. Permanent errors (400, 401, 403, 410, 413, 414, 415) aren't retried. Alerts that still fail are parked in a dead-letter queue, and failure emails are grouped and capped at up to 10 a day. HoldAlarms can't help if TradingView never fires or sends the alert. Starter €19/mo, Ops €49/mo.
Questions
How do I test a TradingView webhook?
Use the free Webhook Checker for TradingView to test your URL and message template, then fire a test alert and check the Webhook status column in TradingView's Alerts log.
What are TradingView's webhook requirements?
2-factor authentication, a TradingView plan that includes webhook alerts, port 80 or 443, IPv4, and a reply within about 3 seconds.
Does the checker tell me whether my alert fired?
No. It can't see TradingView's logs. Check the Alerts log in TradingView for that.
Does the checker store my URL?
No. It's free, needs no signup and doesn't store your URL or message (only a one-way hash of the URL, to count tests).
More guides
- Why didn't my TradingView alert fire?
- TradingView webhook timeout: why "request took too long" happens
- TradingView webhook not received: 7 things to check
- Duplicate TradingView webhook alerts: why they happen and how to dedupe them
- Does TradingView retry webhooks?
- TradingView → HoldAlarms → n8n: step-by-step
- TradingView → HoldAlarms → TradersPost: setup and limits
- TradingView → HoldAlarms → PineConnector: setup
- TradingView → HoldAlarms → SignalStack: setup
- TradingView → HoldAlarms → PickMyTrade: setup
- TradingView → HoldAlarms → CrossTrade: setup and limits
- TradingView → HoldAlarms → Alerio: setup
- All guides
- All HoldAlarms questions
HoldAlarms is not affiliated with TradingView. TradingView is a trademark of TradingView, Inc.