/v1/meta
Service metadata
Try it live
10 free calls per day — no sign-up, no API key. Goes through the oanor gateway.
It works. Grab an API key and use it in your project.
Get an API keyCode snippets
curl "https://api.oanor.com/ulcerindex-api/v1/meta" \ -H "x-oanor-key: oanor_test_..."
await fetch("https://api.oanor.com/ulcerindex-api/v1/meta", {
headers: { "x-oanor-key": "oanor_test_..." }
});
$ch = curl_init("https://api.oanor.com/ulcerindex-api/v1/meta");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$out = curl_exec($ch);
import requests
requests.get(
"https://api.oanor.com/ulcerindex-api/v1/meta",
headers={"x-oanor-key": "oanor_test_..."}
)
Example response
A real response from this endpoint, captured by the latest health check.
{
"data": {
"note": "metric is martin (default, best pain-adjusted return) or ulcer (least painful). window is 60-756 trading days (default 252). rf is an optional annual risk-free percent (0-20) netted off the Martin/pain ratios. class filters to equity/sector/commodity/bond/crypto (default all). Read fresh per call, nothing cached.",
"source": "Yahoo Finance daily closes, live",
"classes": [
"equity",
"sector",
"commodity",
"bond",
"crypto"
],
"metrics": [
"martin",
"ulcer"
],
"service": "ulcerindex-api",
"endpoints": {
"GET /v1/meta": "This document.",
"GET /v1/asset": "Full drawdown-pain profile of one instrument (symbol=GLD, window=252, rf=0).",
"GET /v1/screener": "Rank the universe by Martin ratio or Ulcer Index (metric=martin, window=252, class=all, rf=0).",
"GET /v1/universe": "The cross-asset universe and its classes."
},
"description": "Ulcer Index & pain-adjusted return — ranks a cross-asset universe by how painful each market's drawdowns have been and how much return it paid for that pain, live from Yahoo Finance daily closes (no key, nothing stored). The Ulcer Index is the RMS of every day's drawdown from the running peak (depth and duration), and the Martin ratio is annualised excess return divided by it. asset returns one instrument's full pain profile (Ulcer Index, max/avg/current drawdown, longest time underwater, Martin and pain ratios); screener ranks the universe by Martin ratio or Ulcer Index. The drawdown-pain cut — distinct from the current-drawdown monitor (a 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.",
"universe_size": 21,
"smoothest_252d": "HYG",
"upstream_status": "ok"
},
"meta": {
"timestamp": "2026-06-12T10:34:51.826Z",
"request_id": "3bb86b21-fca9-4c0f-b22f-ee8c3a53e9ae"
},
"status": "ok",
"message": "Meta",
"success": true
}