TradingView webhook questions, answered

HoldAlarms sits between TradingView and your endpoint. It answers TradingView straight away, queues each alert, retries delivery, and puts alerts that still fail in a dead-letter queue. It's not a signals service and not a broker. Here's how that works in practice.

Why didn't my TradingView alert reach my endpoint?

The most common reasons, roughly in order:

  • Your endpoint answered too slowly. TradingView waits only about 3 seconds for an answer. If your endpoint does its work first and answers later, TradingView cancels the request.
  • Your server was down or returned an error. If your server returns HTTP 500–599 (except 504), TradingView sends the webhook again after 5 seconds, with a total of 3 such resends (webhook resubmission).
  • Webhooks aren't enabled on your TradingView account. Webhooks need a paid TradingView plan that includes them, and two-factor authentication turned on in your TradingView account settings.
  • The alert didn't fire or has stopped. For example it expired or was paused in TradingView. A heartbeat can tell you when a scheduled alert stops arriving.

HoldAlarms helps with the first two: it answers TradingView straight away, then delivers to your endpoint with retries. It can't help if TradingView never sends the alert.

Step by step: TradingView webhook not received and why an alert didn't fire.

What is TradingView's 3-second timeout?

When an alert fires, TradingView sends it to your webhook URL and waits about 3 seconds for an answer. If no answer arrives in time, the request is cancelled. See TradingView's webhook help page.

HoldAlarms answers TradingView with HTTP 200 as soon as your alert is queued, designed to reply fast, well before that timeout, then passes it to your endpoint in the background. That takes the time pressure off your endpoint. It doesn't make alerts arrive sooner: HoldAlarms is one extra hop between TradingView and your endpoint.

More: TradingView webhook timeout guide.

What happens when my server is down?

HoldAlarms queues the alert and retries. Your endpoint gets 10 seconds per attempt to answer. Any 2xx status counts as accepted; any other status, a redirect, a network error or a timeout counts as a failure. Failures are retried, except replies of 400, 401, 403, 410, 413, 414 or 415: those are permanent errors and go straight to the dead-letter queue. Replies of 404, 405, 422 and 429 are retried like other failures.

If your endpoint is down for a short time, HoldAlarms retries up to 5 times, 2 to 60 seconds apart. Retries finish within about 3 minutes, or up to about 6 with Retry-After. If it still can't deliver, the alert goes to the dead-letter queue, you get an email (failure emails are grouped and capped at up to 10 a day), and the dashboard shows each recent alert's status. Email support and we'll look at it with you.

More: TradingView webhook not received.

How do retries work?

If a delivery fails, we retry up to 5 times, 2 to 60 seconds apart. Retries finish within about 3 minutes, or up to about 6 with Retry-After. That's 6 attempts at most. Each attempt carries an X-HookWatch-Attempt header so your endpoint can tell a retry from the first try. Each attempt also carries the same Idempotency-Key header (built from the alert's id), so your endpoint can drop duplicates. If your endpoint replies with a Retry-After header, we wait at least that long, up to 60 seconds. Retries don't count as extra alerts.

If you use several destinations, each one gets its own retries, so one slow endpoint doesn't hold up the others.

More: Does TradingView retry webhooks?

What is the dead-letter queue, and what can I do about an alert in it?

The dead-letter queue is where an alert goes when delivery to your endpoint has failed and we've stopped retrying. It's listed there with the reason it failed; you see it in your dashboard, and failure emails are grouped and capped at up to 10 a day.

Email support@holdalarms.com and we'll look at it with you. If you send the alert again yourself, think first: its data may be out of date by now.

What if the same alert arrives twice?

HoldAlarms drops exact repeats that arrive close together. If your account receives the same message (same body and content type) again within 20 seconds of the first one, HoldAlarms answers TradingView normally but doesn't forward the repeat and doesn't count it as a new alert.

