Portfolio Optimizer
248 portfolio maths endpoints over HTTP — no install, no solver, no account.
Last updated
What it is
Portfolio Optimizer is the same body of mathematics the Python libraries in this category implement, exposed as 248 HTTP endpoints. You POST a covariance matrix and get weights back; there is nothing to install, no solver to choose and, anonymously, no account to create.
The catalogue is deeper than the name suggests. Around 33 optimisation endpoints cover minimum variance, maximum Sharpe, mean-variance efficient, maximum return, most diversified, minimum correlation, equal risk contribution, risk budgeting, hierarchical risk parity, minimum and maximum Ulcer-index objectives, and market-capitalisation weighting — several of them in resampled and subset-resampled variants that a library would make you assemble yourself. About 65 analysis endpoints handle value-at-risk in a dozen estimators, drawdowns, risk contributions and factor exposures. The rest estimate and forecast covariance, correlation and volatility (EWMA, ARMA-GARCH, Gerber, shrinkage, denoising), simulate returns by bootstrap or Monte Carlo, cluster assets, replicate an index, and round a weight vector into tradable lots.
It is one person's service — the terms name Roman Rubsamen — running on servers in Western Europe, with a public uptime page and a release-notes feed. The spec version was 1.0.12 on 19 September 2026.
Pricing
Anonymous use is genuinely free and genuinely limited, and the documentation publishes the numbers,
which is more than most do. Anonymous callers get a subset of the endpoints, one second of
execution time, and inputs capped at 20 assets, 250 portfolios, 500 data points, 500 simulations
and 5 factors — plus the limit that makes this a demo rather than a tier: one request per second
for all the anonymous users combined, with concurrent requests rejected. That is the spec's own
wording, not a reading of it, and every response carries x-ratelimit-* headers showing where the
shared bucket currently stands.
An API key lifts that to every endpoint, 10,000 requests per rolling 24 hours, concurrency allowed, 2.5 seconds of execution time, and five times the input sizes. The key is bought through Buy Me a Coffee as a 4 euro a month membership, 48 euro annually; the about page also frames it as one coffee per month of usage, and a coffee is 3 euro. Limits beyond the published ones, and deployment in another region, are arranged by email.
Data & coverage
Not a data provider, with a handful of exceptions that are worth knowing about. A few key-only endpoints return monthly Fama-French factors for the US, developed and emerging markets, the NAAIM exposure index and the AAII asset allocation survey, and long-term capital market assumptions in USD, EUR and CHF. There are no quotes, no bars and no prices — everything else you send.
Integrations
Plain JSON over HTTPS with an optional gzip request encoding and an X-API-Key header, which means
anything that can make an HTTP call is a client. The vendor's own worked examples are JavaScript
fetch in a web page, Excel and Google Sheets. There is no official SDK in any language.
Limitations
- Your numbers go to somebody else's server. Most endpoints take anonymous inputs — returns, covariances, weights — and no ticker is required, but the holdings you are optimising still leave your machine. The privacy policy enumerates email addresses, API keys and IP addresses as the personal data collected and says nothing at all about request payloads or how long they are kept. No data processing agreement is offered, and the servers are in Western Europe.
- No SLA. The terms of service, last updated in October 2020, disclaim all warranties and reserve the right to change the limits, revoke a key or discontinue the service without notice — normal for a 4 euro a month service, and disqualifying for anything you would page someone about.
- The anonymous tier is a demo, not a tier. One request per second shared across every anonymous user on the internet means your loop will collide with strangers, and concurrent requests are rejected rather than queued.
- No Black-Litterman endpoint, no backtest, no rebalancing schedule and no tax or turnover accounting. The efficient frontier is there; views on it are not.
- No official client library, and the obvious PyPI name belongs to an unrelated package from 2021.
- Single-operator risk, plainly. One author, one uptime page, no company behind it.
Alternatives
If the calculation can live in your own process, PyPortfolioOpt, Riskfolio-Lib and skfolio do the same work with nothing leaving the machine — at the cost of installing cvxpy and choosing a solver. Portfolio Visualizer is the answer for someone who wants a form and a chart rather than an endpoint.
Specs
- Interfaces
- API
- Export
- JSON
- Asset classes
- Stocks, ETF, Bonds, Commodities, Crypto
- Markets
- Global
- Platforms
- Web
- AI features
- None
- Pricing verified
- Capabilities verified
- Coverage verified
Also worth comparing
- PyPortfolioOpt — Prices in, weights out — efficient frontier, Black-Litterman and HRP.
- Riskfolio-Lib — Twenty-six convex risk measures, four objectives, one cvxpy-backed optimiser.
- skfolio — Portfolio optimisation as scikit-learn estimators — fit, predict, cross-validate.
- arch — GARCH and the rest of the volatility-model family, plus the tests you need around them.
- empyrical-reloaded — The maintained fork of Quantopian's empyrical — risk statistics, no plots.
- ffn — Performance stats, drawdowns and portfolio weights from a DataFrame of prices.
FAQ
What does Portfolio Optimizer cost?
Anonymous use is free and needs no registration. An API key comes from a 4 euro a month membership on Buy Me a Coffee, 48 euro if paid annually, and the site also says a single 3 euro coffee buys one month of authenticated use. Higher limits than the published ones are arranged by contacting the author.
What are the actual rate limits?
Anonymous callers share one request per second between all of them, with concurrent requests rejected, a one-second execution cap, and inputs limited to 20 assets, 250 portfolios, 500 data points, 500 simulations and 5 factors. A key raises that to 10,000 requests per 24 hours, concurrency allowed, 2.5 seconds of execution and 100 assets, 1,250 portfolios, 2,500 data points, 2,500 simulations and 25 factors.
Is there an official Python client?
No. The API is plain JSON over HTTPS and the vendor's own examples are fetch, Excel and Google Sheets. Nothing is published on PyPI under the product's name, and the nearest package a reader would guess, portfolio-optimizer, is an unrelated 0.1.0 release uploaded by a different author in January 2021.
Where does my data go?
To a server in Western Europe run by one person. Most endpoints take returns, covariances and weights rather than tickers or account identifiers, but the numbers still leave your machine, and the privacy policy covers email addresses, API keys and IP addresses without saying anything about request payloads or how long they are kept.