QuantLogix Signal API

Real-time multi-factor stock signals for any US equity or ETF. One API call — composite intelligence from technical analysis, momentum, fundamentals, microstructure, and options flow.

Authentication

All API requests require an API key. Pass it via:

# Authorization header (recommended)
curl -H "Authorization: Bearer ql_your_key_here" https://quantlogix.ai/api/v1/signal?ticker=NVDA

# X-API-Key header
curl -H "X-API-Key: ql_your_key_here" https://quantlogix.ai/api/v1/signal?ticker=NVDA

# Note: passing the key as a ?apikey= query parameter is no longer supported —
# query strings are written to access logs, which would leak your key.

API Access

API access starts free — every account can generate a key. Generate keys from your profile page; the same ql_ keys also work with the MCP server for AI agents.

Free

$0
100 calls/month · 5 req/min
Signal + News
Free ql_ key on every account

Pro

$149/mo
10,000 calls/month · 60 req/min
+ Screener, batch signals
Private companies + 13F
Engine model card
QL Agents API (ask, create, run)

Institutional

$299/mo
Unlimited · 300 req/min
+ Day & Swing signals
Microstructure (VPIN, OFI)
Earnings setup intelligence

Endpoints

GET /api/v1/signal

Real-time composite signal for any US stock or ETF.

GEThttps://quantlogix.ai/api/v1/signal?ticker=NVDA
ParameterTypeDescription
tickerstringStock or ETF ticker symbol (required)

Response:

{
  "ticker": "NVDA",
  "signal": "Bullish",
  "composite_score": 72,
  "confidence": 55,
  "scores": {
    "technical": { "score": 78, "weight": 0.55, "details": { "rsi": 58.3, "sma_20": 132.45, "sma_50": 128.90, "sma_200": 115.20, "macd_histogram": 1.234 } },
    "momentum": { "score": 65, "weight": 0.45, "details": { "change_pct": 2.15, "volume_ratio": 1.42 } }
  },
  "price": { "current": 135.50, "prev_close": 132.75, "change": 2.75, "change_pct": 2.07, "vwap": 134.20, "volume": 45200000, "after_hours": 136.10 },
  "indicators": { "rsi": 58.3, "sma_20": 132.45, "sma_50": 128.90, "sma_200": 115.20, "macd_histogram": 1.234 },
  "microstructure": { "score": 68, "health": { "label": "Healthy" }, "bias": { "direction": "Bullish", "strength": 3 } },
  "timestamp": "2026-03-31T12:00:00.000Z"
}

GET /api/v1/microstructure

Market microstructure analysis — VPIN, Amihud illiquidity, Kyle's lambda, order flow, smart money, institutional flow. Institutional tier only.

GEThttps://quantlogix.ai/api/v1/microstructure?ticker=NVDA
ParameterTypeDescription
tickerstringStock or ETF ticker symbol (required)

Response includes: VPIN, Amihud Illiquidity, Kyle's Lambda, Roll Spread, Bid-Ask Spread, Order Flow Imbalance, RVOL, HV 30-Day, Intraday Volatility, Point of Control, Smart Money Index, Price Efficiency, Volatility Regime, Institutional Flow (buy/sell %), Volume Profile, Hourly Volume Distribution, Cumulative Volume Delta.

GET /api/v1/news

Multi-source aggregated news — Finnhub, Yahoo Finance, CNBC. Deduplicated and sorted by date. Available on the Free tier.

GEThttps://quantlogix.ai/api/v1/news?ticker=NVDA&limit=10
ParameterTypeDescription
tickerstringStock or ETF ticker symbol (required)
limitintegerMax articles to return (default 10, max 50)

GET /api/v1/seasonality

Calendar-month seasonality profile from up to 15 years of adjusted daily history — the API behind the QL Seasonality Map. The in-progress month is excluded from the stats and reported separately. Available on the Free tier.