This means two genuinely separate alerts with identical text within 20 seconds are treated as one. If that can happen in your setup, add "fired_at": "{{timenow}}" or another changing field to the message so each alert is different.

Every forwarded alert also carries an X-HookWatch-Event-Hash header (a hash of the content type and body), which your endpoint can use for its own duplicate checks.

More: duplicate TradingView alerts and how to dedupe them.

Does it work with my existing webhook URL?

HoldAlarms forwards your alert message unchanged, with the same content type (application/json or text/plain), to any public HTTPS URL you add as a destination. So if your tool gives you a webhook URL that accepts TradingView alerts, you can put that URL in HoldAlarms and keep using the message format your tool expects. That can be your own app or server, or a third-party service that gives you a webhook URL, such as 3Commas or TradersPost.

We don't have official integrations or partnerships with these services, and we can't vouch for how they handle the alert once it arrives. HoldAlarms adds a few X-HookWatch-* headers and doesn't pass other TradingView headers on, so a tool that checks those headers may need adjusting. Send a test alert from the dashboard to check.

Setup guides for n8n, TradersPost, PineConnector, SignalStack, PickMyTrade, CrossTrade and Alerio are in our guides.

Can I send TradingView alerts to an AI agent?

Yes. Your agent needs a public HTTPS URL that accepts a POST. Add that URL as a destination, and your agent gets each TradingView alert, with retries and the dead-letter queue behind it.

HoldAlarms only delivers the alert. It doesn't run, host or supervise your agent, and what the agent decides to do with the alert is up to you.

What does it cost, and how does the free trial work?

Starter is €19 a month or €190 a year, with up to 3 destinations and 1 heartbeat. Ops is €49 a month or €490 a year, with up to 15 destinations, 5 heartbeats and priority support. Yearly plans give you 12 months for the price of 10. Prices are in EUR. The amount shown at checkout is the amount you pay.

The free trial covers your first 300 alerts or 7 days, whichever comes first. No card needed. It includes 1 destination and 1 heartbeat. Test alerts sent from the dashboard don't count toward the 300. When it ends, forwarding pauses until you pick a plan; you're never charged automatically. See pricing.

Is HoldAlarms a signals service or a broker?

No. HoldAlarms doesn't create trading signals, give advice, place orders or hold money. It only delivers the alerts you set up in TradingView to the destinations you choose. A delivered alert means your destination accepted it, not that your app acted on it.

What counts as an alert?

Each webhook TradingView sends to your HoldAlarms URL counts as one alert. Retries don't count, and an alert sent to several destinations still counts once. The free trial covers your first 300 alerts (or 7 days, whichever comes first).

What happens when my trial ends?

Forwarding pauses and HoldAlarms doesn't forward the alert: when the 7 days are over it answers TradingView with HTTP 402 (payment required), and once the 300 free alerts are used it answers HTTP 403. Pick a plan to resume. You're never charged without choosing one.

Can I cancel anytime?

Yes. Cancel by email to support@holdalarms.com or with the “Verträge hier kündigen” (German for “cancel a contract here”) button at any time. Your plan stays active until the end of the period you've already paid for, and you won't be charged again.

Can I get a refund?

Yes: a full refund of your first payment if you ask within 14 days of it (once per person or organisation; your paid access then ends). Consumers also have a 14-day right of withdrawal. See Refunds & withdrawal.

How do I know TradingView is still sending?

Set up a heartbeat: a TradingView alert on a fixed schedule (every 1, 5 or 15 minutes) that posts to your heartbeat URL. If no beat arrives within the interval plus 60 seconds, we email you once, and again when beats resume. It can't tell you about a single alert that wasn't sent. The free trial and Starter include 1 heartbeat, Ops includes 5.

Do I still need my current webhook endpoint?

Yes. HoldAlarms sits between TradingView and the endpoint you already use (your own app or server, a third-party webhook service, a Discord or Telegram relay) and makes sure the alert reaches it.

Still stuck? Email support@holdalarms.com, or set it up in 5 minutes, step by step.