Skip to main content
These endpoints expose what the engine has done: the orders it submitted, the trigger evaluations it logged, the positions it holds, and the resulting PnL — plus a live event stream so a client doesn’t have to poll for any of it. Reach for Real-time events first; the REST endpoints are the snapshot and audit surface behind it. All endpoints require Authorization: Bearer <jwt>.

List orders

Every order Krisis has tracked for the caller — one row per submission.

Example

Response

Order status

status moves through pending → open → partially_filled → filled, or a terminal cancelled / rejected / expired / failed. The cost_reserved amount is held against the linked fund and released on a terminal order state — see Funds.

List executions

An execution is one trigger evaluation — every time a strategy’s condition was checked and the engine decided to act or skip. Use it to audit why a strategy did or did not fire.

Response

skip_reason values

Gotcha: an armed strategy that never trades is not an error anywhere. It records executions with action_taken: false and a skip_reason, and no request ever fails. If a strategy looks healthy but is silent, read this endpoint.

List positions

Every position — open and closed — held by the caller.

Response

Closed positions are returned too — filter on is_open.

Positions for one fund

Same shape, filtered to a single fund. 404 if the fund is not yours.

Equity curve

Historical equity snapshots for a fund, newest first.

Request

Response

Array of snapshots.

PnL summary

A rolled-up PnL view across all of the caller’s funds.

Example

Response

Each entry in funds:

Real-time events

Server-Sent Events stream of the caller’s own strategy activity — orders, positions, and strategies change without polling. Krisis filters the stream server-side so a connection only ever receives its own user_id’s events.

Example

Event types

Several event types are multiplexed on one stream, discriminated by the SSE event: field:
Gotcha: deltas and invalidation pings overlap. A single mutation may emit both a strategy_updated / strategy_removed and a data_changed { kind: "strategy" }. A client consuming the deltas should treat the matching data_changed as a no-op rather than a second edit.
A trigger event:

Connection handling