GEThttps://quantlogix.ai/api/v1/seasonality?ticker=NVDA
ParameterTypeDescription
tickerstringStock or ETF ticker symbol (required)

Response:

{
  "ticker": "NVDA",
  "month_count": 179,
  "years_covered": 14.9,
  "from": "2011-07", "to": "2026-07",
  "months": [
    { "month": 1, "label": "Jan", "n": 15, "avg": 0.013, "median": 0.0159, "win_rate": 0.6,
      "best": { "year": 2019, "ret": 0.0801 }, "worst": { "year": 2022, "ret": -0.0527 } }
  ],
  "strongest": { "month": 5, "label": "May", "avg": 0.1224 },
  "weakest": { "month": 12, "label": "Dec", "avg": -0.015 },
  "current": { "month": 7, "label": "Jul", "avg": 0.058, "win_rate": 0.6429, "n": 14, "partial_ret": 0.011 },
  "api_version": "v1"
}

GET /api/v1/gap-stats

Overnight-gap profile from up to 10 years of adjusted daily history — the API behind QL Gap Stats. Fill rate and follow-through by direction and gap size, plus the largest gaps on record and the most recent gap's outcome. A gap counts at ≥0.5% and is filled when the session trades back to the prior close. Available on the Free tier.

GEThttps://quantlogix.ai/api/v1/gap-stats?ticker=TSLA
ParameterTypeDescription
tickerstringStock or ETF ticker symbol (required)

Response:

{
  "ticker": "TSLA",
  "sessions": 2514, "from": "2016-07-12", "to": "2026-07-10",
  "gap_count": 1493, "gap_frequency": 0.5939,
  "up": { "n": 782, "fill_rate": 0.62, "follow_rate": 0.48, "avg_gap": 0.021, "avg_open_close": -0.001 },
  "dn": { "n": 711, "fill_rate": 0.58, "follow_rate": 0.51, "avg_gap": -0.02, "avg_open_close": -0.003 },
  "buckets": [
    { "dir": "up", "size": "small", "label": "0.5–1%", "n": 231, "fill_rate": 0.81, "follow_rate": 0.42, "avg_gap": 0.0074, "avg_open_close": 0.0011 }
  ],
  "recent": { "window": "last 252 sessions", "gap_count": 148, "up": { }, "dn": { } },
  "largest_up": [ { "date": "2020-02-04", "gap": 0.1213, "dir": "up", "filled": false, "open_close": 0.017 } ],
  "largest_dn": [ ],
  "last_gap": { "date": "2026-07-10", "gap": -0.011, "dir": "dn", "filled": true, "open_close": 0.004 },
  "api_version": "v1"
}

GET /api/v1/street-grades

Wall Street report card from up to 6 years of analyst rating actions — the API behind QL Street Grades. Post-upgrade and post-downgrade forward returns vs the stock's own baseline drift, the 12-month price-target hit rate, and a per-firm "beat the tape" leaderboard. Forward returns start at the close of the action day; actions without a complete horizon window are excluded. Available on the Free tier.

GEThttps://quantlogix.ai/api/v1/street-grades?ticker=NVDA
ParameterTypeDescription
tickerstringStock or ETF ticker symbol (required)

Response:

{
  "ticker": "NVDA",
  "from": "2020-07-14", "to": "2026-07-10",
  "actions_total": 1214, "upgrade_count": 38, "downgrade_count": 21, "firms_covered": 62,
  "read": "Upgrades on this name have beaten the tape — worth a look when one lands.",
  "edge_3m": { "upgrades": 0.043, "downgrades": -0.021 },
  "scoreboard": {
    "m1": { "upgrades": { "n": 34, "median": 0.062, "win_rate": 0.71 }, "downgrades": { "n": 19, "median": -0.011, "win_rate": 0.47 } },
    "m3": { }, "m6": { }
  },
  "baseline": { "m1": { "n": 1483, "median": 0.031, "win_rate": 0.63 }, "m3": { }, "m6": { } },
  "targets": { "scored": 512, "hit_rate_12m": 0.64, "median_implied": 0.18, "median_realized_12m": 0.42 },
  "firms": [ { "firm": "Morgan Stanley", "calls": 6, "beat_tape": 5, "beat_rate": 0.8333, "last_action": "2026-05-29" } ],
  "recent": [ { "date": "2026-06-05", "firm": "China Renaissance", "action": "initiates_coverage_on", "rating": "buy", "pt": 319, "ret_since": 0.021 } ],
  "api_version": "v1"
}

