Skip to content

MngGetJournalByFilter

Returns a page of structured operational Journal records. The method reads the daily Journal files whose UTC dates intersect the requested Unix time range.

Journal contains product and business operations. Technical diagnostics remain in the server logger and are not returned by this method.

Access Control

The action requires:

  • manager session: SESSION_MANAGER, SESSION_ADMIN, SESSION_DEALER, SESSION_CRM_MANAGER, or SESSION_CRM_ADMIN;
  • logs permission, except for SuperAdmin;
  • BackOffice or CRM application access.

Visibility is always restricted on the server before offset and limit are applied:

  • SuperAdmin can see all records;
  • Brand Admin can see only its brand and the domains available through its BackOffice/CRM access;
  • a regular BackOffice manager or dealer can see trading, account and finance records only for allowed groups;
  • a regular CRM manager can see customer, KYC, marketing and finance records only for allowed desks;
  • records without enough resource scope are hidden from regular managers.

The client-provided brand, group, and desk_id filters never expand the manager's server-side scope.

Request Parameters

Name Type Required Description
from int64 Yes Inclusive Unix timestamp in seconds; must be >= 0
to int64 Yes Inclusive Unix timestamp in seconds; must be >= from
limit int Yes Page size from 1 to 1000
offset int No Number of visible matching records to skip; default 0
direction string No ASC or DESC; default DESC
brand string No Exact brand filter
domain string No Exact domain, for example trading, accounts, customers, kyc, marketing, finance, or configuration
action string No Exact action name, for example TradeProtectionActivated
status int No Journal status: 0 accepted, 1 succeeded, 2 rejected, 3 failed
actor_type int No Exact session/actor type
actor_id string No Exact actor identifier
request_id string No Exact request correlation identifier
channel string No Exact source channel, for example tcp, http, or core
entity_type string No Exact entity type, for example customer, account, group, or trade
entity_id string No Exact entity identifier
customer_id int No Exact customer id; filtering is applied when value is greater than zero
login int No Exact account login; filtering is applied when value is greater than zero
group string No Exact account group
desk_id int No Exact CRM desk id; filtering is applied when value is greater than zero
search string No Case-insensitive substring search across the main text fields

search checks event_id, brand, domain, action, actor fields, request_id, IP, entity fields, group, changes_json, and detail.

Request

{
  "command": "MngGetJournalByFilter",
  "extID": "journal-page-1",
  "data": {
    "from": 1789516800,
    "to": 1789603199,
    "limit": 100,
    "offset": 0,
    "direction": "DESC",
    "brand": "ion4",
    "domain": "trading",
    "login": 33005357
  }
}

Response

The response uses the standard table representation. Every item in rows matches the field at the same index in structure.

{
  "structure": [
    "schema_version",
    "timestamp",
    "event_id",
    "brand",
    "domain",
    "action",
    "status",
    "actor_type",
    "actor_id",
    "actor_name",
    "session_id",
    "request_id",
    "channel",
    "ip",
    "user_agent",
    "device_id",
    "entity_type",
    "entity_id",
    "customer_id",
    "login",
    "group",
    "desk_id",
    "result_code",
    "changes_json",
    "detail"
  ],
  "rows": [
    [
      1,
      1789544721,
      "1789540000-1234-1",
      "ion4",
      "trading",
      "TradeProtectionActivated",
      0,
      4,
      "33005357",
      "",
      "",
      "",
      "core",
      "",
      "",
      "",
      "trade",
      "181673",
      0,
      33005357,
      "real-usd",
      0,
      0,
      "{\"activation\":\"SO\",\"activation_code\":3,\"margin_level\":18.4}",
      "SO activated for order=181673 symbol=AUDNZD login=33005357"
    ]
  ],
  "offset": 0,
  "count": 1,
  "has_more": false
}

Response Fields

Name Type Description
structure string[] Ordered Journal column names
rows array[] Records represented as arrays aligned with structure
offset uint64 Applied offset
count uint64 Number of returned rows
has_more bool true when another visible matching record exists after this page

Notes

  • Time range boundaries are inclusive.
  • File selection uses UTC dates.
  • Records are eventually consistent: a newly accepted operation becomes searchable after the asynchronous Journal writer processes it.
  • actor_type uses the platform session type integer values.
  • result_code is the original handler/core result code; status is the normalized Journal lifecycle status.
  • TradeProtectionActivated is written when the core activates TP, SL, or Stop Out. Its changes_json.activation value is TP, SL, or SO.

Errors

HTTP-style status Error Description
400 INVALID_DATA Invalid type, limit, direction, or time range
401/403 permission error Session, application scope, or logs permission is missing
500 JOURNAL_READ_ERROR Journal directory or daily file could not be read