quantum-hybrid-portfolio / docs /API_PRODUCT_GUIDE.md
rocRevyAreGoals15's picture
Initial HF Space deployment
9e89154
|
Raw
History Blame Contribute Delete
1.36 kB
# Quantum Portfolio Product API Guide
## Integration Modes
- **Production mode (recommended):** send `returns` + `covariance` directly.
- **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/optimize`
- `POST /api/portfolio/optimize/batch`
- `POST /api/portfolio/backtest`
- `POST /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:
```json
{
"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_keys` table in `data/api.sqlite3`.
Admin key management endpoints:
- `POST /api/admin/api-keys` with `X-Admin-Key` header (`ADMIN_API_KEY` env var)
- `GET /api/admin/api-keys` with `X-Admin-Key` header
## SDK
Use `quantum_portfolio_sdk.QuantumPortfolioClient`:
```python
from quantum_portfolio_sdk import QuantumPortfolioClient
client = QuantumPortfolioClient("http://localhost:5000", api_key="...")
res = client.optimize({...})
```
See `examples/sdk/basic_client_example.py`.