Finance — entry 035 of 47

Portfolio Optimizer

Verified Jul 2026

Portfolio Optimizer is a free, no-signup Web API implementing modern-portfolio-theory algorithms — mean-variance and minimum-variance optimization, risk and performance analytics, backtesting, and factor-model tools — over JSON, so it can be called from Python, Excel, Google Sheets, or any HTTP client without an SDK. The homepage explicitly advertises free access with no registration required, and a live test against a real optimization endpoint (api.portfoliooptimizer.io) returned `Access-Control-Allow-Origin: *` on both a route-not-found and a malformed-payload response, confirming CORS is enabled; the same responses carry a `WWW-Authenticate: Key` header hinting at an optional key for higher throughput, though the observed default rate limit is a modest 1 request/second.

portfolio-optimizationquantitative-financerisk-managementinvestinganalytics
AuthenticationNone requiredCall it straight away — no key, no signup.
HTTPSSupportedTraffic is encrypted in transit.
CORSEnabledCallable directly from browser JavaScript.
PricingFreeNo paid tier — free for the documented use case.
FormatsJSONResponses can be requested as JSON.

GreatAPIs Score

Score94out of 100
Authentication25/25No authentication required
Pricing20/20Free to use
Docs20/20Machine-readable spec file bundled
Formats9/15Single response format
Freshness20/20Verified within 6 months

Embed this badge

Scored 94 on greatapis.com
<a href="https://greatapis.com/api/portfolio-optimizer/"><img src="https://greatapis.com/badge/portfolio-optimizer.svg" alt="Scored 94 on greatapis.com"></a>

Auth quickstart

  1. No key needed — call it now.
Stored keyNo key stored

Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.

Endpoints

