Skip to content
Important: BestFolio provides information for educational purposes only. Nothing on this site constitutes investment advice. Past performance does not guarantee future results. Read full disclaimer
·3 min read·BestFolio

Automate your TAA with the BestFolio Signals API

If you run a tactical strategy like HAA, you know the monthly drill. Check the new signal, work out the weights, place the trades. Ten minutes, maybe fifteen. BestFolio has always handled that first part for you. Now it can hand the signal straight to whatever does the trading.

The idea is simple. You pull any strategy's monthly signal as JSON or CSV with an API key, and you get the current target allocation back in one call, ready to drop into a QuantConnect algo, an IBKR bot, or a spreadsheet if that's your thing.

What you get

A read-only endpoint that returns a variant's signal:

curl -H "X-API-Key: bf_live_..." \
  "https://bestfolio.app/api/variants/1/signal/export?format=json&limit=6"
{"variant_id": 1, "count": 1, "signals": [
  {"signal_date": "2026-05-29", "regime": "aggressive",
   "allocations": {"IWM": 0.25, "QQQ": 0.25, "PDBC": 0.25, "VEA": 0.25}}
]}

That's the same signal you see on the site and in the monthly email. Just in a shape your code can read. CSV works too, if you'd rather pipe it into a spreadsheet.

Why I built it

Generating a good signal is only half the job. The other half is actually executing it, month after month, without fumbling a trade or talking yourself out of it at the worst possible moment. In my experience, the trades are where people quietly give back the edge their backtest promised. A few of you were already rebuilding our strategies by hand in QuantConnect, which is tedious and easy to get subtly wrong. I figured it was much cleaner to compute the signal once, in one place, and let everything downstream just read from it. I kept the keys read-only on purpose, so a leaked one can never move your money.

The one thing to watch

Here's the catch, and it really matters once you automate. Signals are dated at month-end, and we publish two at a time. The one dated in the last completed month is what you hold right now. The one dated in the current month is a preview for next month, and it keeps shifting until the month actually closes.

So don't just grab the most recent row. That's usually the preview, not the live allocation. Pull a few rows and act on the latest one whose date sits in a month that has already ended. The docs have a five-line Python helper that does exactly that.

Getting started

It's a Pro feature. You generate a key yourself in Settings, under API Keys, then head to the docs for the full reference. Want the signal pushed to you instead of polling for it? There's a webhook now too, for ntfy, Pushover, Gotify, Slack, and the rest. And if you wire it into something clever, send me a link. I'd genuinely love to see it...

Share this article

Related Strategies

Try these strategies on BestFolio

Browse 63+ tactical allocation strategies with monthly signals, walk-forward validation, and portfolio blending. Free to start.

Get Started Free

BestFolio Monthly Briefing

Liked this post? Get a free monthly recap of TAA strategy signals, performance rankings, and market regime updates. No spam, unsubscribe anytime.