Quantum Portfolio Product API Guide
Integration Modes
- Production mode (recommended): send
returns+covariancedirectly. - Research/demo mode: send
tickers+ dates (uses yfinance fallback).
Set REQUIRE_MATRIX_INPUT=true in production to disable yfinance path.
Core Endpoints
POST /api/portfolio/optimizePOST /api/portfolio/optimize/batchPOST /api/portfolio/backtestPOST /api/portfolio/efficient-frontier
Async Jobs
- Submit optimization:
POST /api/jobs/optimize - Submit backtest:
POST /api/jobs/backtest - Poll status:
GET /api/jobs/{job_id}
Each async submit endpoint accepts:
{
"payload": { "...": "endpoint payload" },
"webhook_url": "https://your-system/callback"
}
Authentication
Use X-API-Key header.
- Static mode:
API_KEY=<secret> - Multi-tenant mode: store hashed keys in
api_keystable indata/api.sqlite3.
Admin key management endpoints:
POST /api/admin/api-keyswithX-Admin-Keyheader (ADMIN_API_KEYenv var)GET /api/admin/api-keyswithX-Admin-Keyheader
SDK
Use quantum_portfolio_sdk.QuantumPortfolioClient:
from quantum_portfolio_sdk import QuantumPortfolioClient
client = QuantumPortfolioClient("http://localhost:5000", api_key="...")
res = client.optimize({...})
See examples/sdk/basic_client_example.py.