API Reference
Base URL: https://api.portfolwright.com/v1
POST
/portfolios
Create portfolio
Create a new portfolio object. Returns a portfolio_id used in subsequent requests.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | required | Portfolio display name |
| currency | string | required | Base currency (ISO 4217). EUR, GBP, CHF, SEK, DKK, NOK |
| tax_jurisdiction | string | required | ISO 3166-1 country code. Determines default tax lot method. |
| account_type | enum | optional | depot | isa | pea | pension. Defaults to depot. |
| metadata | object | optional | Key-value pairs for your own reference (max 16 keys) |
POST /v1/portfolios
{
"name": "Maria Schneider — Depot",
"currency": "EUR",
"tax_jurisdiction": "DE",
"account_type": "depot",
"metadata": {
"internal_id": "cust_8812"
}
}
{
"portfolio_id": "pf_3x8k2m",
"name": "Maria Schneider — Depot",
"currency": "EUR",
"tax_jurisdiction": "DE",
"account_type": "depot",
"default_tax_method": "FIFO",
"created": 1750512734
}
POST
/portfolios/{id}/rebalance
Trigger rebalance
Calculate and queue a rebalancing sequence for the specified portfolio. Returns immediately with a rebalance_id; status is delivered via webhook or polled via GET /rebalances/{id}.
| Parameter | Type | Required | Description |
|---|---|---|---|
| target_weights | object | required | ISIN → weight (0.0–1.0) map. Weights must sum to 1.0 ± 0.001. |
| tax_method | enum | optional | FIFO | HIFO | average_cost | specific_id. Overrides portfolio default. |
| drift_threshold | number | optional | Absolute drift threshold (0.01–0.25). Default 0.05. |
| idempotency_key | string | optional | Unique string for safe retry. Same key returns same result within 24h. |
GET
/mifid-records/{id}
Get MiFID II record
Retrieve a MiFID II Article 25 compliance record for a specific order execution. Records are retained for 5 years per regulatory requirement.
MiFID II compliance details →