GET /api/v1/dca

Dollar-cost-averaging backtest on real adjusted history — the API behind QL DCA Lab. Buys at the first session's close of each month with fractional shares; returns money-weighted XIRR, max drawdown, perfect-vs-worst-timing counterfactuals, lump-sum comparison, and the same plan run on SPY. Available on the Free tier.

GEThttps://quantlogix.ai/api/v1/dca?ticker=AAPL&monthly=500&years=10
ParameterTypeDescription
tickerstringStock or ETF ticker symbol (required)
monthlyintegerDollar amount invested each month, 10–1000000 (default 500)
yearsintegerBacktest lookback in years, 1–15 (default 10)

Response:

{
  "ticker": "AAPL",
  "monthly_amount": 500, "purchases": 120,
  "from": "2016-08-01", "to": "2026-07-10", "years": 9.9,
  "invested": 60000, "final_value": 154210.55,
  "profit": 94210.55, "multiple": 2.5702, "xirr": 0.1731,
  "max_drawdown": -0.31,
  "best_purchase": { "date": "2016-08-01", "price": 24.15 },
  "worst_purchase": { "date": "2024-12-02", "price": 239.59 },
  "lucky": { "invested": 60000, "final_value": 162874.2, "multiple": 2.7146, "xirr": 0.1852 },
  "unlucky": { "invested": 60000, "final_value": 146530.9, "multiple": 2.4422, "xirr": 0.1614 },
  "lump_sum": { "final_value": 428101.3, "multiple": 7.135, "xirr": 0.2199 },
  "series": [ { "t": 1470024000000, "invested": 500, "value": 500 } ],
  "benchmark": { "ticker": "SPY", "invested": 60000, "final_value": 121002.4, "multiple": 2.0167, "xirr": 0.1341, "purchases": 120 },
  "api_version": "v1"
}

GET /api/v1/day-signal

QuantLogix Day-Trading Signal Score (QDTSS) — 4-layer intraday scoring with session classifier, VWAP/ORB engines, and trade plan (entry/stop/target with R:R). Institutional tier only.

GEThttps://quantlogix.ai/api/v1/day-signal?ticker=NVDA
ParameterTypeDescription
tickerstringStock or ETF ticker symbol (required)

Response includes: signal (Strong Buy / Buy / Lean Buy / Neutral / Lean Sell / Sell / Strong Sell), score, direction, layer breakdown (L1 Signal / L2 Context / L3 Risk / L4 Modifiers), session state, VWAP & ORB analysis, microstructure context, trade plan (entry/stop/target/R:R).

GET /api/v1/swing-signal

QuantLogix Swing-Trading Conviction Grade — A/B/C/D rating for 2-day to 4-week holds. Built on the same 5-factor engine as /v1/signal with swing-specific thresholds. Institutional tier only.

GEThttps://quantlogix.ai/api/v1/swing-signal?ticker=NVDA
ParameterTypeDescription
tickerstringStock or ETF ticker symbol (required)

Conviction grades: A Strong Conviction (score ≥ 75, full position, 2-4wk hold) · B Medium (60-74, half position, 1-2wk) · C Watchlist (40-59, quarter position, 2-5d) · D No Trade (0-39).

Response includes: signal, score, conviction { grade, label, position_size, hold_period }, direction, 3-pillar breakdown (Technical 40% / Flow 30% / Sentiment 30%), indicators, price, market_cap, sector.

