
Portfolio Optimizer
Last updated: March 6, 2023
Description
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.).
API General Information
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:
- 256-bit HTTPS Encryption
- No usage of cookies
- No usage of personal data
API Headers
The following HTTP header(s) are required when calling Portfolio Optimizer endpoints:
Content-type: application/json
This header specifies that the data provided in input to the endpoint is in JSON format
The following HTTP header(s) are optional when calling Portfolio Optimizer endpoints:
Content-Encoding: gzip
This header indicates that the data provided in input to the endpoint is compressed with gzip.X-API-Key: <private API key>
This header enables authenticated users to provide their private API key in order to benefit from higher API limits
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!
API Limits
Portfolio Optimizer comes with fairly reasonable API limits.
For anonymous users:
- The API requests are restricted to a subset of all the available endpoints and/or endpoints features
- The API requests are limited to 1 request per second for all the anonymous users combined, with concurrent requests rejected
- The API requests are limited to 1 second of execution time
- The API requests are limited to 20 assets, 250 portfolios, 500 series data points and 5 factors
For authenticated users with an API key:
- The API requests have access to all the available endpoints and endpoints features
- The API requests are limited to 10000 requests per 24 hour per API key, with concurrent requests queued
- The API requests are limited to 2.5 seconds of execution time
- The API requests are limited to 100 assets, 1250 portfolios, 2500 series data points and 25 factors
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- ...
API Regions
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.
API Response Codes
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 |
API Status
Portfolio Optimizer is monitored 24/7 by UptimeRobot.
Support
For any issue or question about Portfolio Optimizer, please do not hesitate to contact the support.