Servers
https://api.portfoliooptimizer.io/v1https://eu-west-1.api.portfoliooptimizer.io/v1
Auth
ApiKeyAuth
Assets / Bootstrap Returns Simulation4
POST/assets/returns/simulation/bootstrap/circularCircular Block Bootstrap Simulation
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/simulation/bootstrap/empiricalEmpirical Bootstrap Simulation
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/simulation/bootstrap/onlineOnline Bootstrap Simulation
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/simulation/bootstrap/stationaryStationary Block Bootstrap Simulation
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Assets / Clustering / Correlation-Based3
POST/assets/clustering/hierarchical/correlation-basedHierarchical Clustering
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/clustering/spectral/correlation-basedSpectral Clustering
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/clustering/thresholding/correlation-basedThreshold Clustering
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Assets / Correlation Matrix14
POST/assets/correlation/matrixCorrelation Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/correlation/matrix/aggregatedAggregated Correlation Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/correlation/matrix/average-correlationCorrelation Matrix Average Correlation
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/correlation/matrix/boundsCorrelation Matrix Bounds
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/correlation/matrix/completedCompleted Correlation Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/correlation/matrix/distanceCorrelation Matrix Distance
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/correlation/matrix/informativenessCorrelation Matrix Informativeness
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/correlation/matrix/nearestNearest Correlation Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/correlation/matrix/perturbedPerturbed Correlation Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/correlation/matrix/randomRandom Correlation Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/correlation/matrix/shrunkShrunk Correlation Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/correlation/matrix/shrunk/clustering-basedClustering-Based Shrunk Correlation Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/correlation/matrix/theory-impliedTheory-Implied Correlation Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/correlation/matrix/validationCorrelation Matrix Validation
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Assets / Correlation Matrix Estimation13
POST/assets/correlation/matrix/estimation/chatterjeeChatterjee Correlation Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/correlation/matrix/estimation/distanceDistance Correlation Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/correlation/matrix/estimation/empiricalEmpirical Correlation Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/correlation/matrix/estimation/empirical/exponentially-weightedExponentially Weighted Empirical Correlation Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/correlation/matrix/estimation/empirical/filtered/random-matrix-theory-basedRandom Matrix Theory-Based Filtered Empirical Correlation Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/correlation/matrix/estimation/empirical/shrunkShrunk Empirical Correlation Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/correlation/matrix/estimation/empirical/shrunk/clustering-basedClustering-Based Shrunk Empirical Correlation Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/correlation/matrix/estimation/fechnerFechner Correlation Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/correlation/matrix/estimation/gerberGerber Correlation Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/correlation/matrix/estimation/kendallKendall Correlation Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/correlation/matrix/estimation/lancasterLancaster Correlation Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/correlation/matrix/estimation/popovPopov Correlation Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/correlation/matrix/estimation/spearmanSpearman Correlation Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Assets / Correlation Matrix Forecast4
POST/assets/correlation/matrix/forecast/average-oracleAverage Oracle Method (AO)
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/correlation/matrix/forecast/ewmaExponentially Weighted Moving Average Model (EWMA)
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/correlation/matrix/forecast/ewma/iteratedIterated Exponentially Weighted Moving Average Model (IEWMA)
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/correlation/matrix/forecast/smaSimple Moving Average Model (SMA)
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Assets / Covariance Matrix5
POST/assets/covariance/matrixCovariance Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/covariance/matrix/aggregatedAggregated Covariance Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/covariance/matrix/shrunkShrunk Covariance Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/covariance/matrix/shrunk/clustering-basedClustering-Based Shrunk Covariance Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/covariance/matrix/validationCovariance Matrix Validation
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Assets / Covariance Matrix Estimation7
POST/assets/covariance/matrix/estimation/distanceDistance Covariance Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/covariance/matrix/estimation/empiricalEmpirical Covariance Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/covariance/matrix/estimation/empirical/exponentially-weightedExponentially Weighted Empirical Covariance Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/covariance/matrix/estimation/empirical/filtered/random-matrix-theory-basedRandom Matrix Theory-Based Filtered Empirical Covariance Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/covariance/matrix/estimation/empirical/shrunkLinearly Shrunk Empirical Covariance Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/covariance/matrix/estimation/empirical/shrunk/clustering-basedClustering-Based Linearly Shrunk Empirical Covariance Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/covariance/matrix/estimation/gerberGerber Covariance Matrix
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Assets / Covariance Matrix Forecast4
POST/assets/covariance/matrix/forecast/average-oracleAverage Oracle Method (AO)
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/covariance/matrix/forecast/ewmaExponentially Weighted Moving Average Model (EWMA)
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/covariance/matrix/forecast/ewma/iteratedIterated Exponentially Weighted Moving Average Model (IEWMA)
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/covariance/matrix/forecast/smaSimple Moving Average Model (SMA)
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Assets / Expected Returns Estimation3
POST/assets/returns/expected/estimation/empiricalEmpirical Expected Returns
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/expected/estimation/impliedImplied Expected Returns
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/expected/estimation/ordering-information-basedExpected Returns from Ordering Information
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Assets / Indicators11
POST/assets/indicators/absorption-ratioAbsorption Ratio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/indicators/effective-rankEffective Rank
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/indicators/entropic-connectednessEntropic Connectedness
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/indicators/information-discretenessInformation Discreteness
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/indicators/market-rankMarket Rank
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/indicators/momentumMomentum
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/indicators/momentum/rankRank Momentum
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/indicators/momentum/signSign Momentum
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/indicators/return-information-signalReturn Information Signal
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/indicators/trend-clarityTrend Clarity
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/indicators/turbulence-indexTurbulence Index
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Assets / Monte Carlo Returns Simulation10
POST/assets/returns/simulation/monte-carlo/arma-ewmaExponentially Weighted Moving Average (EWMA) Conditional Variance Model
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/simulation/monte-carlo/arma-garchGeneralized AutoRegressive Conditional Heteroscedasticity (GARCH(1,1)) Conditional Variance Model
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/simulation/monte-carlo/cornish-fisherCornish-Fisher Distribution
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/simulation/monte-carlo/cornish-fisher/correctedCorrected Cornish-Fisher Distribution
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
500Failed computation of the Cornish-Fisher skewness and (excess) kurtosis parameters corresponding to the asset skewness and (excess) kurtosis
POST/assets/returns/simulation/monte-carlo/gaussianGaussian Distribution
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/simulation/monte-carlo/gaussian/mixtureGaussian Mixture Distribution
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/simulation/monte-carlo/gaussian/mixture/multivariateMultivariate Gaussian Mixture Distribution
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/simulation/monte-carlo/gaussian/multivariateMultivariate Gaussian Distribution
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/simulation/monte-carlo/generalized-paretoGeneralized Pareto Distribution
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/simulation/monte-carlo/studentStudent-t Distribution
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Assets / Prices2
POST/assets/prices/adjustedAdjusted Prices
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/prices/adjusted/forwardForward-Adjusted Prices
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Assets / Returns3
POST/assets/returnsArithmetic Returns
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/backfilledBackfilled Returns
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/logarithmicLogarithmic Returns
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Assets / Returns / Moments5
POST/assets/returns/kurtosisKurtosis
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/meanMean Return
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/skewnessSkewness
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/standard-deviationStandard Deviation
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/varianceVariance
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Assets / Returns Fitting9
POST/assets/returns/fitting/arma-ewmaExponentially Weighted Moving Average (EWMA) Conditional Variance Model
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/fitting/arma-garchGeneralized AutoRegressive Conditional Heteroscedasticity (GARCH(1,1)) Conditional Variance Model
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/fitting/cornish-fisherCornish-Fisher Distribution
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/fitting/gaussianGaussian Distribution
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/fitting/gaussian/mixtureGaussian Mixture Distribution
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/fitting/gaussian/mixture/multivariateMultivariate Gaussian Mixture Distribution
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/fitting/gaussian/multivariateMultivariate Gaussian Distribution
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/fitting/generalized-paretoGeneralized Pareto Distribution
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/fitting/studentStudent-t Distribution
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Assets / Returns Transformation4
POST/assets/returns/transformation/exponentially-weightedExponentially Weighted Returns
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/transformation/moment-matchedMoment-matched Returns
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/transformation/turbulence-partitionedTurbulence-Partitioned Returns
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/returns/transformation/unsmoothedUnsmoothed Returns
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Assets / Volatility Estimation10
POST/assets/volatility/estimation/close-to-closeClose-to-Close Volatility
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/volatility/estimation/garman-klassGarman-Klass Volatility
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/volatility/estimation/garman-klass/jump-adjustedGarman-Klass Volatility (jump-adjusted)
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/volatility/estimation/garman-klass/originalGarman-Klass Volatility (original)
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/volatility/estimation/garman-klass/original/jump-adjustedGarman-Klass Volatility (original, jump-adjusted)
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/volatility/estimation/parkinsonParkinson Volatility
Request body

