Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
openapi: 3.2.0
info:
title: fAlpha.ai Signals API
description: 'Welcome to the fAlpha.ai API. Access trading signals, daily sentiment scores, and scraped news articles for S&P 500 tickers and beyond. API access is currently available to enterprise users only. Please contact info@bam.money to request access. By using the API, you consent to the Terms of Service and Privacy Policy. ## Interactive Docs Guidance
Use `/docs` for quick, small validation requests. For larger batched queries or longer date ranges, prefer the generated `curl` command or call the endpoint URL directly from your browser or API client. Large JSON responses can make the interactive Swagger UI sluggish even when the API itself is healthy. Current date-range and size caps are:
- `GET /signals-history/{ticker}`: up to **365 days**
- `GET /signals-history-batched`: up to **90 days**
- `GET /signals-history-all`: up to **30 days**
- `GET /signals-batched`: up to **100 tickers** per call (latest signal per ticker)
- `GET /screener`: up to **50 rows** per call
After a large test, click **Clear** for that operation or refresh the page to keep the interactive docs responsive. ## Data Dictionary
The API currently returns the following response fields:
| Field | Meaning |
| --- | --- |
| `ticker` | Security ticker symbol, for example `AAPL`. |
| `date` | For signals: the model run date in UTC. For articles: the crawl date in UTC. |
| `period` | Signal forecast horizon. Current supported values are `5d`, `15d`, and `2m`. |
| `regime` | Market regime used for the signal model: `neutral`, `bear`, or `bull`. |
| `signal` | Trading direction returned by the model: `buy` or `sell`. |
| `confidence` | Absolute value of the signal score used to rank signal strength. Recent rows use the index-adjusted score; older historical rows may fall back to the raw score when adjusted data is unavailable. |
| `sentiment` | News sentiment paired with the signal: the **previous calendar day''s** finalized average score (news is crawled overnight — including weekends — so day D''s sentiment isn''t ready when the day-D signal is produced; the most recent finalized reading is D-1''s). Returns `null` when that reading is unavailable (internally, a stored score of `10.0` is a "not computed" sentinel and is always surfaced as `null`). |
| `quality` | Optional block of signal quality metrics. `null` unless the request sets `include_quality=true`; individual metrics may still be `null` when unavailable for a row. |
| `quality.sharpe_ratio` | Risk-adjusted measure of the signal''s recent strength (a Sharpe-ratio proxy). Higher is better; can be negative. |
| `quality.sortino_ratio` | Downside-risk-adjusted counterpart to the Sharpe ratio. |
| `quality.iis_score` | Information-strength score for the signal at this horizon. |
| `quality.normalized_iis` | IIS score normalized for cross-ticker comparison. |
| `quality.percent_positive_pnl` | Percentage of recent signal-following outcomes with positive PnL (0–100). |
| `performance` | Optional realized-performance block on history rows. `null` unless the request sets `include_performance=true`. Values are backfilled once returns are realized, so recent rows return `null` fields. |
| `performance.pnl` | Realized signal-following PnL for the row''s horizon. |
| `performance.ticker_return` / `performance.index_return` | Realized gross-return ratios over the horizon for the ticker and the benchmark index (`1.05` = +5%). |
| `performance.release_date` | When realized returns were backfilled for the row. |
| `as_of` | Screener responses: the model-run date of the screened signal cube (the latest available). |
| `surface` | Usage metering: originating client surface — `excel`, `sheets`, `sdk-python`, `zapier`, or `api` (default) — attributed via the optional `X-Falpha-Surface` request header. |
| `by_client` | Usage metering: split by anonymous install id (optional `X-Falpha-Client` header; each add-in install / spreadsheet generates its own). No user accounts involved.'
termsOfService: https://bam.money/terms
contact:
name: fAlpha.ai
url: https://bam.money/contact
email: info@bam.money
version: 0.2.0
servers:
- url: https://api.falpha.ai
description: fAlpha.ai API server
tags:
# --- truncated at 32 KB (59 KB total) ---
# Full source: https://artifacts.apis.io/falpha-ai/openapi/falpha-ai-signals-api-openapi.yml