đ
OHLCV Response Fields
All candle objects from /price, /history, /candle, and WebSocket frames share the same JSON shape.
| Field | Type | REST | WS | Description |
|---|---|---|---|---|
SymbolCode | string | â | â | Market symbol identifier, e.g. XAUUSD. |
OpenPrice | number | â | â | Price at the start of the candle period. |
ClosePrice | number | â | â | Price at the end of the candle period. |
HighPrice | number | â | â | Highest traded price within the candle. |
LowPrice | number | â | â | Lowest traded price within the candle. |
Bid | number | â | â | Best bid price at candle close. |
Ask | number | â | â | Best ask price at candle close. |
Volume | number | â | â | Traded volume during the candle period. |
OpenTime | ISO 8601 | â | â | UTC timestamp marking the candle open. |
Paginated endpoints (/history, /candle) additionally return:
| Field | Type | Description |
|---|---|---|
Data | array | Ordered list of candle objects. |
TotalCount | integer | Total number of candles available. |
CurrentPage | integer | Current page number (1-based). /history only. |
TotalPages | integer | Total pages at current pageSize. /history only. |
PageSize | integer | Number of candles on this page. /history only. |
HTTP Error Codes
All errors return a JSON body with a consistent StatusCode, Message, and an Errors[] array with per-field detail.
| Code | Status | When it happens |
|---|---|---|
400 | Bad Request | Missing or invalid query parameters. |
401 | Unauthorized | API key missing or malformed. |
403 | Forbidden | API key does not have access to this symbol or endpoint. |
404 | Not Found | Requested data does not exist. |
429 | Too Many Requests | Rate limit exceeded for your plan. |
500 | Internal Server Error | Unexpected server error â please retry. |
Error response shape
error.json
{ "StatusCode": 400, "Message": "Validation failed for query parameters.", "Errors": [ { "PropertyName": "timeFrame", "ErrorCode": "ERR_0007_INVALID_TIME_FRAME", "ErrorMessage": "timeFrame must be one of M1, M5, M15, H1, H4, D1" }, { "PropertyName": "symbolCode", "ErrorCode": "ERR_0008_SYMBOL_NOT_SUPPORTED", "ErrorMessage": "symbolCode BTCUSDT is not supported" } ], "TraceId": "00-7a8ab3af4fce34f3872a28ec7ca8f5e1-886d2e1bc76dc9a4-00" }
đĄ
Recommended error-handling pattern: Check
StatusCode, then iterate Errors[] and key on ErrorCode (a stable string identifier) rather than ErrorMessage (human text that may change). Use TraceId when reporting issues to support.Exception Codes
Each error in the Errors[] array contains a structured ErrorCode string. Use these for programmatic error branching.
| HTTP | Error Code | Description |
|---|---|---|
404 | ERR_0001_DATA_NOT_FOUND | No candle data found for the requested symbol and timeframe. The market may be closed or data is unavailable for the given period. |
401 | ERR_0005_INVALID_API_KEY | The provided API key is missing, malformed, revoked, or does not match any active key. |
400 | ERR_0006_INVALID_TIME_RANGE | startTime or endTime is missing, in wrong format, out of chronological order, or exceeds the maximum allowed range for your plan. |
400 | ERR_0007_INVALID_TIME_FRAME | timeFrame is not one of the supported values: M1, M5, M15, H1, H4, D1. |
403 | ERR_0008_SYMBOL_NOT_SUPPORTED | The symbolCode is not supported on your plan or does not exist. |
403 | ERR_0009_NOT_SUPPORT_WEBSOCKET | Your plan does not include WebSocket access. Upgrade to Pro or Business. |
403 | ERR_0010_NOT_SUPPORT_HISTORICAL | Your plan does not include historical data. Upgrade your plan to query historical candles. |
403 | ERR_0012_EMAIL_NOT_VERIFIED | Your email has not been verified. Verify from the dashboard before making API requests. |