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
| Field | Type | Required | Notes |
|---|---|---|---|
| journalSession | object | Yes | Session 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.label | string | No | Session title; defaults to empty string |
| journalSession.tags | string[] | No | Session tags; defaults to [] |
| journalSession.note | string | No | Optional session note |
| trades | array | Yes | Trades 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[].symbol | string | Yes | Instrument symbol |
| trades[].positionSize | number | Yes | Must be > 0 |
| trades[].direction | string | Yes | "long" | "short" |
| trades[].entryPrice | number | Yes | Must be > 0 |
| trades[].openedAt | string (ISO 8601) | Yes | Open timestamp |
| trades[].messages | array | No | Optional notes; screenshotStoragePath kept only when non-empty (same-user storage) |
| filters | object | Export only | Applied trade filter at export time (may be {}). Ignored on import. |
| metrics | object | Export only | Built-in trade metrics from the filtered set. Ignored on import. |
| calculationSummary | object | Export only | User-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.