API · PORTFOLIO MATH · HONEST PROBABILITIES

The portfolio math API that doesn’t lie to you.

HRP optimizer. Kelly sizer. Factor scorer. Stress tester. One key. Deterministic math. No hidden fallbacks.

Free tier: 100 calls/mo No card required Production-ready Stripe billing
curl → 200 OK
curl -X POST https://api.axistruth.com/v1/optimize-portfolio \
  -H "Authorization: Bearer axt_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "holdings": [
      {"symbol":"SPY","weight":0.6},
      {"symbol":"AGG","weight":0.4}
    ],
    "method": "hrp"
  }'

# 200 OK
{
  "weights": {
    "SPY": 0.5412,
    "AGG": 0.4588
  },
  "risk_metrics": {
    "portfolio_volatility": 0.0823,
    "sharpe_estimate": 1.14,
    "max_drawdown_estimate": -0.112
  },
  "method": "hrp"
}

HRP, not naïve 1/N

Hierarchical Risk Parity. Cluster-aware. Robust to correlation regime. Per Lopez de Prado 2016. [ARCHITECTURAL]

Kelly with caps

Configurable cap (default 25%) + kelly-fraction. Never blow up your position size. Per Kelly 1956, Merton 1969. [ARCHITECTURAL]

Factor + stress

5 academic factors + 2008 / 2020 / 2022 stress scenarios. Reproducible math. Per Fama-French 1993. [ARCHITECTURAL]

From curl to optimized weights in under 60 seconds

STEP 01

Sign up, get key

Email only. Free tier auto-assigned. Key issued in <30 seconds.

STEP 02

POST your holdings

One endpoint. Works with curl, Python, Node, or any HTTP client.

STEP 03

Get optimized weights

HRP / equal-vol / Kelly. Deterministic math. Same inputs always return same outputs.

STEP 04

Stress-test + monitor

4 stress regimes. Factor decomposition. Usage bar in your dashboard.

Eight primitives. One key.

HRP optimizer

Hierarchical Risk Parity allocation with Ledoit-Wolf shrinkage

Equal-vol balance

Equal-volatility weighting when HRP is over-powered for the use case

Kelly position sizer

Continuous + discrete Kelly with configurable cap and fractional Kelly

Fractional Kelly

Half-Kelly and quarter-Kelly modes for conservative sizing

5-factor scorer

Momentum, low-vol, quality, value, size per Fama-French + Jegadeesh-Titman

Stress-test 4 regimes

GFC 2008, COVID 2020, Dotcom 2000, Rising-rates 2022 Monte Carlo

Tail-risk metrics

CVaR / ES at configurable confidence levels per Rockafellar-Uryasev 2002

Walk-forward guard

Look-ahead bias detection flags and stateless compute guarantee

Your first call — three lines of curl

No SDK required. Zero dependencies. Works anywhere HTTP works.

curl -X POST https://api.axistruth.com/v1/optimize-portfolio \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"holdings":[{"symbol":"SPY","weight":0.6},{"symbol":"AGG","weight":0.4}],"method":"hrp"}'
Read quickstart guide → Full API reference

Start free. Scale when you need to.

Free

$0

100 calls / month

  • All 5 core endpoints
  • 5 requests / minute
  • Best-effort latency
  • Docs + community support
Get free key

Enterprise

Custom + SLA

Unlimited calls

  • All 5 core + roadmap endpoints
  • Custom rate limit
  • <150ms p95 + 99.9% uptime
  • Slack channel + 4h support
  • Custom API key prefix
Talk to us

Full pricing comparison →

Common questions

What is AxisTruth?

AxisTruth is a commercial REST API for portfolio math primitives: HRP allocation, Kelly position sizing, 5-factor scoring, and Monte Carlo stress testing. You POST a portfolio and GET back mathematically rigorous output — no LLM, no hallucination, no hidden fallbacks.

Important: AxisTruth returns mathematical primitives only. It is not investment advice. You are responsible for any investment decisions made using this output. See Terms of Service.

Is the math academically rigorous?

Yes. HRP per Lopez de Prado (2016) Journal of Portfolio Management 42(4). Kelly with caps per Kelly (1956) and Merton (1969). Factor model per Fama-French (1993) + Jegadeesh-Titman (1993) momentum. Stress simulation per Rockafellar-Uryasev (2002) CVaR. All citations are in the API reference. [ARCHITECTURAL]

How is this different from PyPortfolioOpt?

PyPortfolioOpt is an open-source Python library you run locally. AxisTruth is a hosted, billable, rate-limited REST API. No local Python environment, no infra, no dependency management. Pro tier adds a <300ms p95 latency SLA. You pay for reliability and operational simplicity.

Do you store my holdings?

No. AxisTruth is stateless by default. Holdings POSTed to any endpoint are processed in-memory and discarded immediately after the response is returned. No server-side logging of portfolio composition, ticker symbols, or position sizes at the Free tier.

Can I cancel anytime?

Yes. Stripe Customer Portal handles cancellation, downgrade, and data deletion. No lock-in periods.