Skip to content
SimicX

Portfolio · Endpoint

Trades

Every fill: decision time, phase, quantity, prices, fees and costs.

GET/v1/alphas/{alpha}/trades

Parameters

Path parameters

NameTypeRequiredDefaultDescription
alphastringrequiredalpha_id (e.g. CausalHaarActivityDisplacement_0de63b8678a2_sp500pit_weekly_20260730t000858z_f358d1480d42). Use the value returned by GET /v1/alphas.

Query parameters

NameTypeRequiredDefaultDescription
bookstringrequiredRequired, 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.
fromYYYY-MM-DDoptionalwindow startFirst trading day, inclusive.
toYYYY-MM-DDoptionalwindow endLast trading day, inclusive.
symbolstringoptionalRestrict to one ticker.
limitinteger 1–5000optional100Rows per page. Below 1 or above 5000 is a 400 bad_request naming the parameter and the constraint it broke.
offsetintegeroptional0Rows 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

GEThttps://api.simicx.com/v1/alphas/{alpha}/trades?limit=100&offset=0

Example 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.

  • timestampISO timestamp

    When the fill happened.

    How it is computed

    Fills execute at the next session open after the decision date.

  • decision_atYYYY-MM-DD

    The rebalance that caused the trade.

    How it is computed

    Joins to /rebalances/{date}.

  • symbolstring

    The traded name.

    How it is computed

  • phaseopen | rebalance | close

    Why 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_pricenumber

    Reference mid at decision time.

    How it is computed

    The price the target weight was sized against.

  • fill_pricenumber

    Achieved price including modelled impact.

    How it is computed

    fill_price − mid_price (× quantity) is the impact component of execution_cost.

  • feebase currency

    Commission on the fill.

    How it is computed

    Per-share commission model.

  • execution_costbase currency

    Total cost of the fill.

    How it is computed

    fee + market impact; feeds the pnl and ledger rows.

  • rebalance_adjustment_reasonstring | null

    Why the weight changed.

    How it is computed

    entry, weight_increase, weight_decrease, exit — the book-side echo of decision_reason.

  • exit_reasonstring | null

    Why a closing trade happened.

    How it is computed

    signal_exit (dropped from the selection), risk_exit, or null for non-closing phases.

  • pagination.limitoffsetinteger

    The page window applied.

    How it is computed

    Echoes the request parameters (or their defaults — 100 rows, 500 on /equity-curve).

  • pagination.returnedinteger

    Rows in this page.

    How it is computed

    data.length — below limit on the last page.

  • pagination.totalinteger

    Rows matching the query across all pages.

    How it is computed

    Server-side count before paging.

  • pagination.has_moreboolean

    Whether another page exists.

    How it is computed

    offset + returned < total — false on the last page; stop paging there.

  • meta.runstring

    The alpha that served the response.

    How it is computed

    Echoes the resolved alpha_id. Retain for reproducible analysis.

  • meta.alpha_idstring

    Source label associated with the alpha, when present.

    How it is computed

    Informational; address data endpoints with alpha_id / meta.run.