API & SDK
Programmatic access to Sigmo's research platform. A Python SDK, a scoped HTTP API for training and backtesting, hosted notebooks with the full data catalogue, and signed webhooks.
from sigmo_sdk import Client
client = Client() # reads SIGMO_API_KEY
sample = client.sample_bars(tf="1day")
models = client.list_models()
job = client.train_and_wait(symbols=["AAPL", "MSFT", "NVDA"],
timeframes=["1day"], model_type="lightgbm",
label_type="triple_barrier", lookback_days=730)
result = client.backtest_and_wait(model_id=job.model_id,
start_date="2024-01-01", end_date="2025-01-01")
Everything Sigmo does in the app is available to your own code. Create a scoped key, install the SDK and run the same research pipeline from a script, a notebook or your backend.
Scoped API keys
Create named keys from Profile → Developer settings → API Keys. Scopes are explicit: ml:read to read samples, list models and poll jobs, ml:train to launch training and backtests. Keys can expire and be revoked. A key never grants more than the account it belongs to.
Python SDK
from sigmo_sdk import Client
client = Client() # reads SIGMO_API_KEY
sample = client.sample_bars(tf="1day")
models = client.list_models()
job = client.train_and_wait(symbols=["AAPL", "MSFT", "NVDA"],
timeframes=["1day"], model_type="lightgbm",
label_type="triple_barrier", lookback_days=730)
result = client.backtest_and_wait(model_id=job.model_id,
start_date="2024-01-01", end_date="2025-01-01")
Training and backtest jobs are asynchronous and reproducible: every run records its configuration, its data window and its metrics. Quotas are enforced server-side and returned in the response, so your code reads the real limits instead of hard-coding them.
Hosted notebooks and the data catalogue
Inside a hosted Sigmo notebook the SDK is already loaded and connected to the full catalogue: bars at every timeframe, point-in-time panels, event datasets with filing vintages preserved, and options accessors for chains, snapshots, activity, tape and replay.
import sigmo_sdk as sigmo
sigmo.catalog()
sigmo.coverage(["AAPL"], tf="1day")
rows = sigmo.events("segment_revenue", ["AMZN"], "2025-01-01", "2025-12-31")
HTTP API
The gateway at api.sigmo.org exposes the research routes directly: sample bars, model listing, training start and status, backtest start and result. Responses are plain JSON; errors follow FastAPI's detail shape. An OpenAPI document and a Postman collection ship with the docs.
Webhooks
Register an endpoint and receive signed deliveries when a training run or backtest reaches a terminal state. Every delivery carries a timestamp and an HMAC signature so your receiver can verify it; a test ping is one call away.
Organisations
Teams share keys, wallets and models through organisations with roles and invitations.
Access
Research routes require a Pro plan or higher. A key does not upgrade an account. Sigmo does not offer order execution through the API; connected brokerage actions stay inside the app.
See it on your own watchlist
Sigmo is free to start. Open the app, ask one question about a ticker you follow, and take it from there.