Probability of hitting drawdown levels + recovery
API · /riskofruin-api
Risk of Ruin API
Live risk-of-ruin and drawdown-survival analytics that traders run to size risk so a losing streak cannot wipe them out, computed on demand from the edge you pass in — no key, no cache, nothing stored. The ruin endpoint returns the probability of ever losing your capital given a win rate, a reward-to-risk payoff and the risk taken per trade, solved analytically from the gambler's-ruin equation rather than simulated — it also reports the expectancy in R, the capital units at risk and the single-unit ruin root behind the answer. The drawdown endpoint returns the probability of ever hitting each of several drawdown levels and the gain needed to recover from them. The recovery endpoint returns the loss-and-gain asymmetry — the percent gain required to climb back from any drawdown, the reason a 50 percent loss needs a 100 percent gain — and, if you pass net profit and max drawdown, the recovery factor. This is an analytic risk engine, fundamentally different from Monte-Carlo simulators and price-series drawdown feeds: it turns a win rate, payoff and risk fraction into the closed-form math of survival, instantly. Win rate accepts a fraction or a percentage; payoff is reward-to-risk; negative expectancy makes ruin certain. Computed locally and deterministically, so it is instant and private. Ideal for position sizing, money-management rules, prop-firm risk limits and trading dashboards. Live, nothing stored. 3 compute endpoints. For a full Monte-Carlo outcome distribution use a strategy-simulator API.
API health
healthy- Uptime
- 100.00%
- Server probes · 24h
- Avg latency
- 78 ms
- Server probes · 24h
- Subscribers
- 3,691
- active
- Total calls
- 80
- last 7 days
Pricing
Pick a tier — billed monthly, cancel anytime.
Free
Free
- 4,500 calls / month
- 2 requests / second
- Hard cap (429 above quota, no overage)
- 4,500 calls/month
- 2 req/sec
- Ruin + drawdown + recovery
- No credit card
Starter
€7.50 /month
- 90,500 calls / month
- 6 requests / second
- Hard cap (429 above quota, no overage)
- 90,500 calls/month
- 6 req/sec
- Analytic risk-of-ruin & expectancy
- Email support
Pro
€21.40 /month
- 465,000 calls / month
- 18 requests / second
- Hard cap (429 above quota, no overage)
- 465,000 calls/month
- 18 req/sec
- Money-management & risk pipelines
- Priority support
Business
€48.50 /month
- 2,870,000 calls / month
- 45 requests / second
- Hard cap (429 above quota, no overage)
- 2,870,000 calls/month
- 45 req/sec
- Prop-firm & desk scale
- Dedicated SLA
Built by
Related APIs
Other APIs with overlapping tags.
Strategy Simulator API
Live Monte-Carlo simulation of a trading strategy's outcome that traders run to judge an edge — computed on demand and reproducibly, no key, nothing cached. Run a sequence of trades many times from a win rate, reward-to-risk payoff and risk-per-trade, and get the distribution of final equity, the probability of profit, the probability of ruin and the drawdown distribution; get the modelled chance of blowing up the account; or get the analytical edge — expectancy per trade, breakeven win rate and profit factor. Every run is seeded, so the same inputs always give the same numbers. A strategy-outcome engine, distinct from position-sizing tools and price simulators: it turns an edge into the equity, drawdown and ruin a strategy faces.
api.oanor.com/strategysim-api
Ulcer Index API
Ranks a cross-asset universe by how painful each market's drawdowns have been, and how much return it paid for that pain, computed live from Yahoo Finance daily closes — no key, nothing stored. Volatility treats an up-move and a down-move as equally risky, but investors only lose sleep over the downside: the depth of the fall from the last high and how long it drags on before recovering. The Ulcer Index (Peter Martin) captures exactly that — the root-mean-square of every day's percentage drawdown from the running peak, so a deep, long drawdown is penalised far more than a brief dip and a market that keeps making new highs scores near zero. From it comes the Martin ratio (the Ulcer Performance Index) — annualised excess return divided by the Ulcer Index — the return earned per unit of drawdown pain, a downside-only cousin of the Sharpe ratio. The asset endpoint returns one instrument's full pain profile: Ulcer Index, maximum, average and current drawdown, longest time underwater, the Martin ratio and the pain ratio. The screener endpoint ranks the 21-instrument universe (equities, sectors, commodities, bonds, crypto; filterable by class) by Martin ratio (best pain-adjusted return) or by Ulcer Index (smoothest ride). This is the drawdown-pain / Ulcer-Index cut — distinct from a current-drawdown monitor (a point-in-time snapshot of how far below peak each market is), the Sharpe/Sortino/Calmar screener (Calmar uses only the single worst drawdown) and the price APIs. It scores the whole shape of the pain, not one point of it.
api.oanor.com/ulcerindex-api
Cross-Asset Drawdown & Recovery Monitor API
How far every major market is below its peak and how long it has been underwater, computed live from Yahoo Finance (no key, nothing stored). Drawdown is the risk investors actually feel: not volatility in the abstract, but the gap between today's price and the high-water mark, and the painful stretch spent climbing back. For every asset — equity indices, bonds, gold, oil, commodities, FX and crypto — this measures the current drawdown from its rolling peak, the worst (maximum) drawdown over the window, the date and level of the peak, how many days it has been underwater, and how much of the fall it has already recovered. The monitor endpoint returns the whole universe ranked by current drawdown — what is deepest underwater and what is back at new highs — with a summary of how many markets are in drawdown. The asset endpoint returns one market's drawdown card. The universe endpoint lists what is covered. The cross-asset drawdown / underwater-recovery cut — distinct from the FX-only drawdown API, the crypto all-time-high API and the cross-asset volatility API (which ranks risk-adjusted return, not the underwater curve). It answers how far from the highs, and how long.
api.oanor.com/assetdrawdown-api
Cross-Asset Volatility & Risk-Adjusted Return API
The risk dashboard for the whole multi-asset book — how volatile each asset class is, how much it returned, and how much return it paid per unit of risk, computed live from Yahoo Finance (no key, nothing stored). Return without risk is meaningless; this puts them side by side. For every instrument — equities, bonds, gold, oil, commodities, FX and crypto — it measures the annualised realised volatility (the standard deviation of daily returns, the market's fear gauge), the trailing return, a Sharpe-style risk-adjusted return (return per unit of volatility) and the worst peak-to-trough drawdown over the window. The ranking endpoint returns the universe ranked by whichever you choose — volatility, Sharpe, return or drawdown — so you can see the calmest and wildest assets and who paid the best risk-adjusted return. The asset endpoint returns one instrument's full risk profile. The universe endpoint lists what is covered. The cross-asset volatility / risk-adjusted-return ranking cut — distinct from the crypto-only volatility and risk APIs, the FX-only volatility API and the bring-your-own-series risk-metrics, CAPM and portfolio-optimiser calculators. It ranks live risk across asset classes.
api.oanor.com/assetvolatility-api
Frequently asked questions
Quick answers about pricing, quotas, and integration.
How do I get an API key for Risk of Ruin API?
What's the rate limit for Risk of Ruin API?
How much does Risk of Ruin API cost?
Can I cancel my subscription anytime?
Is Risk of Ruin API GDPR-compliant?
Pick an endpoint from the list on the left to see its details and try it.
Code snippets
Sign up to get an API key, then call any path under your slug.
curl https://api.oanor.com/riskofruin-api/SOME_PATH \
-H "x-oanor-key: oanor_test_..."
const res = await fetch("https://api.oanor.com/riskofruin-api/SOME_PATH", {
headers: { "x-oanor-key": "oanor_test_..." }
});
const data = await res.json();
$ch = curl_init("https://api.oanor.com/riskofruin-api/SOME_PATH");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
$response = curl_exec($ch);
import requests
r = requests.get(
"https://api.oanor.com/riskofruin-api/SOME_PATH",
headers={"x-oanor-key": "oanor_test_..."},
)
print(r.json())
Ratings
Sign in to rate.
No reviews yet.
Discussion
Ask questions, share usage tips, get answers from the provider and other developers. Public — anyone can read.
Sign in to start a thread or reply.
Sign inNew thread
·
-
Provider answer
🔒 This thread is locked — no new replies.
-
·
- No threads yet — start the discussion.
Support
Private 1:1 support with the provider — billing questions, integration issues, account problems. Only you and the provider team can see these threads.
Sign in to open a support ticket.
Sign inOpen new ticket
Describe what you need help with. The provider team gets an email and replies on the ticket page.
-
·
Urgent - No tickets yet for this API.