Skip to main content
POST
Construct an optimized portfolio

Authorizations

Authorization
string
header
required

Enter 'Bearer' followed by a space and then your JWT or API Key. Example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... or Bearer YOUR_API_KEY_HERE

Path Parameters

strategyId
string<uuid>
required

UUID of the strategy.

Query Parameters

asOfDate
string<date>

The as-of date in YYYY-MM-DD format that selects a specific run of the version. When omitted, the latest completed run for the version is used.

versionId
string<uuid>

The version to read. When omitted, the strategy's active version is used.

minMarketCap
number<double>
default:1000000000

Minimum market capitalization a company needs to be included.

signalType
enum<string>
default:convictionScore

Which signal metric to score companies on.

Available options:
linguisticBeta,
marketBuzz,
convictionScore
tiltExponent
number<double>
default:1

Power exponent that controls how strongly signal scores affect weights. A value of 0 produces equal weights, 1 makes weights proportional to score, and higher values concentrate weight in the top-scoring companies.

Required range: 0 <= x <= 10
maxWeight
number<double>
default:0.2

Maximum weight allowed for any single holding.

Required range: 0 < x <= 1
minWeight
number<double>
default:0.005

Minimum weight allowed for any single holding.

Required range: 0 <= x <= 1
riskAdjustment
number<double>
default:0

How strongly to diversify by risk. A value of 0 applies pure score-tilt weighting with no risk adjustment, and 1 applies the maximum adjustment to reduce concentration in correlated stocks. Any value above 0 requires price data for the covariance computation.

Required range: 0 <= x <= 1
riskFreeRate
number<double>
default:0.03

Annual risk-free rate used to compute the Sharpe ratio.

topN
integer

Number of top companies by signal score to include. When omitted, all qualifying companies are included.

Required range: x >= 2

Body

application/json
companyIds
string[]

Optional list of company IDs to start from before the other filters are applied.

Response

The constructed portfolio.

The constructed portfolio and its summary statistics.

metadata
object
required

Summary statistics for the constructed portfolio.

portfolio
object[]
required