API v2 (beta) · MT4 · 13 operations ·
base URL https://cloud.mywebapi.com ·
OpenAPI v2 (JSON) ·
Redoc
Every call needs Authorization: Bearer $TOKEN — an OAuth 2.0 client-credentials token from
https://auth.cplugin.net/connect/token (scope webapi).
$TRADE_PLATFORM_ID is the id of a trade platform registered in Toolbox.
Pump-cached read — Bid/Ask/High/Low/Spread/Digits and last-tick time
for the requested instrument. Returns NotFound-shaped envelope (the
wrapper-level result code surfaces in ManagerAPICode / ErrorCode)
when the symbol is not loaded on the connected server.
Timeout: 10 s by default, adjustable per request with the X-Request-Timeout header. When the trade server does not answer in time: Nothing was changed; the request is safe to repeat.
Parameters
Name
In
Type
Required
Description
tradePlatform
path
string (uuid)
yes
Trade platform id (GUID)
symbol
query
string
no
Symbol name (e.g. EURUSD)
X-Request-Timeout
header
number (double)
no
How long to wait for the trade server, in seconds (1–300). Default for this operation: 10 s (read). The query parameter requestTimeout does the same for clients that cannot set headers. The applied value is returned in the X-Request-Timeout-Applied response header.
Snapshot of all symbols that have been updated since the last pump flush, keyed by symbol name (values-only on the wire).
Pump-cached read — instant local lookup, no MT4 round-trip. Useful for
bulk refresh of a quote panel or watchlist. Sort key is the symbol
name; cursors are opaque base64 strings.
Timeout: 10 s by default, adjustable per request with the X-Request-Timeout header. When the trade server does not answer in time: Nothing was changed; the request is safe to repeat.
Parameters
Name
In
Type
Required
Description
tradePlatform
path
string (uuid)
yes
limit
query
integer (int32)
no
Maximum number of items to return in one page. Omit to return all items in a single page. Maximum allowed value is 5000.
cursor
query
string
no
Opaque continuation token. Pass the value from the previous response's meta.paging.nextCursor to fetch the next page; omit for the first page.
X-Request-Timeout
header
number (double)
no
How long to wait for the trade server, in seconds (1–300). Default for this operation: 10 s (read). The query parameter requestTimeout does the same for clients that cannot set headers. The applied value is returned in the X-Request-Timeout-Applied response header.
All configured symbol groups (security categories) from the pump cache.
Pump-cached read — returns the broker-configured security groups
(e.g. "Forex", "CFD", "Metals"). Each entry only carries Name and
Description; ConSymbolGroup has no additional fields on the
MT4-side struct.
Timeout: 10 s by default, adjustable per request with the X-Request-Timeout header. When the trade server does not answer in time: Nothing was changed; the request is safe to repeat.
Parameters
Name
In
Type
Required
Description
tradePlatform
path
string (uuid)
yes
Trade platform id (GUID)
X-Request-Timeout
header
number (double)
no
How long to wait for the trade server, in seconds (1–300). Default for this operation: 10 s (read). The query parameter requestTimeout does the same for clients that cannot set headers. The applied value is returned in the X-Request-Timeout-Applied response header.
Full server-side configuration for every symbol on the platform.
Manager (live) call. Heavy response — typical platforms have dozens
to hundreds of symbols, each with a 50+ field ConSymbol
structure. Pair with Idempotency-Key on retry.
Timeout: 10 s by default, adjustable per request with the X-Request-Timeout header. When the trade server does not answer in time: Nothing was changed; the request is safe to repeat.
Parameters
Name
In
Type
Required
Description
tradePlatform
path
string (uuid)
yes
Trade platform id (GUID)
X-Request-Timeout
header
number (double)
no
How long to wait for the trade server, in seconds (1–300). Default for this operation: 10 s (read). The query parameter requestTimeout does the same for clients that cannot set headers. The applied value is returned in the X-Request-Timeout-Applied response header.
GET /api/v2/MT4/{tradePlatform}/CfgRequestSymbol/{symbol}
Full server-side configuration for a single symbol by name.
Manager (live) call. Returns NotFound envelope when the symbol is
not configured on the server. Same DTO shape as CfgRequestSymbol's
list element.
Timeout: 10 s by default, adjustable per request with the X-Request-Timeout header. When the trade server does not answer in time: Nothing was changed; the request is safe to repeat.
Parameters
Name
In
Type
Required
Description
tradePlatform
path
string (uuid)
yes
Trade platform id (GUID)
symbol
path
string
yes
Symbol name (max 12 chars)
X-Request-Timeout
header
number (double)
no
How long to wait for the trade server, in seconds (1–300). Default for this operation: 10 s (read). The query parameter requestTimeout does the same for clients that cannot set headers. The applied value is returned in the X-Request-Timeout-Applied response header.
GET /api/v2/MT4/{tradePlatform}/SymbolSessionsGet/{symbol}
Trading session windows for a symbol, per weekday.
Returns the wrapper's ConSymbol.Sessions[7] array (one entry
per weekday, 0=Sunday). Each weekday entry carries up to three Quote
(price) windows and up to three Trade (order acceptance) windows
plus overnight flags. Closes the TODO documented in
MT4SymbolConfig: the parent CfgRequestSymbol endpoint
drops the nested Sessions array to keep the DTO manageable; this
dedicated endpoint exposes it.
Timeout: 10 s by default, adjustable per request with the X-Request-Timeout header. When the trade server does not answer in time: Nothing was changed; the request is safe to repeat.
Parameters
Name
In
Type
Required
Description
tradePlatform
path
string (uuid)
yes
Trade platform id (GUID)
symbol
path
string
yes
Symbol name (max 12 chars)
X-Request-Timeout
header
number (double)
no
How long to wait for the trade server, in seconds (1–300). Default for this operation: 10 s (read). The query parameter requestTimeout does the same for clients that cannot set headers. The applied value is returned in the X-Request-Timeout-Applied response header.
POST /api/v2/MT4/{tradePlatform}/CfgUpdateSymbol/{symbol}
Update a symbol's full configuration — Type 1 mutator with secret-preservation read.
Completes the User/Group/Symbol Type 1 mutator triad. Same flow as
UserRecordUpdate and GroupRecordUpdate: read the existing
ConSymbol from MT4 server, overlay the
MT4SymbolConfigUpdate DTO over it, write the merged structure
back. Preserves the Sessions nested array, reserved/unused
padding, and server-derived fields (Count, CountOriginal,
FilterCounter, Point, Multiply, tick-value pair)
— those are [MapperIgnoreTarget]'d on the mapper.
Idempotency-Key strongly recommended.
Timeout: 15 s by default, adjustable per request with the X-Request-Timeout header. When the trade server does not answer in time: The operation may still be completed by the server (X-Request-Outcome: unknown): check its result before repeating it.
Parameters
Name
In
Type
Required
Description
tradePlatform
path
string (uuid)
yes
Trade platform id (GUID)
symbol
path
string
yes
Symbol name (path parameter, max 12 chars, immutable identity)
X-Request-Timeout
header
number (double)
no
How long to wait for the trade server, in seconds (1–300). Default for this operation: 15 s (change). The query parameter requestTimeout does the same for clients that cannot set headers. The applied value is returned in the X-Request-Timeout-Applied response header.
Request body
MT4SymbolConfigUpdate (application/json) — Replacement fields. Omitted-from-DTO fields are preserved server-side.
Type 2 mutator — partial update of a symbol configuration. Same flow as UserRecordPatch; reads existing config live, overlays the patch, writes back.
Timeout: 15 s by default, adjustable per request with the X-Request-Timeout header. When the trade server does not answer in time: The operation may still be completed by the server (X-Request-Outcome: unknown): check its result before repeating it.
Parameters
Name
In
Type
Required
Description
tradePlatform
path
string (uuid)
yes
Trade platform id (GUID)
symbol
path
string
yes
Symbol name (immutable identity)
X-Request-Timeout
header
number (double)
no
How long to wait for the trade server, in seconds (1–300). Default for this operation: 15 s (change). The query parameter requestTimeout does the same for clients that cannot set headers. The applied value is returned in the X-Request-Timeout-Applied response header.
Request body
object (application/json, required) — JSON Merge Patch: an object with only the fields to change.
POST /api/v2/MT4/{tradePlatform}/SymbolAdd/{symbol}
Add a symbol to the platform's active set — Type 1 mutator.
Promotes a configured symbol into the platform's currently-pumping
set so it starts receiving ticks and accepting orders. Reversible via
SymbolHide.
v1 exposes this as GET /api/MT4/{tp}/SymbolAdd/{symbol} — that
is a historical REST violation (GET should be safe/idempotent). v2
corrects the verb to POST without changing the wrapper behaviour. The
path stays the same to keep traceability with the underlying wrapper
method name; only the HTTP verb changes.
Timeout: 15 s by default, adjustable per request with the X-Request-Timeout header. When the trade server does not answer in time: The operation may still be completed by the server (X-Request-Outcome: unknown): check its result before repeating it.
Parameters
Name
In
Type
Required
Description
tradePlatform
path
string (uuid)
yes
Trade platform id (GUID)
symbol
path
string
yes
Symbol name (max 12 chars)
X-Request-Timeout
header
number (double)
no
How long to wait for the trade server, in seconds (1–300). Default for this operation: 15 s (change). The query parameter requestTimeout does the same for clients that cannot set headers. The applied value is returned in the X-Request-Timeout-Applied response header.
curl -X POST "https://cloud.mywebapi.com/api/v2/MT4/$TRADE_PLATFORM_ID/SymbolAdd/$SYMBOL" \
-H "Authorization: Bearer $TOKEN"
Hide symbol
POST /api/v2/MT4/{tradePlatform}/SymbolHide/{symbol}
Hide a symbol from the platform's active set — Type 1 mutator.
Removes the symbol from the active subscription set; ticks stop flowing
and orders are no longer accepted for that symbol. Reversible via
SymbolAdd. v1 exposes this as a GET — v2 fixes to POST.
Timeout: 15 s by default, adjustable per request with the X-Request-Timeout header. When the trade server does not answer in time: The operation may still be completed by the server (X-Request-Outcome: unknown): check its result before repeating it.
Parameters
Name
In
Type
Required
Description
tradePlatform
path
string (uuid)
yes
Trade platform id (GUID)
symbol
path
string
yes
Symbol name (max 12 chars)
X-Request-Timeout
header
number (double)
no
How long to wait for the trade server, in seconds (1–300). Default for this operation: 15 s (change). The query parameter requestTimeout does the same for clients that cannot set headers. The applied value is returned in the X-Request-Timeout-Applied response header.
curl -X POST "https://cloud.mywebapi.com/api/v2/MT4/$TRADE_PLATFORM_ID/SymbolHide/$SYMBOL" \
-H "Authorization: Bearer $TOKEN"
Refresh symbol catalog
POST /api/v2/MT4/{tradePlatform}/SymbolsRefresh
Refresh the symbol catalog from MT4 server — Type 1 mutator (no body).
Forces the wrapper to reload its symbol catalog. Useful after admin
tooling has added/edited symbols on the MT4 server side. v1 exposes
this as GET — v2 fixes to POST (mutation of the wrapper's local state).
Timeout: 60 s by default, adjustable per request with the X-Request-Timeout header. When the trade server does not answer in time: The operation may still be completed by the server (X-Request-Outcome: unknown): check its result before repeating it.
Parameters
Name
In
Type
Required
Description
tradePlatform
path
string (uuid)
yes
Trade platform id (GUID)
X-Request-Timeout
header
number (double)
no
How long to wait for the trade server, in seconds (1–300). Default for this operation: 60 s (server maintenance). The query parameter requestTimeout does the same for clients that cannot set headers. The applied value is returned in the X-Request-Timeout-Applied response header.
curl -X POST "https://cloud.mywebapi.com/api/v2/MT4/$TRADE_PLATFORM_ID/SymbolsRefresh" \
-H "Authorization: Bearer $TOKEN"
Change symbol attributes
POST /api/v2/MT4/{tradePlatform}/SymbolChange
Adjusts the per-symbol trading attributes that dealers manage from the MT4 Manager UI — spread, stops-level, smoothing, quote color, execution mode.
Manager-live POST. Maps 1:1 to the wrapper's SymbolChange
call which marshals an entire SymbolProperties struct down
to the native server. Only the seven editable fields are exposed
on the v2 contract — the wrapper's 8-int reserved padding is
filled with zeros by Mapperly automatically.
This is intentionally separate from the heavier CfgUpdateSymbol
Type 1 mutator: SymbolChange is the dealer-tier adjustment
path; CfgUpdateSymbol changes structural symbol configuration
(currency, calc mode, margin, swap) that requires admin privileges
and broker-side coordination.
Timeout: 15 s by default, adjustable per request with the X-Request-Timeout header. When the trade server does not answer in time: The operation may still be completed by the server (X-Request-Outcome: unknown): check its result before repeating it.
Parameters
Name
In
Type
Required
Description
tradePlatform
path
string (uuid)
yes
Trade platform id (GUID)
X-Request-Timeout
header
number (double)
no
How long to wait for the trade server, in seconds (1–300). Default for this operation: 15 s (change). The query parameter requestTimeout does the same for clients that cannot set headers. The applied value is returned in the X-Request-Timeout-Applied response header.
Injects a synthetic tick into the MT4 server for the given symbol — used to keep the feed alive on instruments where the upstream datafeed is paused, or to drive simulator tooling.
Manager-live POST. The wrapper requires the manager account to hold
the Market Watch permission; without it the server typically
drops the connection rather than returning an error. The API-side
ResourceAccessAuthorize on this endpoint guards against API
callers without the appropriate platform-level permission, but
broker-side mis-configuration of the underlying manager rights
remains the consumer's responsibility.
bid and ask are absolute prices, not deltas. Pass
the symbol's last-known bid/ask if you only need to refresh the
timestamp; pass adjusted prices to actually move the quote.
Timeout: 15 s by default, adjustable per request with the X-Request-Timeout header. When the trade server does not answer in time: The operation may still be completed by the server (X-Request-Outcome: unknown): check its result before repeating it.
Parameters
Name
In
Type
Required
Description
tradePlatform
path
string (uuid)
yes
Trade platform id (GUID)
symbol
query
string
no
Symbol name (max 11 chars)
bid
query
number (double)
no
Bid price
ask
query
number (double)
no
Ask price
X-Request-Timeout
header
number (double)
no
How long to wait for the trade server, in seconds (1–300). Default for this operation: 15 s (change). The query parameter requestTimeout does the same for clients that cannot set headers. The applied value is returned in the X-Request-Timeout-Applied response header.
curl -X POST "https://cloud.mywebapi.com/api/v2/MT4/$TRADE_PLATFORM_ID/SymbolSendTick" \
-H "Authorization: Bearer $TOKEN"
Schemas
Types the operations above take and return, with their first-level properties; * marks a required one. The full graph is in the OpenAPI specification.
MT4SymbolInfoApiResponse
Unified v2 response envelope: data is the payload (null on error); error is the error object (null on success, always serialised); meta contains response metadata (activityId and optional paging). HTTP status is always 200.
v2 DTO describing a single symbol's market data and metadata as held in the wrapper's pumping cache. Curated subset of the wrapper's SymbolInfo: covers what clients monitoring tick feeds / building a quote panel actually need — current Bid/Ask, session High/Low, tick precision (Digits, Point), current Spread (in points), last-tick direction, and the last-tick timestamp. Internal bookkeeping (Count, UpdateFlag, Visible, SpreadBalance, Commission, CommType) is intentionally omitted: those are pump-side cache mechanics or broker-side commission config that don't belong on a real-time market-data wire.
v2 error body. Code is the stable transport error code; ManagerCode is the raw MT4 ResultCode (serialized as a string for a known enum member, or as a number for an unrecognised value returned by MT4); Message is a human-readable description.
Response metadata. ActivityId is the W3C trace-id for correlation in Seq/SigNoz. Paging is present only on paginated list responses; otherwise it is omitted — the global JSON context policy serialises null fields, so we override that here with System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull.
MT4SymbolInfoListApiResponse
Unified v2 response envelope: data is the payload (null on error); error is the error object (null on success, always serialised); meta contains response metadata (activityId and optional paging). HTTP status is always 200.
v2 error body. Code is the stable transport error code; ManagerCode is the raw MT4 ResultCode (serialized as a string for a known enum member, or as a number for an unrecognised value returned by MT4); Message is a human-readable description.
Response metadata. ActivityId is the W3C trace-id for correlation in Seq/SigNoz. Paging is present only on paginated list responses; otherwise it is omitted — the global JSON context policy serialises null fields, so we override that here with System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull.
MT4SymbolGroupListApiResponse
Unified v2 response envelope: data is the payload (null on error); error is the error object (null on success, always serialised); meta contains response metadata (activityId and optional paging). HTTP status is always 200.
v2 error body. Code is the stable transport error code; ManagerCode is the raw MT4 ResultCode (serialized as a string for a known enum member, or as a number for an unrecognised value returned by MT4); Message is a human-readable description.
Response metadata. ActivityId is the W3C trace-id for correlation in Seq/SigNoz. Paging is present only on paginated list responses; otherwise it is omitted — the global JSON context policy serialises null fields, so we override that here with System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull.
MT4SymbolConfigListApiResponse
Unified v2 response envelope: data is the payload (null on error); error is the error object (null on success, always serialised); meta contains response metadata (activityId and optional paging). HTTP status is always 200.
v2 error body. Code is the stable transport error code; ManagerCode is the raw MT4 ResultCode (serialized as a string for a known enum member, or as a number for an unrecognised value returned by MT4); Message is a human-readable description.
Response metadata. ActivityId is the W3C trace-id for correlation in Seq/SigNoz. Paging is present only on paginated list responses; otherwise it is omitted — the global JSON context policy serialises null fields, so we override that here with System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull.
MT4SymbolConfigApiResponse
Unified v2 response envelope: data is the payload (null on error); error is the error object (null on success, always serialised); meta contains response metadata (activityId and optional paging). HTTP status is always 200.
v2 DTO for a symbol's full server-side configuration. Curated from ConSymbol; drops reserved / unused arrays and the nested Sessions table (planned as its own endpoint). Seven wrapper enum fields (TradeMode, ProfitCalculationMode, SymbolExecMode, SwapType, GTCMode, MarginCalculationMode) are exposed as strings; see feedback-stj-enum-leaf-nested for why the conversion happens at the mapper.
v2 error body. Code is the stable transport error code; ManagerCode is the raw MT4 ResultCode (serialized as a string for a known enum member, or as a number for an unrecognised value returned by MT4); Message is a human-readable description.
Response metadata. ActivityId is the W3C trace-id for correlation in Seq/SigNoz. Paging is present only on paginated list responses; otherwise it is omitted — the global JSON context policy serialises null fields, so we override that here with System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull.
MT4SymbolDaySessionsListApiResponse
Unified v2 response envelope: data is the payload (null on error); error is the error object (null on success, always serialised); meta contains response metadata (activityId and optional paging). HTTP status is always 200.
v2 error body. Code is the stable transport error code; ManagerCode is the raw MT4 ResultCode (serialized as a string for a known enum member, or as a number for an unrecognised value returned by MT4); Message is a human-readable description.
Response metadata. ActivityId is the W3C trace-id for correlation in Seq/SigNoz. Paging is present only on paginated list responses; otherwise it is omitted — the global JSON context policy serialises null fields, so we override that here with System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull.
MT4SymbolConfigUpdate
Type 1 mutator input for CfgUpdateSymbol. Same field set as the read DTO CPlugin.SaaSWebApps.WebAPI.DTOs.MT4.v2.MT4SymbolConfig minus: * Symbol (path parameter, immutable identity); * Count, CountOriginal, FilterCounter — server-side counters, derived; * Stringified enum fields are submitted as their original wrapper enum types here (one-way deserialisation accepts JsonStringEnumConverter via the existing global STJ options). Fields preserved by the server-side read step (NOT on this DTO): * Symbol identity. * Sessions nested array (own endpoint planned). * Unused, ExternalUnused, ProfitReserved, FilterReserved reserved arrays. * Count, CountOriginal, FilterCounter, BidTickValue, AskTickValue, Point, Multiply — server-derived from other fields, writing them is a no-op or overwrite-with-stale.
Unified v2 response envelope: data is the payload (null on error); error is the error object (null on success, always serialised); meta contains response metadata (activityId and optional paging). HTTP status is always 200.
v2 error body. Code is the stable transport error code; ManagerCode is the raw MT4 ResultCode (serialized as a string for a known enum member, or as a number for an unrecognised value returned by MT4); Message is a human-readable description.
Response metadata. ActivityId is the W3C trace-id for correlation in Seq/SigNoz. Paging is present only on paginated list responses; otherwise it is omitted — the global JSON context policy serialises null fields, so we override that here with System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull.
MT4SymbolChangeRequest
POST body for the Manager-live SymbolChange endpoint. Maps 1:1 to the wrapper's SymbolProperties struct (the public properties, not the underscore-prefixed backing fields). The struct's 8-int Reserved padding is dropped from the v2 contract. Use cases: dealers and exchange operators adjusting per-symbol spread, stops level, smoothing, or quote-color metadata without touching the broader symbol configuration. Heavier write operations (currency, calc mode, margin, swap) live on the separate CfgUpdateSymbol Type 1 mutator.
Property
Type
Description
symbol
string, nullable
Symbol name (max 12 chars — wrapper's fixed slot)
color
integer (int32)
Quote display color (raw int; broker UI convention)
spread
integer (int32)
Spread (in points; 0 = market spread)
spreadBalance
integer (int32)
Spread imbalance offset (in points)
stopsLevel
integer (int32)
Minimum allowed stops distance from market (in points)
Order execution mode (Request/Instant/Market/Exchange)
MT4SymbolInfo
v2 DTO describing a single symbol's market data and metadata as held in the wrapper's pumping cache. Curated subset of the wrapper's SymbolInfo: covers what clients monitoring tick feeds / building a quote panel actually need — current Bid/Ask, session High/Low, tick precision (Digits, Point), current Spread (in points), last-tick direction, and the last-tick timestamp. Internal bookkeeping (Count, UpdateFlag, Visible, SpreadBalance, Commission, CommType) is intentionally omitted: those are pump-side cache mechanics or broker-side commission config that don't belong on a real-time market-data wire.
Property
Type
Description
symbol
string, nullable
Symbol name (e.g. "EURUSD")
digits
integer (int32)
Number of digits after decimal point for prices on this symbol
type
integer (int32)
Security group index this symbol belongs to (refers to ConGroupSec)
point
number (double)
Point size (e.g. 0.00001 for 5-digit FX); price increment per point
spread
integer (int32)
Current spread, in points
direction
SymbolPriceDirection
Direction of the last tick (Up/Down/Flat) — useful for UI flash highlights
bid
number (double)
Current bid price
ask
number (double)
Current ask price
high
number (double)
Session high price
low
number (double)
Session low price
lastTime
string (date-time), nullable
Timestamp of the last tick; null when the pump has not yet observed a tick for this symbol since connect.
ApiError
v2 error body. Code is the stable transport error code; ManagerCode is the raw MT4 ResultCode (serialized as a string for a known enum member, or as a number for an unrecognised value returned by MT4); Message is a human-readable description.
Property
Type
Description
code
WebApiErrorCode
Stable transport-level error code.
managerCode
ResultCode
Raw MT4/MT5 manager result code, when the error came from the trading platform; otherwise null.
message
string, nullable
Human-readable error description.
ApiMeta
Response metadata. ActivityId is the W3C trace-id for correlation in Seq/SigNoz. Paging is present only on paginated list responses; otherwise it is omitted — the global JSON context policy serialises null fields, so we override that here with System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull.
Property
Type
Description
activityId
string, nullable
W3C trace id for correlating this response in logs and tracing (Seq/SigNoz).
paging
PagingMeta
Pagination info; present only on list responses, omitted otherwise.
MT4SymbolGroup
v2 DTO describing a single MT4 symbol group (security category). Mirrors the wrapper's ConSymbolGroup — which only carries Name and Description as fixed-size ANSI fields. There is no ProfitCurrency on the MT4-side group struct (that lives on per-symbol settings, not on the group level), so the DTO faithfully exposes only what exists.
Property
Type
Description
name
string, nullable
Group name (e.g. "Forex", "CFD", "Metals")
description
string, nullable
Human-readable description of the group
MT4SymbolConfig
v2 DTO for a symbol's full server-side configuration. Curated from ConSymbol; drops reserved / unused arrays and the nested Sessions table (planned as its own endpoint). Seven wrapper enum fields (TradeMode, ProfitCalculationMode, SymbolExecMode, SwapType, GTCMode, MarginCalculationMode) are exposed as strings; see feedback-stj-enum-leaf-nested for why the conversion happens at the mapper.
Property
Type
Description
symbol
string, nullable
Symbol name (max 12 chars)
description
string, nullable
Human-readable description
source
string, nullable
Data feed source identifier
currency
string, nullable
Quote currency code
type
integer (int32)
Symbol type identifier
digits
integer (int32)
Number of decimal digits in the quote
tradeMode
string, nullable
Trading mode (Disabled / CloseOnly / Full)
backgroundColor
integer (int32)
Background colour for terminal client (BGR int)
count
integer (int32)
Tick counter for the symbol (computed)
countOriginal
integer (int32)
Original tick counter (computed)
realtime
integer (int32)
0 = synthetic, non-zero = real-time feed
starting
string (date-time)
Symbol activation date (UTC)
expiration
string (date-time)
Symbol expiration date (UTC)
profitCalculationMode
string, nullable
Profit calculation mode (Forex / CFD / Futures)
filter
integer (int32)
Tick filter type
filterCounter
integer (int32)
Tick filter counter (computed)
filterLimit
number (double)
Tick filter price-change limit
filterSmoothing
integer (int32)
Tick filter smoothing factor
logging
integer (int32)
0 = no logging, non-zero = log price changes
spread
integer (int32)
Spread in points (0 = floating)
spreadBalance
integer (int32)
Spread balance correction
symbolExecMode
string, nullable
Symbol execution mode
swapEnable
integer (int32)
0 = swaps disabled, non-zero = enabled
swapType
string, nullable
Swap type (Points / SymbolBase / SymbolMargin / CurrencyMargin)
swapLong
number (double)
Swap value for long positions
swapShort
number (double)
Swap value for short positions
swapRollover3Days
integer (int32)
Day of week (1-7) when 3-day rollover applies
contractSize
number (double)
Contract size
tickValue
number (double)
Tick value in deposit currency
tickSize
number (double)
Tick size
stopsLevel
integer (int32)
Minimum distance to current price for SL/TP (points)