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

Updated

Automate BestFolio: Signals API, Webhooks and MCP

This article also covers what was previously published at /blog/signals-api.

BestFolio computes every strategy's monthly signal once, in one place. You can read it on the strategy page or in the monthly email, or hand it straight to the tools you already use. There are 3 ways to do that: a read-only API, a webhook that pushes each new signal to you, and an MCP connector that lets Claude or ChatGPT answer questions about your strategies and portfolios.

Why I built it

Generating a good signal is only half the job. The other half is 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 members were rebuilding our strategies by hand in QuantConnect, which is tedious and easy to get subtly wrong. It is much cleaner to compute the signal once and let everything downstream read it. I kept the keys read-only on purpose, so a leaked one can never move your money.

The Signals API

One read-only endpoint returns a strategy variant's signal as JSON or CSV:

curl -H "X-API-Key: bf_live_..." \
  "https://bestfolio.app/api/variants/1/signal/export?format=json&limit=6"

Here is one row as the API returns it, the HAA Standard signal dated 29 May 2026 that I used as the example when the API launched in June:

FieldValue
signal_date2026-05-29
regimeaggressive
IWM0.25
QQQ0.25
PDBC0.25
VEA0.25

Each row carries the signal date, the regime and the target weight of every ETF. It is the same signal you see on the site and in the monthly email, in a shape a QuantConnect algorithm, an IBKR script or a spreadsheet can read. The same key reaches your own portfolios too. The OpenAPI spec lists every route if you want to generate a client.

What you can readRouteScope
Every strategy with its current signal and the next-month preview/api/strategies/summaryCatalog
One strategy: variants, metrics, signals/api/strategies/slug/{slug}Catalog
A variant's signal history, JSON or CSV/api/variants/{id}/signal/exportCatalog
The processed and execution-ready allocation/api/portfolios/{id}/processed-allocation, /rollup/executionYour portfolios
Drift and an actionable trade list/api/portfolios/{id}/drift, /trade-listYour portfolios
The blended backtest and the walk-forward NAV/api/portfolios/{id}/backtest, /wf-navYour portfolios

The one thing to get right before you automate

Here is the catch, and it really matters once code places the trades. The API returns the active signal and, near the end of the month, a preview of the next one. The preview is recomputed every trading morning until its cutoff close, so it is not actionable yet.

So never just grab the most recent row: that is often the preview. The JSON response names both explicitly, with a top-level current_signal for the active allocation and next_signal for the preview, and every row carries its status, its effective date and the dates it is meant to be held. Act on the current signal, check its holding period, and treat anything marked provisional as information only. The API reference walks through it.

Webhooks: the signal comes to you

If you would rather not poll, add an HTTPS webhook in Settings. Each new signal is posted to it, and it works with ntfy, Pushover, Gotify, Slack, Discord or your own receiver. Every ticker in the payload says whether its weight increases or decreases, next to the buy or sell action.

Connect your AI assistant over MCP

BestFolio also runs a remote MCP server. Add https://bestfolio.app/mcp to Claude or ChatGPT as a custom connector and sign in with your BestFolio account when it asks. There is no key to paste: the connector is authorised against your account, and you can disconnect it at any time. Then ask about your strategies, signals and portfolios in plain language.

The server exposes 10 read-only tools. The catalog tools answer for any paid member; the portfolio tools only see portfolios that belong to your own account.

ToolWhat it returnsScope
list_strategiesThe catalog with variant idsCatalog
get_strategy_detailOne strategy by slug: variants, metrics, signalsCatalog
get_strategy_signalA variant's current signal, the next-month preview and past monthsCatalog
get_portfolio_allocationThe processed ticker-to-weight allocationYour portfolios
get_portfolio_executionThe execution-ready allocationYour portfolios
get_portfolio_rollupNet exposure analyticsYour portfolios
get_portfolio_driftTarget-vs-actual drift, sleeve by sleeveYour portfolios
get_portfolio_trade_listA buy, sell and hold listYour portfolios
get_portfolio_backtestThe blended backtest: NAV, returns, metrics, drawdownYour portfolios
get_portfolio_walkforwardThe walk-forward NAV series and metricsYour portfolios

Claude does this in a couple of clicks. ChatGPT keeps custom connectors behind Developer mode, which needs a paid ChatGPT plan, and Business or Enterprise workspaces need an admin to allow it first. Terminal clients such as Claude Code can present an API key instead of signing in.

Getting started

The API, webhooks and the connector are part of the Pro plan. Generate a key yourself in Settings, under API Keys, then read the API reference. On the free plan, you can upgrade any time on the pricing page. And if you wire BestFolio into something clever, send me a link. I would genuinely love to see it.

Corrections

  • : The tool table gave a June catalog size. The catalog has grown since, so the row no longer quotes a count.

Revision history

  1. Merged with the Signals API introduction, October 3, 2026

    The June post on the Signals API now lives here. Its guidance on choosing the active signal was updated to the current API fields (current_signal and next_signal); webhooks and an example signal row were added.

Past performance does not guarantee future results. Backtested results are hypothetical and do not represent actual trading.

Written with the help of AI tools and reviewed before publication.

Share this article

Data and method

Study dates and assumptions are documented in the article and its revisions. Our current methodology explains the platform's data sources, proxy histories, trade timing and inflation treatment.

Try these strategies on BestFolio

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

Create free account

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.