Portfolio · Endpoint
Trades
Every fill: decision time, phase, quantity, prices, fees and costs.
/v1/alphas/{alpha}/tradesParameters
Path parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
alpha | string | required | — | alpha_id (e.g. CausalHaarActivityDisplacement_0de63b8678a2_sp500pit_weekly_20260730t000858z_f358d1480d42). Use the value returned by GET /v1/alphas. |
Query parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
book | string | required | — | Required, with no default. A book's adjustment and settlement variants (<book>_adjustments, <book>_settlements) are not fills, so picking one for you would return the wrong rows. Omitting book returns a 400 listing the books available for this alpha. |
from | YYYY-MM-DD | optional | window start | First trading day, inclusive. |
to | YYYY-MM-DD | optional | window end | Last trading day, inclusive. |
symbol | string | optional | — | Restrict to one ticker. |
limit | integer 1–5000 | optional | 100 | Rows per page. Below 1 or above 5000 is a 400 bad_request naming the parameter and the constraint it broke. |
offset | integer | optional | 0 | Rows to skip; pagination.has_more is false at the end. |
Example request
curl
curl -H "Authorization: Bearer sxk_live_4f9c…" \ "https://api.simicx.com/v1/alphas/CausalHaarActivityDisplacement_0de63b8678a2_sp500pit_weekly_20260730t000858z_f358d1480d42/trades?book=long_short&from=2026-06-22&to=2026-06-26&symbol=AAPL"
Try it
Execute GET /v1/alphas/{alpha}/trades against the live API using your key. Paste a key below to send without signing in, or sign in to auto-fill from your profile — either way, the call counts towards your rate limits. Whether the route answers depends on your key's endpoint allow-list — /v1/me lists what is in force; a new key starts with only the self-service routes until an administrator grants more.
Sent server-side via a same-origin proxy; only the documented host(s) are allowed.
Paste an API key above to list alphas your key may access.
Request
https://api.simicx.com/v1/alphas/{alpha}/trades?limit=100&offset=0Example response
JSON · synthetic values, real schema
{
"data": [
{
"book": "long_short",
"timestamp": "2026-06-29T13:31:00Z",
"decision_at": "2026-06-26",
"symbol": "AAPL",
"phase": "rebalance",
"quantity": 96,
"mid_price": 214.10,
"fill_price": 214.30,
"fee": 4.12,
"execution_cost": 23.40,
"rebalance_adjustment_reason": "weight_increase",
"exit_reason": null
}
],
"pagination": { "limit": 100, "offset": 0, "returned": 1, "total": 3, "has_more": true },
"meta": { "run": "CausalHaarActivityDisplacement_0de63b8678a2_sp500pit_weekly_20260730t000858z_f358d1480d42", "alpha_id": "CausalHaarActivityDisplacement_0de63b8678a2_sp500pit_weekly_20260730t000858z_f358d1480d42", "source_alpha_id": "causal_haar_activity_displacement_reversal_b3874c9db78d", "book": "long_short" }
}Response fields
Every field the response can carry, what it means, and how it is computed.
timestampdecision_atsymbolphasequantitymid_pricefill_pricefeeexecution_costrebalance_adjustment_reasonexit_reasonpagination.limitoffsetpagination.returnedpagination.totalpagination.has_moremeta.runmeta.alpha_idtimestampISO timestampWhen the fill happened.
How it is computed
Fills execute at the next session open after the decision date.
decision_atYYYY-MM-DDThe rebalance that caused the trade.
How it is computed
Joins to /rebalances/{date}.
symbolstringThe traded name.
How it is computed
—
phaseopen | rebalance | closeWhy the trade happened.
How it is computed
open = entering the book, rebalance = weekly re-target, close = leaving it.
quantitynumber (signed)Shares filled.
How it is computed
Positive buy, negative sell.
mid_pricenumberReference mid at decision time.
How it is computed
The price the target weight was sized against.
fill_pricenumberAchieved price including modelled impact.
How it is computed
fill_price − mid_price (× quantity) is the impact component of execution_cost.
feebase currencyCommission on the fill.
How it is computed
Per-share commission model.
execution_costbase currencyTotal cost of the fill.
How it is computed
fee + market impact; feeds the pnl and ledger rows.
rebalance_adjustment_reasonstring | nullWhy the weight changed.
How it is computed
entry, weight_increase, weight_decrease, exit — the book-side echo of decision_reason.
exit_reasonstring | nullWhy a closing trade happened.
How it is computed
signal_exit (dropped from the selection), risk_exit, or null for non-closing phases.
pagination.limitoffsetintegerThe page window applied.
How it is computed
Echoes the request parameters (or their defaults — 100 rows, 500 on /equity-curve).
pagination.returnedintegerRows in this page.
How it is computed
data.length — below limit on the last page.
pagination.totalintegerRows matching the query across all pages.
How it is computed
Server-side count before paging.
pagination.has_morebooleanWhether another page exists.
How it is computed
offset + returned < total — false on the last page; stop paging there.
meta.runstringThe alpha that served the response.
How it is computed
Echoes the resolved alpha_id. Retain for reproducible analysis.
meta.alpha_idstringSource label associated with the alpha, when present.
How it is computed
Informational; address data endpoints with alpha_id / meta.run.