GET /api/v1/earnings-setup

Pre-earnings setup intelligence — estimated next earnings date (labeled est.), options-implied move (ATM straddle), analyst revision momentum + price-target consensus, the engine's 5-factor signal read, YoY fundamentals trend, and recent reported actuals. Institutional tier only.

GEThttps://quantlogix.ai/api/v1/earnings-setup?ticker=NVDA
ParameterTypeDescription
tickerstringUS ticker symbol (required)

GET /api/v1/engine/model-card

The engine "model card" — one machine-readable snapshot of the signal engine's measured performance and its four-stage statistical validation, computed on the immutable, auto-resolved track record (the same live numbers shown at quantlogix.ai/proof). Built for quant due-diligence, monitoring pipelines, and AI clients. Requires Pro tier or higher.

GEThttps://quantlogix.ai/api/v1/engine/model-card?window=90d
ParameterTypeDescription
windowstringMeasurement window: 30d | 90d | 365d | all (default 90d)

Response includes: record (n resolved, win-rate + Wilson 95% CI, avg direction-adjusted return, return t-test, per-trade Sharpe) · validation — four graded stages: significance (is the measured edge statistically real), calibration (ECE + Brier — do stated probabilities match realized outcomes), discrimination (ROC-AUC / Gini / rank-IC — does a higher score rank winners higher), robustness (probabilistic Sharpe, minimum track-record length, out-of-sample hold, time consistency, max drawdown, edge trend) · factor_health (per-factor walk-forward IC verdicts: STABLE / DECAYING / BROKEN / INVERTED). Sections degrade to null independently if upstream data is briefly unavailable. All figures are measured past performance — not a guarantee of future results.

GET /api/v1/private-companies/list

Curated database of ~30 hot private/late-stage companies (Anthropic, OpenAI, Stripe, Databricks, SpaceX, etc.) with valuations, funding rounds, investors, and IPO status. Requires Pro tier or higher.

GEThttps://quantlogix.ai/api/v1/private-companies/list?sector=AI&limit=20
ParameterTypeDescription
sectorstringFilter by sector (e.g. AI, Fintech, Defense). Optional.
qstringFree-text search across name, slug, tagline, tags. Optional.
limitintegerMax results (default 50, max 200).

GET /api/v1/private-companies/{slug}

Full profile for one private company. Requires Pro tier or higher.

GEThttps://quantlogix.ai/api/v1/private-companies/anthropic

Response includes: name, tagline, sector, founded, HQ, employees, CEO, founders, current_valuation_usd, valuation_as_of, last_round, total_raised_usd, investors, products, competitors, ipo_status, rumored_ipo_year, estimated_revenue_usd, growth_descriptor, news_topics.

GET /api/v1/private-companies/news

Recent news mentioning a private company, aggregated across 14 sources (Market Wire, Finnhub, Yahoo, CNBC, Seeking Alpha, AV, NewsAPI, MarketWatch, WSJ, Bloomberg, NYT, Reuters, AP) plus Google News. Pass slug for relevance scoring against the company's curated boost terms. Requires Pro tier or higher.

GEThttps://quantlogix.ai/api/v1/private-companies/news?q=Anthropic&slug=anthropic
ParameterTypeDescription
qstringSearch query — typically the company name (required, max 80 chars).
slugstringOptional — when set, articles are scored using the company's curated boost terms (products, CEO, news topics) for higher relevance.

GET /api/v1/investors/list

Curated investor database of ~280 VC / Growth-PE / Corporate-VC / Sovereign-wealth firms (Andreessen Horowitz, Sequoia, Founders Fund, Thrive, Tiger Global, etc.) with AUM, active fund, stage + sector focus, notable partners, notable portfolio companies, and recent investments. Requires Pro tier or higher.

