Quant·Box

A fixed-income & risk desk
in one API.

Bond analytics, yield curve bootstrapping and Value-at-Risk / Expected Shortfall — with option pricing on the side — one hosted JSON API with consistent, written-down conventions. Built on QuantLib, the library trading desks actually run on. ORE-class analytics without the self-host : no C++ build, no XML config, no quant hire.

For fintechs, prop shops and crypto desks that need correct numbers this week.

500 calls/month free · no credit card · key issued instantly

POST /v1/bonds/price200 · 11 ms
{"coupon_rate":0.05,"issue_date":"2024-07-01",
 "maturity_date":"2029-07-01",
 "settlement_date":"2026-10-15","yield_rate":0.04}
clean_price102.4892
dirty_price103.9413
accrued1.4521
modified_duration2.4748
convexity8.7012
bpv (DV01)-0.0257
01

Endpoints

Five calculations, one convention sheet. Full schemas in /docs.
POST /v1/bonds/priceFixed-rate bond from a flat yield or your zero curve: clean/dirty price, accrued, YTM, duration, convexity, BPV.
request
curl -s .../v1/bonds/price \
  -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"coupon_rate":0.05,"issue_date":"2024-07-01",
       "maturity_date":"2029-07-01","settlement_date":"2026-07-01",
       "frequency":"annual","day_count":"act/act","yield_rate":0.04}'
response
{
  "clean_price": 102.7641, "dirty_price": 102.7641,
  "accrued": 0.0, "ytm": 0.04,
  "modified_duration": 2.754, "convexity": 10.4298,
  "bpv": -0.0283,
  "conventions": { "prices": "per 100 of face value", ... }
}
POST /v1/curves/bootstrapDiscount curve from deposit + swap quotes: discount factors and zero rates at every pillar.
request
curl -s .../v1/curves/bootstrap \
  -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"deposits":[{"tenor":"3M","rate":0.031},{"tenor":"6M","rate":0.032}],
       "swaps":[{"tenor":"2Y","rate":0.034},{"tenor":"5Y","rate":0.036}],
       "output_tenors":["1Y","2Y","5Y"]}'
response
{
  "points": [
    { "tenor": "1Y", "years": 1.0027,
      "discount_factor": 0.96789, "zero_rate": 0.03256 },
    ...
  ],
  "conventions": { "interpolation": "log-linear on discount factors", ... }
}
POST /v1/risk/varHistorical + parametric VaR and Expected Shortfall on your return series or positions × returns matrix. Your data stays yours.
request
curl -s .../v1/risk/var \
  -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"returns":[-0.012,0.004,0.009,-0.021, ...],
       "confidence":0.99,"horizon_days":10,
       "portfolio_value":2500000}'
response
{
  "historical":        { "var": { "amount": 214380.11, ... }, ... },
  "parametric_normal": { "var": { "amount": 198412.55, ... }, ... },
  "assumptions": { "horizon_scaling": "sqrt(horizon_days), iid", ... }
}
POST /v1/options/priceVanilla option price + delta, gamma, vega, theta, rho. European (analytic BSM) or American (binomial CRR).
request
curl -s https://quantbox.dev/v1/options/price \
  -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"option_type":"put","exercise":"american",
       "spot":42,"strike":40,"rate":0.10,
       "volatility":0.20,"expiry_years":0.5}'
response
{
  "price": 0.9087,
  "greeks": { "delta": -0.2578, "gamma": 0.0627,
              "vega": 9.271, "theta": -1.0398, ... },
  "model": "binomial_crr_800_steps",
  "conventions": { "rate": "continuously compounded, act/365", ... }
}
POST /v1/options/implied-volBack out Black-Scholes implied volatility from a market price. Clear 422 outside no-arbitrage bounds.
request
curl -s .../v1/options/implied-vol \
  -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"option_type":"call","spot":100,"strike":105,
       "rate":0.03,"expiry_years":0.25,"market_price":2.10}'
response
{
  "implied_volatility": 0.1878,
  "conventions": { "volatility": "annualized, decimal", ... }
}
02

Playground

Live against the real API — each run counts toward your free quota.

Sign up above, then price a bond. The response lands here exactly as your backend would receive it — clean/dirty price, YTM, duration, convexity, DV01, conventions.

03

Pricing

Flat monthly tiers. Start free, upgrade when you ship.
PlanPriceIncluded calls / monthFor
Free €0 500 Evaluate, prototype, backtest an idea
Starter €49/mo 10,000 A feature in production
Growth €299/mo 100,000 Pricing & risk across your product
Scale €999/mo 1,000,000 Heavy compute + priority support

Billing runs on Stripe. Cancel anytime from the checkout portal. Overage above a tier: we get in touch before anything is blocked.

04

Notes for the diligent

Conventions, written down

Every response carries its conventions object — day counts, compounding, units, model. No guessing what a number means, no silent defaults. The same conventions run through all five endpoints.

Your data, our compute

Quant-Box ships no market data. You send terms and quotes, we send back numbers. Nothing you post is stored beyond the request, and your series never train anything.

Standing on QuantLib

Calculations run on QuantLib, the open-source library behind countless trading desks, wrapped with strict input validation and golden-value tests against textbook results.

Hosted, on purpose

Self-hosting QuantLib or ORE buys you control at the price of builds, upgrades and serving. Quant-Box is the other trade : correct fixed-income and risk numbers this week, from any language with an HTTP client.

When to pick which — an honest comparison.