How to Route One TradingView Alert to Multiple Exchanges

TradingView can only post an alert to one webhook URL. Here's how a relay fans that single signal out into one order per exchange—safely, with symbol mapping, sizing, and idempotency.

You built a strategy in TradingView, wired up a webhook, and orders now land on your exchange automatically. The next question almost always follows: can you route one TradingView alert to multiple exchanges at once? Maybe you run the same setup on Bybit and Binance, or you want to split size across venues to reduce concentration on a single API. This guide explains how a one-to-many fan-out works, what changes when a single signal fans out to several destinations, and how to keep it reliable.

The short version: TradingView can only send an alert to one webhook URL. So the fan-out does not happen inside TradingView. It happens at the relay layer that receives the alert and decides where the resulting orders go. You control the logic. The relay handles the delivery.

Why route one signal to several exchanges

Traders duplicate a signal across venues for a few practical reasons. Liquidity and fees differ by exchange, so the same market order can fill at slightly different prices depending on where it lands. Splitting an order across two venues can reduce how much you lean on any single order book. Some traders also keep balances on more than one exchange for operational resilience, so a single strategy needs to act on all of them.

Whatever the reason, the goal is the same: one decision in TradingView should turn into several orders, each on a different exchange, without you copying alerts by hand. Doing that by hand defeats the point of automation. It needs to be a routing rule, not a manual step.

One alert, many destinations: the core idea

TradingView fires a single HTTP request to a single webhook URL when your alert condition triggers. That is the hard constraint. You cannot list several URLs in one alert. So the pattern is:

  • TradingView sends one webhook to one endpoint.
  • The receiving service parses the payload and identifies the intended action.
  • The service looks up your routing rule for that strategy.
  • It submits one order per target exchange, using the API keys you connected for each.

This is a fan-out. A single inbound message becomes multiple outbound orders. The important shift is that your alert payload no longer names a single exchange. Instead it names a strategy or a route, and the routing rule decides which exchanges are in that route.

How the fan-out works, step by step

Here is the flow from alert to filled orders when you route to more than one venue.

  • Your Pine Script strategy or indicator triggers an alert.
  • TradingView posts the alert message to your webhook URL. Keep the payload structured and machine-readable; a clean JSON body is far easier to route than free text. If you have not settled on a format yet, see our guide on how to structure a TradingView webhook JSON payload for orders.
  • The relay validates the request. This is where webhook signing matters: verifying an HMAC signature confirms the message really came from your setup and was not replayed or forged. Our walkthrough on securing a TradingView webhook with HMAC signing covers the mechanics.
  • The relay reads the route named in the payload and expands it into a list of target exchanges.
  • For each exchange, it translates the order into that venue's format and submits it using your trade-only API key for that exchange.
  • Each exchange returns an acknowledgment, and the relay records the result per venue.

The critical design point is step 4. The routing rule is the single source of truth for which exchanges receive an order. Change the rule and every future alert follows the new route. TradingView never has to know.

Handling the differences between exchanges

The moment you fan out to several venues, small differences stop being cosmetic. The same intent has to be expressed correctly on each exchange, and they do not agree on the details.

Symbols differ. A pair might be `BTCUSDT` on one venue and `BTC-USDT` or `XBTUSD` on another. Your route needs a mapping from your internal symbol to each exchange's symbol.

Order sizing and precision differ. Minimum order size, quantity step, and price precision are not the same everywhere. An order that is valid on one exchange can be rejected on another for being below the minimum or having too many decimals. If you split a position across venues, decide how much goes to each and round each leg to that venue's rules. Our guide on how to control order size in TradingView webhook alerts is a useful companion here.

Market structure differs. Spot and futures behave differently, and not every symbol exists on every venue. A route should only include exchanges that actually list the instrument you are trading.

Because any single leg can fail on its own, treat each exchange submission as independent. One venue rejecting an order should not silently cancel the others. Log every leg, surface the failures, and decide per strategy whether a partial fan-out is acceptable or should be rolled back. Our notes on how to handle failed and rejected orders in a trading bot go deeper on this.

Keeping the fan-out safe and idempotent

Duplicate delivery is the quiet risk of any webhook system. TradingView can retry, networks can hiccup, and a single alert can arrive more than once. When one alert becomes several orders, a duplicate can multiply into several unwanted orders across every venue in the route.

The defense is idempotency. Give each alert a stable identifier and derive a deterministic order id per exchange from it. If the same alert arrives twice, the relay recognizes the repeat and does not submit a second set of orders. This is worth understanding before you turn on a multi-exchange route; our explainer on how idempotency keys prevent duplicate trades walks through the pattern.

Security compounds with each key you add. Every exchange in a route means one more API key the relay holds. Use trade-only keys with no withdrawal permission on every venue, so a key can place and cancel orders but can never move funds off the exchange. Your funds stay on your own exchange accounts the entire time. A relay that fans out to five venues should still never be able to withdraw from any of them.

Best practices for multi-exchange routing

  • Name a route, not an exchange, in your TradingView alert payload, so the destination list lives in one editable rule.
  • Use trade-only API keys with withdrawal disabled on every connected exchange.
  • Maintain an explicit symbol map from your internal ticker to each venue's symbol.
  • Round every leg to that exchange's size and price precision before submitting.
  • Make each alert idempotent so retries and duplicate deliveries cannot double your orders.
  • Treat each exchange leg as independent; log per-venue results and alert on failures.
  • Test a new route on testnet or with the smallest allowed size before running it live.
  • Start with two exchanges, confirm both fill as expected, then add more.

Frequently Asked Questions

Can TradingView send an alert to more than one webhook?

No. A TradingView alert posts to a single webhook URL. To reach several exchanges from one alert, the receiving service has to fan the message out to each venue. The multiplication happens after TradingView, not inside it.

Do I need a separate API key for each exchange?

Yes. Each exchange issues its own API keys, so a route that touches three venues uses three keys. Create a trade-only key with withdrawal disabled on each one, and connect all of them so the relay can submit orders to every venue in the route.

What happens if one exchange rejects the order but others accept it?

By default each leg is independent, so the accepted orders still go through while the rejected one is logged as a failure. Whether you want to keep the partial fill or reverse it is a per-strategy decision. Design the route so failures are visible rather than silent.

Will splitting an order across exchanges get me a better fill?

Not necessarily. Prices, fees, and liquidity vary by venue, so results differ each time and cannot be predicted in advance. Routing across exchanges is about operational control and spreading exposure across order books, not about a predictable outcome.

How do I avoid duplicate orders when routing to many exchanges?

Use idempotency. Attach a stable id to each alert and derive a deterministic order id per exchange. If the same alert is delivered twice, the relay recognizes it and skips the repeat instead of placing a second set of orders.

Ready to route one signal to many venues

Fanning a single TradingView alert out to several exchanges is a routing problem, not a TradingView problem. Keep your strategy logic in TradingView, define the destination list as a rule, and let the relay translate one signal into one order per venue safely and idempotently. SignalToExchange is built for exactly this: connect trade-only keys on each exchange, point one webhook at the relay, and route a signal to multiple venues without giving up custody of your funds. Request access or start your free trial to set up your first multi-exchange route.

Automated trading involves risk. SignalToExchange is execution infrastructure and does not provide financial advice, trading signals, or guarantees of any kind.

Secure Signal Routing Infrastructure

Non-custodial execution. Trade-only API keys. Independent infrastructure built for reliability.

Request Early Access

Trade-only API key enforcement. No withdrawal permissions. No custody.