GEThttps://quantlogix.ai/api/v1/investors/list?firm_type=VC&sort=aum&limit=25
ParameterTypeDescription
firm_typestringFilter by firm type: VC | Growth/PE | Strategic/CVC | Sovereign. Optional.
qstringFree-text search across name, tagline, tags, partners. Optional.
sortstringaum (default) | name | founded.
limitintegerMax results (default 50, max 200).

GET /api/v1/investors/{slug}

Full profile for one investor / fund. Falls back to the Form ADV corpus for firms outside the curated set. Requires Pro tier or higher.

GEThttps://quantlogix.ai/api/v1/investors/andreessen-horowitz

Response includes: name, short_name, tagline, firm_type, subtype, founded, hq, country, geo_focus, website, aum_usd, aum_as_of, active_fund, stage_focus, sector_focus, notable_partners, notable_portfolio, exits_highlight, recent_investments, tags, news_topics.

QL Agents API NEW

Programmatic access to the same grounded AI pipeline that powers QL Agents — cited, confidence-stamped market reasoning with live tools, plus full agent lifecycle (create, schedule, run) from code. Requires Pro tier or higher. AI calls bill tokens against your account's monthly AI budget (the same budget the in-app agents use).

POST /api/v1/ask

One-shot grounded market Q&A. Every answer carries citations, a confidence score, and an as-of stamp.

POSThttps://quantlogix.ai/api/v1/ask
curl -X POST https://quantlogix.ai/api/v1/ask \
  -H "Authorization: Bearer ql_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"question": "Is NVDA extended after this run?", "tickers": ["NVDA"], "mode": "digest"}'
FieldTypeDescription
questionstringThe market question (required, max 600 chars)
tickersstring[]Tickers to ground the answer against (optional, max 8)
modestringdigest (default) | research (deeper multi-tool run)

Response: answer { headline, detail, sources[], confidence, as_of, disclaimer } · usage { total_tokens, cost_usd }.

GET | POST | PATCH | DELETE /api/v1/agents

Full CRUD over your QL Agents — the same agents that appear at quantlogix.ai/agents and run on the platform's scheduled cadences (premarket, close, weekly, intraday, once), delivering through your configured channels (push, email, Telegram, webhook). Plan agent caps and advanced-capability entitlements apply exactly as in the UI.

GEThttps://quantlogix.ai/api/v1/agents
POSThttps://quantlogix.ai/api/v1/agents
curl -X POST https://quantlogix.ai/api/v1/agents \
  -H "Authorization: Bearer ql_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Chip-sector premarket digest",
    "mode": "digest",
    "task_prompt": "Summarize overnight news and setups across my chip names. Flag anything that changes the thesis.",
    "tickers": ["NVDA", "AMD", "AVGO"],
    "cadence": "premarket"
  }'

Create/update fields: name, mode (digest | alert | research | committee), task_prompt, context, tickers[], cadence (premarket | close | weekly | once | intraday), enabled, webhook_url (HTTPS, fired with the result JSON on each run). Update with PATCH (include id); remove with DELETE ?id=.

POST /api/v1/agents/run

Run a saved agent (by id) or an inline draft definition synchronously and get the result in the response — no schedule, no notifications. Alert agents run with the gate exposed, so fired tells you whether the condition would have triggered.

POSThttps://quantlogix.ai/api/v1/agents/run
# Run a saved agent
curl -X POST https://quantlogix.ai/api/v1/agents/run \
  -H "Authorization: Bearer ql_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"id": "<agent-id>"}'

# Or run an inline draft without saving
curl -X POST https://quantlogix.ai/api/v1/agents/run \
  -H "Authorization: Bearer ql_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"agent": {"name": "One-off scan", "mode": "digest", "task_prompt": "Rank these on 2-week setup quality.", "tickers": ["TSLA", "PLTR"]}}'

Response: ok, fired, result { headline, detail, confidence, sources[], as_of }, models, tool_calls, grounding, usage { total_tokens, cost_usd }.

Async mode: add "async": true (saved agents only) to get 202 { run_id, poll_url } immediately — the run executes in the background with a ~5-minute budget (deep research runs that would time out synchronously), and you poll the run until status leaves pending.