application/json

Responses
StatusDescriptionSchema
200OK
POST/assets/volatility/estimation/parkinson/jump-adjustedParkinson Volatility (jump-adjusted)
Request body

application/json

Responses
StatusDescriptionSchema
200OK
POST/assets/volatility/estimation/rogers-satchellRogers-Satchell Volatility
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/volatility/estimation/rogers-satchell/jump-adjustedRogers-Satchell Volatility (jump-adjusted)
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/volatility/estimation/yang-zhangYang-Zhang Volatility
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Assets / Volatility Forecast5
POST/assets/volatility/forecast/ewmaExponentially Weighted Moving Average Model (EWMA)
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/volatility/forecast/garchGeneralized AutoRegressive Conditional Heteroscedasticity Model (GARCH(1,1))
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/volatility/forecast/harHeterogeneous AutoRegressive Model (HAR)
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/volatility/forecast/hexpHeterogeneous Exponential Model (HExp)
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/assets/volatility/forecast/smaSimple Moving Average Model (SMA)
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Capital Market Assumptions3
GET/markets/capital-assumptions/chfCHF Capital Market Assumptions
Responses
StatusDescriptionSchema
200OK
GET/markets/capital-assumptions/eurEUR Capital Market Assumptions
Responses
StatusDescriptionSchema
200OK
GET/markets/capital-assumptions/usdUSD Capital Market Assumptions
Responses
StatusDescriptionSchema
200OK
Factors1
POST/factors/residualizationResidualization
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Factors / Risk Models3
GET/factors/models/fama-french/developed-marketsDeveloped Markets Fama-French Model
Responses
StatusDescriptionSchema
200OK
401Access to the endpoint is not authorized
GET/factors/models/fama-french/emerging-marketsEmerging Markets Fama-French Model
Responses
StatusDescriptionSchema
200OK
401Access to the endpoint is not authorized
GET/factors/models/fama-french/usU.S. Fama-French Model
Responses
StatusDescriptionSchema
200OK
401Access to the endpoint is not authorized
Market Indicators3
GET/markets/indicators/aiae/usU.S. AIAE
Responses
StatusDescriptionSchema
200OK
401Access to the endpoint is not authorized
GET/markets/indicators/bsrmb/usU.S. BSRM/B
Responses
StatusDescriptionSchema
200OK
401Access to the endpoint is not authorized
GET/markets/indicators/naaim-exposure-indexNAAIM Exposure Index
Responses
StatusDescriptionSchema
200OK
401Access to the endpoint is not authorized
Portfolio Analysis6
POST/portfolios/analysis/alphaJensen's Alpha
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/correlation-spectrumCorrelation Spectrum
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/diversification-ratioDiversification Ratio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/effective-number-of-assetsEffective Number of Assets
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/effective-number-of-betsEffective Number of Bets
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/factors/exposuresFactor Exposures
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Portfolio Analysis / Contributions7
POST/portfolios/analysis/contributions/diversification-ratioDiversification Ratio Contributions
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/contributions/returnReturn Contributions
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/contributions/riskRisk Contributions
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/contributions/sharpe-ratioSharpe Ratio Contributions
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/contributions/value-at-risk/empirical/multivariateMultivariate Empirical Value at Risk Contributions
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/contributions/value-at-risk/parametric/gaussian/mixture/multivariateMultivariate Gaussian Mixture Value at Risk Contributions
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/contributions/value-at-risk/parametric/gaussian/multivariateMultivariate Gaussian Value at Risk Contributions
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Portfolio Analysis / Drawdowns9
POST/portfolios/analysis/drawdownsDrawdown Function
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/drawdowns/averageAverage Drawdown
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/drawdowns/conditional/empiricalEmpirical Conditional Drawdown
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/drawdowns/maximumMaximum Drawdown
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/drawdowns/pain-indexPain Index
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/drawdowns/pitfall-indicatorPitfall Indicator
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/drawdowns/ulcer-indexUlcer Index
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/drawdowns/ulcer-performance-indexUlcer Performance Index
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/drawdowns/worstWorst Drawdowns
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Portfolio Analysis / Mean-Variance7
POST/portfolios/analysis/mean-variance/efficient-frontierMean-Variance Efficient Frontier
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/mean-variance/efficient-frontier/resampling-basedResampling-Based Mean-Variance Efficient Frontier
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/mean-variance/information-ratioInformation Ratio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/mean-variance/minimum-variance-frontierMean-Variance Minimum Variance Frontier
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/mean-variance/sharpe-ratioSharpe Ratio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/mean-variance/sharpe-ratio/confidence-intervalSharpe Ratio Confidence Interval
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/mean-variance/sharpe-ratio/probabilisticProbabilistic Sharpe Ratio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Portfolio Analysis / Return3
POST/portfolios/analysis/returnSimple Return
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/return/money-weightedMoney-Weighted Return
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/return/time-weightedTime-Weighted Return
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Portfolio Analysis / Returns2
POST/portfolios/analysis/returnsArithmetic Returns
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/returns/logarithmicLogarithmic Returns
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Portfolio Analysis / Returns / Moments3
POST/portfolios/analysis/returns/meanMean Return
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/returns/standard-deviationStandard Deviation (Volatility)
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/returns/varianceVariance
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Portfolio Analysis / Returns / Partial Moments3
POST/portfolios/analysis/returns/lower-partial-momentLower Partial Moment
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/returns/semideviationSemideviation
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/returns/semivarianceSemivariance
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Portfolio Analysis / Risk Measures3
POST/portfolios/analysis/betaBeta
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/empirical-tracking-errorEmpirical Tracking Error
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/tracking-error-varianceTracking Error Variance
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Portfolio Analysis / Risk Measures / Conditional Value At Risk Estimation6
POST/portfolios/analysis/value-at-risk/conditional/estimation/empiricalEmpirical Conditional Value At Risk
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/value-at-risk/conditional/estimation/parametric/cornish-fisherCornish-Fisher Conditional Value At Risk
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/value-at-risk/conditional/estimation/parametric/cornish-fisher/correctedCorrected Cornish-Fisher Conditional Value At Risk
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/value-at-risk/conditional/estimation/parametric/gaussianGaussian Conditional Value At Risk
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/value-at-risk/conditional/estimation/parametric/gaussian/mixtureGaussian Mixture Conditional Value At Risk
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/value-at-risk/conditional/estimation/parametric/studentStudent-t Conditional Value At Risk
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Portfolio Analysis / Risk Measures / Conditional Value At Risk Forecast2
POST/portfolios/analysis/value-at-risk/conditional/forecast/arma-ewmaExponentially Weighted Moving Average (EWMA) Conditional Value At Risk
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/value-at-risk/conditional/forecast/arma-garchGeneralized AutoRegressive Conditional Heteroscedasticity (GARCH(1,1)) Conditional Value At Risk
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Portfolio Analysis / Risk Measures / Value At Risk Estimation10
POST/portfolios/analysis/value-at-risk/estimation/empiricalEmpirical Value At Risk
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/value-at-risk/estimation/empirical/multivariateMultivariate Empirical Value At Risk
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/value-at-risk/estimation/extreme-value-theory-basedExtreme Value Theory-Based Value At Risk
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/value-at-risk/estimation/parametric/cornish-fisherCornish-Fisher Value At Risk
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/value-at-risk/estimation/parametric/cornish-fisher/correctedCorrected Cornish-Fisher Value At Risk
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/value-at-risk/estimation/parametric/gaussianGaussian Value At Risk
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/value-at-risk/estimation/parametric/gaussian/mixtureGaussian Mixture Value At Risk
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/value-at-risk/estimation/parametric/gaussian/mixture/multivariateMultivariate Gaussian Mixture Value At Risk
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/value-at-risk/estimation/parametric/gaussian/multivariateMultivariate Gaussian Value At Risk
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/value-at-risk/estimation/parametric/studentStudent-t Value At Risk
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Portfolio Analysis / Risk Measures / Value At Risk Forecast2
POST/portfolios/analysis/value-at-risk/forecast/arma-ewmaExponentially Weighted Moving Average (EWMA) Value At Risk
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/analysis/value-at-risk/forecast/arma-garchGeneralized AutoRegressive Conditional Heteroscedasticity (GARCH(1,1)) Value At Risk
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Portfolio Construction1
POST/portfolio/construction/investableInvestable Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Portfolio Optimization15
POST/portfolios/optimization/equal-risk-contributionsEqual Risk Contributions Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/equal-risk-contributions/clustering-basedClustering-based Equal Risk Contributions Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/equal-sharpe-ratio-contributionsEqual Sharpe Ratio Contributions Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/equal-volatility-weightedEqual Volatility Weighted Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/equal-weightedEqual Weighted Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/hierarchical-risk-parityHierarchical Risk Parity Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/hierarchical-risk-parity/clustering-basedHierarchical Clustering-Based Risk Parity Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/inverse-variance-weightedInverse Variance Weighted Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/inverse-volatility-weightedInverse Volatility Weighted Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/market-capitalization-weightedMarket Capitalization Weighted Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/maximum-decorrelationMaximum Decorrelation Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/minimum-correlationMinimum Correlation Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/most-diversifiedMost Diversified Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/risk-budgetingRisk Budgeting Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/supervised/nearest-neighbors-basedk-Nearest Neighbors Supervised Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Portfolio Optimization / Mean-Variance16
POST/portfolios/optimization/maximum-returnMaximum Return Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/maximum-return/diversifiedDiversified Maximum Return Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/maximum-return/resampling-basedResampling-Based Maximum Return Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/maximum-return/subset-resampling-basedSubset Resampling-Based Maximum Return Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/maximum-sharpe-ratioMaximum Sharpe Ratio Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/maximum-sharpe-ratio/diversifiedDiversified Maximum Sharpe Ratio Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/maximum-sharpe-ratio/resampling-basedResampling-Based Maximum Sharpe Ratio Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/maximum-sharpe-ratio/subset-resampling-basedSubset Resampling-Based Maximum Sharpe Ratio Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/mean-variance-efficientMean-Variance Efficient Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/mean-variance-efficient/diversifiedDiversified Mean-Variance Efficient Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/mean-variance-efficient/resampling-basedResampling-Based Mean-Variance Efficient Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/mean-variance-efficient/subset-resampling-basedSubset Resampling-Based Mean-Variance Efficient Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/minimum-varianceMinimum Variance Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/minimum-variance/diversifiedDiversified Minimum Variance Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/minimum-variance/resampling-basedResampling-Based Minimum Variance Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/minimum-variance/subset-resampling-basedSubset Resampling-Based Minimum Variance Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Portfolio Optimization / Ulcer Index2
POST/portfolios/optimization/maximum-ulcer-performance-indexMaximum Ulcer Performance Index Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/optimization/minimum-ulcer-indexMinimum Ulcer Index Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Portfolio Post-Optimization1
POST/portfolios/post-optimization/roundingPortfolio Weights Rounding
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Portfolio Replication2
POST/portfolios/replication/index-trackingIndex Tracking Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/replication/index-tracking/sparseSparse Index Tracking Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Portfolio Simulation3
POST/portfolios/simulation/evolutionPortfolio Evolution Simulation
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/simulation/evolution/randomRandom Portfolio Evolution Simulation
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/simulation/randomRandom Portfolio Simulation
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
Portfolio Transformation2
POST/portfolios/transformation/money-weightedMoney-Weighted Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
POST/portfolios/transformation/time-weightedTime-Weighted Portfolio
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK

Try it

Developer reference

Base URLhttps://api.portfoliooptimizer.io/v1
Rate limit

Free and keyless, but throttled to roughly 1 request/second (HTTP 429 on bursts); an optional X-API-Key raises the limit.

Key endpoints
  • POST/portfolios/optimization/equal-weighted
  • POST/portfolios/optimization/minimum-variance
  • POST/assets/correlation/matrix