Skip to main content

Control Bots Remotely with Webhooks

Last updated August 14, 2026

Webhooks let an outside service open and close your bot trades, so a charting alert, a signal service, or your own tooling can pull the trigger while tradeSteward handles the order work.

How webhook control works

A webhook is a small message sent to a tradeSteward web address. When the message matches one you configured on a bot, that bot opens a trade or closes its open trades. The most common pairing is an alert platform such as TradingView: your chart condition fires, the alert posts the webhook, and your bot enters.

Every webhook request is authenticated with your Bot Webhook Control Token, a secret key tied to your account.

Turn on webhook controls

  1. Go to Account Settings and find the Bot Preferences section.
  2. Turn on Enable Bot Webhook Controls.
  3. Copy your Bot Webhook Control Token from the same page. Treat it like a password.
  Anyone who has your token can open and close trades on your account. Never share it, and if you suspect it leaked, regenerate it immediately from Account Settings. Regenerating invalidates the old token on the spot, so any webhooks already configured on the client end, such as TradingView alerts, stop working until you update them with the new token.

Configure a bot for webhooks

Edit the bot and open its Webhook Remote Control section. There you will find the webhook URL to send messages to, plus two message fields:

  • Webhook Message to Open: the exact text that tells this bot to enter a trade.
  • Webhook Message to Close All Open Trades: the text that tells this bot to exit everything it has open.

Give each bot distinct messages so a single alert triggers exactly the bot you intend. The full request format, with ready-to-paste examples, lives in the Webhook Request Format Reference.

The bot form's Webhook Remote Control section with the Enabled toggle, the webhook URL, masked token, and the Webhook Message to Open body
Everything an alert platform needs lives here: the URL, your IDs, the masked token, and the exact message body to paste.
  Multi-Entry bots do not support webhooks. Converting a webhook-enabled bot to Multi-Entry disables its webhooks; tradeSteward warns you before the conversion completes.

Example: fire a bot from a TradingView alert

Here is the whole loop, end to end, using TradingView as the alert platform:

  1. Edit your bot, open Webhook Remote Control, and copy two things: the webhook URL and the Webhook Message to Open body.
  2. In TradingView, create an alert for your chart condition. In the alert's notifications settings, enable its webhook option and paste the tradeSteward webhook URL.
  3. Paste the Webhook Message to Open body as the alert's message, exactly as copied.
  4. When the alert fires, TradingView posts the message, and the bot opens its trade using its configured legs, strikes, and stops.
  5. Confirm the round trip on the Webhook Activity page, which logs the received message and the result.

Set up a second alert with the Webhook Message to Close All Open Trades body to exit on an opposite condition. The same pattern works for any service that can post a webhook, not just TradingView.

How webhook trades are sized

If the bot has Set Launch Now/Webhook Size enabled in its entry settings, webhook entries use that preset. A bot set to enter When Triggered needs a quantity in the request when this preset is off. A bot that also has a timed entry can omit the quantity and use its normal validated Bot Settings size. See the format reference for the request field.

  Webhook and Launch Now entries skip entry filter checks. A bot that enters When Triggered trades whenever its message arrives, even if a VIX or underlying filter would have blocked a scheduled entry. Build the conditions into your alert instead.

How many webhook trades you can hold at once

Webhook trades are not capped bot by bot. Your plan gives your whole account a single shared pool, and every open webhook trade on every bot draws from it, so one bot can hold several trades at once and you can split the pool across your webhook bots in any combination.

The pool is whatever your plan's bot allowance is not already spending. A bot that is enabled, or that is holding an open trade, takes one place in that allowance; a webhook bot with no scheduled entry gets its place added back, because the trade that place pays for is a webhook trade. A few situations change that arithmetic, and the exact formula with a worked example is in the format reference.

When the pool is used up, further open requests are turned away until one of those trades closes. Because a bot keeps its place for as long as it holds an open trade, closing a position frees room where simply disabling the bot would not.

  This shared pool is separate from a bot's own Max Concurrent Trades setting, which still applies. Whichever limit you reach first is the one that stops the entry.

Watch webhook activity

Open the Bots menu and choose Webhook Activity. Every received webhook is listed with its Time, Bot, Action, Quantity, Source, and Result, so you can confirm alerts are arriving and see how each one was handled.

The Result column names what actually happened, not just the status code your sender received. You will see entries such as Trade launch requested, Bot disabled, Only one open per bot is accepted every 5 minutes, or, when the shared pool is full, how many trades are open against how many you have available. The status code stays alongside in smaller text so you can match a row to what your alert platform recorded. Requests received before results were kept this way show a general description of the code instead.

Two columns are worth knowing: commands that apply to the whole account, such as pausing trading, show Account-wide in place of a bot, and a request that carried no size shows Bot default under Quantity, meaning no size was sent and the bot's own configured size applies.

Availability

Webhook remote control is available on subscription plans that include 15 or more bots. See Choose Your Plan for what each tier includes.