GET /api/v1/runs · GET /api/v1/runs/<run_id>

Run history, newest first — what every scheduled and API-triggered run produced. Cron runs carry summaries; API runs carry the full structured result, so a client that misses a webhook can always recover it. Filter with ?agent_id=, page with ?limit= (max 100). The single-run endpoint is the poll target for async runs (pendingfired / clear / skipped / error).

GEThttps://quantlogix.ai/api/v1/runs?agent_id=<id>&limit=20
curl -H "Authorization: Bearer ql_your_key_here" \
  "https://quantlogix.ai/api/v1/runs?limit=20"

GET /api/v1/usage

Key quota introspection — current month's request usage, limits, and your key's endpoint surface. Available on every tier and never consumes a quota unit, so clients can poll it safely. On Pro+ keys the response also carries ai_tokens { today_used, daily_cap, remaining, resets_in_s } — self-throttle on remaining to stay under the cap.

GEThttps://quantlogix.ai/api/v1/usage

Daily AI-token cap

/v1/ask and /v1/agents/run spend real AI tokens against your account's monthly budget. As a guardrail, each key also carries a daily token cap (default 250K/day on Pro, 1M/day on Institutional) so a runaway client loop can burn at most one day's cap. Past the cap the API returns 429 daily_token_cap_reached with reset_in_s (UTC midnight reset). Configure the cap per key (10K–5M) from the profile developer console.

GET /api/v1/openapi

Machine-readable OpenAPI 3.1 spec for the whole v1 surface — point an SDK generator or AI agent at it and it self-configures. No auth required.

GEThttps://quantlogix.ai/api/v1/openapi

Signal Values

SignalScore RangeMeaning
Bullish58-100Positive technical + momentum alignment, favorable microstructure
Neutral42-57Mixed signals, no clear directional bias
Bearish0-41Negative technicals, bearish momentum, sell pressure

Rate Limits

TierPer MinuteMonthlyEndpoints
Free5100Signal, News, Usage
Pro6010,000Free + Screener, Batch, Private companies, Investors, 13F, Model card, Ask, Agents, Runs
Institutional300UnlimitedAll Pro + Day signal, Swing signal, Microstructure, Earnings setup

Pro vs Institutional Response

DataProInstitutional
Long-term signal (label + composite)YesYes
Full 5-factor breakdown + pattern predictionYesYes
Day / Swing intraday signalsYes
Microstructure (VPIN, OFI, smart money)Yes
Earnings setup intelligenceYes
Screener + batch + 13F + private companiesYesYes
Engine model card (/proof twin)YesYes

Rate limit headers are included in every response:

X-RateLimit-Limit: 60
X-RateLimit-Monthly: 10000
X-API-Tier: pro

Error Codes

StatusMeaning
400Bad request — missing or invalid ticker
401Unauthorized — missing or invalid API key
403Forbidden — endpoint requires higher tier
404Ticker not found
429Rate limit exceeded
500Server error

Code Examples

Python

import requests

response = requests.get(
    "https://quantlogix.ai/api/v1/signal",
    params={"ticker": "NVDA"},
    headers={"X-API-Key": "ql_your_key_here"}
)
signal = response.json()
print(f"{signal['ticker']}: {signal['signal']} ({signal['composite_score']}/100)")

JavaScript

const res = await fetch("https://quantlogix.ai/api/v1/signal?ticker=NVDA", {
  headers: { "X-API-Key": "ql_your_key_here" }
});
const signal = await res.json();
console.log(`${signal.ticker}: ${signal.signal} (${signal.composite_score}/100)`);

cURL

curl -H "X-API-Key: ql_your_key_here" \
  "https://quantlogix.ai/api/v1/signal?ticker=AAPL"

Ready to get started?

Get your API key and start receiving real-time signals in minutes.

Get API Key
◆ QUANTLOGIX · Signal API v1