Daily returns time series with rolling hedge ratios (stocks and ETFs)
Returns a daily time series of gross returns (returns_gross) and, for stocks, V3 rolling hedge ratios and explained-risk fields per day: l3_mkt_hr, l3_sec_hr, l3_sub_hr, l3_mkt_er, l3_sec_er, l3_sub_er, l3_res_er. Up to 15 years per request. ETFs are supported: requests for ETF tickers (e.g. SPY, XLK) return date, returns_gross, and price_close sourced from ds_etf.zarr; L1/L2/L3 columns are null because ETFs are not factor-decomposed. The response includes asset_type ("stock" or "etf") so clients can branch cleanly. For the full L1/L2/L3 snapshot (all six HR names on the latest day), use GET /metrics/{ticker} (metrics object). Response does not include a top-level _agent block; billing is applied server-side. Cost: $0.02 for 1 year + $0.01 per extra year (up to 15). A response with no rows is not billed; _metadata.data_warning_code names the reason (etf_outside_priced_universe, etf_no_return_history_in_window or no_return_history_in_window). Only ETFs with the priced capability return rows — see GET /data/etf/universe.
Request
- Base URL: https://riskmodels.app/api
- URL: https://riskmodels.app/api/ticker-returns
- Auth: HTTP bearer
Query parameters
Number of years of history to return.
Maximum number of rows to return.
Bypass cache (incurs cost even if identical request was recently made).
Response carrier. json (default): structured payload for this operation (body includes _metadata where documented). parquet / csv: a single flat table of time-series rows only — lineage comes from X-Risk-Model-Version, X-Data-As-Of, X-Factor-Set-Id, X-Universe-Size. When this parameter is omitted, Accept: application/vnd.apache.parquet or Accept: text/csv selects the tabular format.
Response
Time series of daily returns, price_close, and V3 rolling HR/ER fields. JSON wraps rows in data with symbol, ticker, meta, _metadata. Parquet/CSV are a single table: one row per trading day; columns match #/components/schemas/TickerReturnsDailyRow in a stable key order (same field names as JSON object keys in each data element).
Example response
{
"_metadata": {
"see": "/api/data/etf/HYG"
},
"periodicity": "daily",
"meta": {
"market_etf": "SPY",
"sector_etf": "SOXX",
"subsector_etf": "XSD",
"universe": "US_EQUITY"
}
}Changes
No recorded changes to this operation across all 1 revision of this API.