Integrations
These are transports, not tiers. Every one of them ends in the same thing: one order, appended to your strategy’s public hash chain, which nobody can edit afterwards. Pick whichever your software can actually send.
Travels in an Authorization header, where a secret belongs. Use it whenever your software can set one.
Travels inside a URL or an email address, because TradingView, MetaTrader and email cannot send headers. Separate from the key on purpose: URLs leak into browser history and proxy logs, so a leaked signal URL costs you one rotation and never your key. Create one on your account page.
One line, one order. Case and spacing do not matter; commas and an “@” before the price are fine. Anything it cannot read with certainty is refused rather than guessed at, because the result is permanent.
BUY AAPL 10 SELL AAPL 10 MARKET BUY AAPL 10 LIMIT 150.25 SELL AAPL 10 STOP 141
Free. No approval, no account beyond this one.
One call per order, with the strategy’s key in a header. This is the only route that can send a header, which is why it is the one to use when you have the choice.
curl -X POST https://truefills.com/api/v1/strategies/YOUR-SLUG/orders \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"action":"buy","symbol":"AAPL","qty":10,"type":"limit","limit":150.25}'Free on TradingView's side for webhook alerts, which their paid plans include.
TradingView cannot send an Authorization header, so the credential lives in the URL. Create a signal URL on your account page, paste it into the alert’s Webhook URL box, and put the order in the alert message.
BUY {{ticker}} 10 LIMIT {{close}}JSON works too, if you prefer to be explicit:
{"action":"buy","symbol":"{{ticker}}","qty":10,"type":"market"}Free to write. MT4 has been in maintenance since 2022 and takes no new broker licences, so prefer MT5 for anything new.
WebRequest() is disabled by default and refuses any address you have not allowed. In the terminal: Tools → Options → Expert Advisors → allow WebRequest, and add https://truefills.com to the list. Without that step the call returns -1 and nothing is sent.
// Call after your EA decides to trade.
void SendSignal(string action, string symbolName, double qty)
{
string url = "https://truefills.com/api/v1/signals/YOUR_SIGNAL_TOKEN";
string body = action + " " + symbolName + " " + DoubleToString(qty, 0);
char post[], result[];
string headers = "Content-Type: text/plain\r\n";
string resultHeaders;
StringToCharArray(body, post, 0, StringLen(body));
int status = WebRequest("POST", url, headers, 5000, post, result, resultHeaders);
if(status == -1)
Print("WebRequest blocked. Allow https://truefills.com in Tools > Options > Expert Advisors.");
else if(status != 201)
Print("Signal refused (", status, "): ", CharArrayToString(result));
}Free to develop. NinjaTrader's vendor licensing service is free for approved developers if you later distribute the add-on.
NinjaScript is C#, so the whole thing is one HttpClient call. Put this in your strategy and call it wherever you submit an order.
private static readonly System.Net.Http.HttpClient Http = new System.Net.Http.HttpClient();
private async void SendSignal(string action, string ticker, int qty)
{
var url = "https://truefills.com/api/v1/signals/YOUR_SIGNAL_TOKEN";
var body = new System.Net.Http.StringContent(
$"{action} {ticker} {qty}", System.Text.Encoding.UTF8, "text/plain");
try
{
var res = await Http.PostAsync(url, body);
if (!res.IsSuccessStatusCode)
Print("Signal refused: " + await res.Content.ReadAsStringAsync());
}
catch (Exception e) { Print("Signal failed: " + e.Message); }
}The API itself has no fee, but TradeStation only issues a key once you hold a funded account with them, with a $10,000 minimum. That is a real barrier, and it is theirs, not ours.
If you already have a funded TradeStation account, their WebAPI is a normal REST API and you can post orders here from EasyLanguage. If you do not, the signal URL below reaches us from anything that can make an HTTP request, which includes most of what people bolt onto TradeStation anyway.
POST https://truefills.com/api/v1/signals/YOUR_SIGNAL_TOKEN Content-Type: text/plain BUY AAPL 10 LIMIT 150.25
Free.
Point the alert at the address on your account page and put the order in the subject or the first line of the body. The sender is never trusted, because a From address is trivially forged: what authorises the order is the address it was sent to, which contains a token only you have.
BUY AAPL 10 LIMIT 150.25
The weakest route here, and worth saying so. Email is unauthenticated, unordered and can be delayed for minutes. Use it when nothing better is available.
Free.
Not a way to send orders at all, and the one that matters most. Link the account your bot trades and the record stops being what you posted and starts being what your broker did. Everything above produces claims until you do this.
Free.
There is a form on your account page under each strategy. Whatever you post is sealed the moment it arrives, exactly like an order from a bot, and cannot be edited or removed afterwards.
One route you may have seen elsewhere is missing: Collective2’s Seetu is their own product, not an open protocol, so there is nothing for anyone else to integrate with.