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, orSESSION_CRM_ADMIN; logspermission, 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_typeuses the platform session type integer values.result_codeis the original handler/core result code;statusis the normalized Journal lifecycle status.TradeProtectionActivatedis written when the core activates TP, SL, or Stop Out. Itschanges_json.activationvalue isTP,SL, orSO.
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 |