Aller au contenu
GET /v1/optimize

Minimum-variance + maximum-Sharpe portfolios

Essayez-le en direct

10 appels gratuits par jour — sans inscription, sans clé API. Passe par la passerelle oanor.

En-têtes personnalisés (facultatif)
api.oanor.com/portfoliooptimizer-api

Ça marche. Récupérez une clé API et utilisez-la dans votre projet.

Obtenez une clé API

Extraits de code

curl "https://api.oanor.com/portfoliooptimizer-api/v1/optimize" \
  -H "x-oanor-key: oanor_test_..."
await fetch("https://api.oanor.com/portfoliooptimizer-api/v1/optimize", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
$ch = curl_init("https://api.oanor.com/portfoliooptimizer-api/v1/optimize");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$out = curl_exec($ch);
import requests
requests.get(
    "https://api.oanor.com/portfoliooptimizer-api/v1/optimize",
    headers={"x-oanor-key": "oanor_test_..."}
)

Exemple de réponse

Une réponse réelle de ce endpoint, capturée lors du dernier contrôle de santé.

{
    "data": {
        "note": "Weights are unconstrained Markowitz (may be negative = short). Returns/volatility annualised.",
        "assets": [
            "stocks",
            "bonds"
        ],
        "source": "PORTFOLIO",
        "risk_free": 0.02,
        "observations": 5,
        "maximum_sharpe": {
            "weights": {
                "bonds": 0.668604,
                "stocks": 0.331396
            },
            "volatility": 0.024955,
            "sharpe_ratio": 57.033732,
            "expected_return": 1.443303
        },
        "minimum_variance": {
            "weights": {
                "bonds": 0.672352,
                "stocks": 0.327648
            },
            "volatility": 0.024805,
            "sharpe_ratio": 56.689331,
            "expected_return": 1.426166
        },
        "periods_per_year": 252
    },
    "meta": {
        "timestamp": "2026-06-11T07:49:23.731Z",
        "request_id": "364c8544-2be7-415d-a331-72f08152c097"
    },
    "status": "ok",
    "message": "Portfolio optimised",
    "success": true
}