Journal session JSON shape

Share this page URL with an AI assistant to generate importable JSON for EndureTrade journal sessions. Import from the web app using a JSON file or pasted text.

Canonical URL: https://www.enduretrade.com/docs/session/import

Field reference

FieldTypeRequiredNotes
journalSessionobjectYesSession metadata. Optional id (uuid). On Sessions list import: matching id updates that session; missing/unknown id creates a new session and creates all trades. On session detail import: ignored.
journalSession.labelstringNoSession title; defaults to empty string
journalSession.tagsstring[]NoSession tags; defaults to []
journalSession.notestringNoOptional session note
tradesarrayYesTrades with optional nested messages. Upsert by trade id when importing into an existing session; always create when the session is newly created from list import.
trades[].symbolstringYesInstrument symbol
trades[].positionSizenumberYesMust be > 0
trades[].directionstringYes"long" | "short"
trades[].entryPricenumberYesMust be > 0
trades[].openedAtstring (ISO 8601)YesOpen timestamp
trades[].messagesarrayNoOptional notes; screenshotStoragePath kept only when non-empty (same-user storage)
filtersobjectExport onlyApplied trade filter at export time (may be {}). Ignored on import.
metricsobjectExport onlyBuilt-in trade metrics from the filtered set. Ignored on import.
calculationSummaryobjectExport onlyUser-defined calculation results (all/long/short). Ignored on import.

Example JSON

Payload may be a single object or an array of objects. All items are validated before any import writes.

{
  "journalSession": {
    "label": "Morning focus",
    "tags": [
      "discipline"
    ],
    "note": "First hour only"
  },
  "trades": [
    {
      "symbol": "ES",
      "positionSize": 1,
      "direction": "long",
      "entryPrice": 5200,
      "openedAt": "2024-06-01T13:30:00.000Z",
      "exitPrice": 5210,
      "closedAt": "2024-06-01T14:00:00.000Z",
      "profitLoss": 50,
      "note": "",
      "tags": [
        "breakout"
      ],
      "messages": [
        {
          "note": "Clean break of VWAP"
        }
      ]
    }
  ]
}

Import rules

When id matches an existing record you own, that record is updated. When id is missing or does not match, a new record is created and any foreign id is ignored. Read-only fields such as userId and timestamps are ignored if present in export files.