Docs
GET /v2/journal/trades

List journal trades

journal_listTrades

Every trade recorded in your journal, each as {id, account_id, symbol, side, qty, price, ts, note} (note is omitted when unset).

Units

  • price is dollars per share or per contract, as recorded.
  • qty is shares or contracts.
  • ts is epoch milliseconds.

Empty results

A journal with no trades returns 200 with an empty data list.

Example

http
GET /v2/journal/trades
json
{
  "data": [
    {
      "id": "01J8ZKT1V9Q4H6N2B7C3D5F8GA",
      "account_id": "01J8ZKQ4ZP3V7C2M8XW5R6T9YB",
      "symbol": "SPY",
      "side": "buy",
      "qty": 10.0,
      "price": 661.25,
      "ts": 1790270000000,
      "note": "opening position"
    }
  ],
  "meta": { "count": 1 }
}

Response

Prices are dollars, timestamps epoch milliseconds, strikes integer thousandths of a dollar; null means unknown. Units →

200application/json

Your journal trades in data

object

A successful response: the payload consumers parse plus response metadata. data shapes are the platform types — never reshaped by the envelope.

data array<object> required
account_id string required
id string required
note string nullable
price number · double required USD

Fill price, dollars.

qty number · double required

Quantity (shares or contracts).

side string required

buy / sell (free-form; validated non-empty).

symbol string required
ts integer · int64 required epoch ms

Trade time, epoch-ms.

meta object required

Response metadata.

caps object nullable

meta.caps — the entitlement caps that shaped this response. applied lists the caps that actually changed it (for example range_clamped).

applied array<string> required

Which caps actually shaped this response (e.g. range_clamped). Empty = nothing was clamped.

darkpool boolean nullable

Whether this account can use Off-Exchange in the site.

flow boolean nullable

Whether the OPRA option-flow capability (flow) is granted to this principal in the app: site Pro plus a CBOE non-professional attestation (never on an itm_ key). Emitted explicitly — true and false — by the account endpoints, so the app reads the grant instead of inferring it from tier and attestation; absent on routes that do not report it.

gexDepth string nullable

GEX data depth when the route reports it. Camel-cased to match the browser capability bundle; absent on unrelated routes.

tier string required

The tier the request was served under.

cursor string nullable

Opaque continuation cursor (pass back as ?cursor=); absent when there is nothing more to read.

plane string nullable

Which serving tier answered the read (meta.plane). Informational provenance: treat it as an opaque label, because new values may appear.

Errors

Every error is the JSON error envelope; branch on error.code.

StatusMeaning
401

unauthenticated