Portfolio Optimizer is a Web API to analyze and optimize investment portfolios (collection of financial assets such as stocks, bonds, ETFs, crypto-currencies) using modern portfolio theory algorithms (mean-variance, VaR, etc.).
Portfolio Optimizer is based on REST for easy integration, uses JSON for the exchange of data and uses a standard HTTP verb (POST
) to represent the action(s).
Portfolio Optimizer is also as secured as a Web API could be:
The following HTTP header(s) are required when calling Portfolio Optimizer endpoints:
Content-type: application/json
The following HTTP header(s) are optional when calling Portfolio Optimizer endpoints:
Content-Encoding: gzip
X-API-Key: <private API key>
Portfolio Optimizer is free to use, but not free to run.
In order to obtain an API key and benefit from higher API limits, a small participation to Portfolio Optimizer running costs is required.
This participation takes the form of coffee(s), with one coffee = one month of usage.
Notes:
- Please make sure not to expose your API key publicly!
Portfolio Optimizer comes with fairly reasonable API limits.
For anonymous users:
For authenticated users with an API key:
Notes:
- It is possible to further relax the API limits, or to disable the API limits alltogether; please contact the support for more details.
- Information on the API rate limits are provided in response messages HTTP headers
x-ratelimit-*
:
x-ratelimit-limit-second
, the limit on the number of API requests per secondx-ratelimit-remaining-second
, the number of remaining API requests in the current secondx-ratelimit-limit-minute
, the limit on the number of API requests per minute- …
Portfolio Optimizer servers are located in Western Europe.
Notes:
- It is possible to deploy Portfolio Optimizer in other geographical regions, for example to improve the API latency; please contact the support for more details.
Standard HTTP response codes are used by Portfolio Optimizer to provide details on the status of API requests.
HTTP Code | Description | Notes |
---|---|---|
200 | Request successfully processed | - |
400 | Request failed to be processed because of incorrect content | The response message body contains information on the incorrect content |
401 | Request failed to be processed because of invalid API key | - |
404 | Request failed to be processed because of non existing endpoint | The requested endpoint might exist, but needs to be accessed with another HTTP method (e.g., POST instead of GET ) |
429 | Request failed to be processed because of API limits violated | The response message HTTP headers x-ratelimit-* contain information on the API limits |
500 | Request failed to be processed because of an internal error | Something went wrong on Portfolio Optimizer side, do not hesitate to report the issue |
502 | Request failed to be processed because of a temporary connectivity error | Something went wrong on Portfolio Optimizer side, please check the API status and do not hesitate to report the issue |
Portfolio Optimizer is monitored 24/7 by UptimeRobot.
For any issue or question about Portfolio Optimizer, please do not hesitate to contact the support.
Use this page to mock Portfolio Optimizer in your testing and development.
Run our mock API sample using the open source WireMock library, or in the free edition of WireMock Cloud. You'll have a working API server simulating the behavior of Portfolio Optimizer, which will allow you to keep building and testing even if the actual API you isn't currently available.