Last updated: December 4, 2025, 11:11 AM WIB
Hi Tokonauts,
To enhance the trading experience for all users, Tokocrypto will migrate from the current NextMe engine to the MBX engine.
Why We Are Migrating?
Enhanced performance and system stability
More precise and reliable order matching
Improved liquidity and overall trading activity
This supplementary document serves as a technical guideline to help API users update their integrations. It provides a comparison of response body structures between MBX and NextMe across multiple endpoints, highlighting differences such as missing or newly added fields, as well as structural or data-type changes.
During each migration batch, here’s what will happen (only for the assets included in that batch):
- The affected trading pairs will be temporarily unavailable for spot trading and recurring buy (DCA).
- Any open orders for those pairs will be cancelled.
- Recurring Buy (DCA) will be paused.
Deposits and withdrawals will continue to operate as usual.
For complete and detailed API specifications, please refer to our main documentation:
https://www.tokocrypto.com/apidocs/
Key Highlights
The migration will occur in three batches.
The first batch is scheduled for Thursday, 27 November 2025, at 16:00 (UTC+7).- The “market data” base URL will change.
- There are no changes to the “account” and “wallet” endpoints. It remains the same https://www.tokocrypto.com.
- Users are required to test and compare the responses from NextMe and MBX, and make any necessary adjustments to their application logic.
- For all assets migrated to MBX (symbolType = 1), a new listenKey must be created before you can use the WSS.
- Create: POST /open/v1/user-data-stream
- Keepalive: PUT /open/v1/user-data-stream (recommended every ~30 mins)
- Close: DELETE /open/v1/user-data-stream
- Tokocrypto will not be responsible for any losses or errors arising from this migration.
Base URLs
| No. | URL/ Websocket | Match Engine |
1 |
https://www.tokocrypto.site/api/v3 | MBX (Type 1) |
2 |
https://cloudme-toko.2meta.app/api/v1 | NextMe (Type 3) |
3 |
wss://stream-cloud.tokocrypto.site/stream | MBX (Type 1) |
4 |
wss://stream-toko.2meta.app | NextMe (Type 3) |
5 |
https://www.tokocrypto.com | Accounts and Wallet endpoints stay the same. Type 1 and Type 3 use the same endpoint. |
Endpoint Details
Endpoint: Get all Supported Trading Symbol
Endpoint: /symbols
Method: GET
Example:
https://www.tokocrypto.com/open/v1/common/symbols
| NEXTME (SOLIDR) |
|
{ "type": 3, //3: NextMe, 1:MBX "symbol": "SOL_IDR", "baseAsset": "SOL", "basePrecision": 8, "quoteAsset": "IDR", "quotePrecision": 2, "filters": [ { "filterType": "PRICE_FILTER", "minPrice": "1", "maxPrice": "9999998955", "tickSize": "1", "applyToMarket": false }, { "filterType": "LOT_SIZE", "minQty": "0.00010000", "maxQty": "9223372", "stepSize": "0.00010000", "applyToMarket": false }, { "filterType": "MARKET_LOT_SIZE", "minQty": "0.00010000", "maxQty": "200", "stepSize": "0.00010000", "applyToMarket": false } ] ]
|
Endpoint: Order Book
Endpoint: /depth
Method: GET
Example:
NextMe: https://cloudme-toko.2meta.app/api/v1/depth?symbol=BTCIDR
MBX: https://www.tokocrypto.site/api/v3/depth?symbol=BTCUSDT
Example Responses
| MBX (BTCUSDT) | NEXTME (BTCIDR) |
|
{ "lastUpdateId": 80218903478, "bids": [ [ "106461.17000000", "4.62403000" ], [ "106461.16000000", "0.00064000" ], [ "106461.15000000", "0.05026000" ], [ "106461.11000000", "0.00010000" ], [ "106461.10000000", "0.05029000" ] ], "asks": [ [ "106461.18000000", "3.41331000" ], [ "106461.19000000", "0.04752000" ], [ "106461.26000000", "0.00010000" ], [ "106461.46000000", "0.00006000" ], [ "106461.48000000", "0.00010000" ] ] } |
{ "lastUpdateId": 1885361900, "E": 1762758825812, "T": 1762758825807, "symbol": "BTCIDR", "bids": [ [ "1776373157.00", "0.18731000" ], [ "1776373156.00", "0.08662000" ], [ "1776188908.00", "0.00200000" ], [ "1773494803.00", "0.00014000" ], [ "1773000000.00", "0.00493000" ] ], "asks": [ [ "1777777777.00", "0.00241000" ], [ "1777999997.00", "0.00011000" ], [ "1778811504.00", "0.65556000" ], [ "1778999999.00", "0.17010000" ], [ "1779000000.00", "0.05621000" ] ] } |
Endpoint: Recent Trade List
Endpoint: /trades
Method: GET
Example:
https://www.tokocrypto.site/api/v3/trades?symbol=BTCUSDT
Example Responses
| MBX (BTCUSDT) |
|
[ { "id": 5462365119, "price": "106394.22000000", "qty": "0.00111000", "quoteQty": "118.09758420", "time": 1762759153015, "isBuyerMaker": false, "isBestMatch": true }, { "id": 5462365120, "price": "106394.22000000", "qty": "0.03553000", "quoteQty": "3780.18663660", "time": 1762759153015, "isBuyerMaker": false, "isBestMatch": true }, { "id": 5462365121, "price": "106394.21000000", "qty": "0.00090000", "quoteQty": "95.75478900", "time": 1762759153076, "isBuyerMaker": true, "isBestMatch": true }, { "id": 5462365122, "price": "106394.21000000", "qty": "0.00014000", "quoteQty": "14.89518940", "time": 1762759153331, "isBuyerMaker": true, "isBestMatch": true }, { "id": 5462365123, "price": "106394.21000000", "qty": "0.00029000", "quoteQty": "30.85432090", "time": 1762759153853, "isBuyerMaker": true, "isBestMatch": true } ] |
Endpoint: Compressed/Aggregated Trade List
Endpoint: /aggTrades
Method: GET
Example:
NextMe: https://cloudme-toko.2meta.app/api/v1/aggTrades?symbol=BTCIDR
MBX: https://www.tokocrypto.site/api/v3/aggTrades?symbol=BTCUSDT
Example Responses
| MBX (BTCUSDT) | NEXTME (BTCIDR) |
|
[ { "a": 3737056399, "p": "106416.93000000", "q": "0.00123000", "f": 5462411088, "l": 5462411088, "T": 1762760543542, "m": true, //Was the buyer the maker? "M": true // Was the trade the best price match? }, { "a": 3737056400, "p": "106416.93000000", "q": "0.00261000", "f": 5462411089, "l": 5462411089, "T": 1762760543567, "m": true, "M": true }, { "a": 3737056401, "p": "106416.94000000", "q": "0.00441000", "f": 5462411090, "l": 5462411090, "T": 1762760544168, "m": false, "M": true }, { "a": 3737056402, "p": "106416.94000000", "q": "0.00145000", "f": 5462411091, "l": 5462411091, "T": 1762760544341, "m": false, "M": true }, { "a": 3737056403, "p": "106416.94000000", "q": "0.00017000", "f": 5462411092, "l": 5462411092, "T": 1762760544832, "m": false, "M": true } ] |
[ { "a": 2653015, "p": "1776136703.00", "q": "0.00027000", "f": 3085463, "l": 3085463, "T": 1762760540561, "m": false }, { "a": 2653016, "p": "1776684070.00", "q": "0.00006000", "f": 3085464, "l": 3085464, "T": 1762760540561, "m": false }, { "a": 2653017, "p": "1777286362.00", "q": "0.00047000", "f": 3085465, "l": 3085465, "T": 1762760540561, "m": false }, { "a": 2653018, "p": "1777286362.00", "q": "0.00047000", "f": 3085466, "l": 3085466, "T": 1762760562008, "m": false }, { "a": 2653019, "p": "1777286362.00", "q": "0.00006000", "f": 3085467, "l": 3085467, "T": 1762760590093, "m": false } ]
|
Endpoint: Kline/Candlestick Data
Endpoint: /klines
Method: GET
Example:
NextMe: https://cloudme-toko.2meta.app/api/v1/klines?symbol=BTCIDR&interval=1m
MBX: https://www.tokocrypto.site/api/v3/klines?symbol=BTCUSDT&interval=1m
Example Responses
| MBX (BTCUSDT) | NEXTME (BTCIDR) |
|
[ [ 1762760700000, "106334.02000000", "106424.96000000", "106329.00000000", "106424.94000000", "25.52992000", 1762760759999, "2715387.72495570", 3367, "15.54146000", "1652887.89864880", "0" ], [ 1762760760000, "106424.94000000", "106447.51000000", "106366.93000000", "106366.94000000", "18.93775000", 1762760819999, "2015338.83247640", 3149, "8.63737000", "919292.19380850", "0" ], [ 1762760820000, "106366.93000000", "106396.13000000", "106357.83000000", "106384.70000000", "14.44303000", 1762760879999, "1536402.23658500", 1440, "4.74528000", "504774.37476350", "0" ], [ 1762760880000, "106384.71000000", "106405.87000000", "106371.15000000", "106371.16000000", "20.88373000", 1762760939999, "2221934.17306780", 1285, "8.06078000", "857626.95416910", "0" ], [ 1762760940000, "106371.15000000", "106408.26000000", "106371.15000000", "106408.25000000", "3.58776000", 1762760999999, "381685.82820900", 599, "1.83446000", "195155.29411200", "0" ] ] |
[ [ 1762760580000, "1777286362.00", "1777286362.00", "1777286362.00", "1777286362.00", "0.00006000", 1762760639999, "106637.18", 1, "0.00006000", "106637.18", "0" ], [ 1762760640000, "1777286361.00", "1777286361.00", "1777286361.00", "1777286361.00", "0.00055000", 1762760699999, "977507.49", 1, "0.00055000", "977507.49", "0" ], [ 1762760700000, "1777286361.00", "1777286361.00", "1773000007.00", "1773000007.00", "0.00022000", 1762760759999, "390188.58", 3, "0.00003000", "53318.58", "0" ], [ 1762760760000, "1777999997.00", "1777999997.00", "1777206485.00", "1777206485.00", "0.00033000", 1762760819999, "586517.80", 2, "0.00033000", "586517.80", "0" ], [ 1762760820000, "1777206485.00", "1777206485.00", "1777206485.00", "1777206485.00", "0.00000000", 1762760879999, "0.00", 0, "0.00000000", "0.00", "0" ] ] |
Endpoint: New Order
Endpoint: /open/v1/orders
Method: POST
Example:
https://www.tokocrypto.com/open/v1/orders
Parameters
| Name | Type | Mandatory | Description | Example Value |
| symbol | STRING | YES | Trading pair symbol. | "BTC_USDT" |
| side | ENUM | YES | 0 = BUY, 1 = SELL | 1 (SELL) |
| type | ENUM | YES | Order type: 1 = LIMIT 2 = MARKET 3 = STOP_LOSS 4 = STOP_LOSS_LIMIT 5 = TAKE_PROFIT 6 = TAKE_PROFIT_LIMIT 7 = LIMIT_MAKER |
1 (LIMIT) |
| timeInForce | ENUM | NO | Order validity: 1 = GTC (Good Till Cancel) 2 = IOC (Immediate or Cancel) 3 = FOK (Fill or Kill) 4 = GTX (Good Till Crossing) |
1 (GTC) |
| quantity | STRING | NO | Quantity of the base asset to buy/sell. | "0.005" |
| quoteOrderQty | STRING | NO | Amount of quote asset to spend (for MARKET BUY). | "100" |
| price | STRING | NO | Price per unit of base asset. | "65000" |
| clientId | STRING | NO | Custom client order ID. Automatically generated if omitted. | "order-12345" |
| stopPrice | STRING | NO | Trigger price for STOP/TAKE_PROFIT orders. | "60000" |
| icebergQty | STRING | NO | Quantity of iceberg order visible to the market. | "0.002" |
| selfTradePreventionMode | ENUM | NO | Controls how self-trade prevention is applied: 0 = EXPIRE_MAKER 1 = EXPIRE_TAKER 2 = EXPIRE_BOTH 3 = NONE |
0 (EXPIRE_MAKER) |
| recvWindow | LONG | NO | Request validity window (max 60000 ms). | 5000 |
| timestamp | LONG | YES | Current timestamp in milliseconds. | 1731312000000 |
Example Request & Response
| Price, Quantity | |
| Request | Response |
|
params: { symbol: 'PEPE_USDT', side: 0, type: 1, price: '0.00000621', quantity: '171000', recvWindow: 5000, timestamp: 1762845295137, signature: '597223bb0e05b752b2d614086a292e91ca92bc99c10b17c66364a36d1cfef944' }
|
{ code: 0, msg: 'Success', data: { orderId: 672260226, clientId: '757609544613622656', symbol: 'PEPE_USDT', symbolType: 1, side: 0, type: 1, price: '0.00000621', origQty: '171000', origQuoteQty: '1.06191', executedQty: '171000.00', executedPrice: '0.00000606', executedQuoteQty: '1.03626000', timeInForce: 1, stopPrice: '0', icebergQty: '0', status: 2, isWorking: 1, createTime: 1762845295577, engineHeaders: { 'x-mbx-order-count-10s': [Array], 'x-mbx-order-count-1d': [Array] }, borderListId: 0, borderId: '5070925807' }, timestamp: 1762845295689 } |
| Price, QuoteOrderQty | |
| Request | Response |
|
params: { symbol: 'PEPE_USDT', side: 0, type: 2, quoteOrderQty: '10', recvWindow: 5000, timestamp: 1762845295705, signature: 'c6122432ac7c87a2bdf74762fcd7558e1d787cd0dbc8c49e36f9e1c8c5918019' } |
{ code: 0, msg: 'Success', data: { orderId: 672260229, clientId: '757609546064875264', symbol: 'PEPE_USDT', symbolType: 1, side: 0, type: 2, price: '0', origQty: '0', origQuoteQty: '10', executedQty: '1650165.00', executedPrice: '0.00000606', executedQuoteQty: '9.99999990', timeInForce: 1, stopPrice: '0', icebergQty: '0', status: 2, isWorking: 1, createTime: 1762845295744, engineHeaders: { 'x-mbx-order-count-10s': [Array], 'x-mbx-order-count-1d': [Array] }, borderListId: 0, borderId: '5070925808' }, timestamp: 1762845295855 } |
| Quantity, Price, Stop Price | |
| Request | Response |
|
params: { symbol: 'PEPE_USDT', side: 1, type: 6, quantity: '171000', price: '0.00000680', stopPrice: '0.00000690', recvWindow: 5000, timestamp: 1762845296083, signature: '1af4adad4226fd69553f16e8f80e2bf2277a14a5eea80c6440309a7582cf2692' } |
{ code: 0, msg: 'Success', data: { orderId: 672260236, clientId: '757609549227380480', symbol: 'PEPE_USDT', symbolType: 1, side: 1, type: 6, price: '0.0000068', origQty: '171000', origQuoteQty: '1.1628', executedQty: '0.00', executedPrice: '0', executedQuoteQty: '0.00000000', timeInForce: 1, stopPrice: '0.0000069', icebergQty: '0', status: 0, isWorking: 0, createTime: 1762845296122, engineHeaders: { 'x-mbx-order-count-10s': [Array], 'x-mbx-order-count-1d': [Array] }, borderListId: 0, borderId: '5070925811' }, timestamp: 1762845296230 } |
Websocket Details
Listen Key Rules
- A User Data Stream listenKey is valid for 60 minutes after creation.
- PUT on a listenKey → extends validity by another 60 minutes.
- DELETE on a listenKey → closes the stream.
- A single WebSocket connection is only valid for 24 hours → expect disconnection automatically.
- During high load, payload order is not guaranteed → always order updates using E (event time).
Create a Listen Key
| POST /open/v1/user-data-stream |
Start a new user data stream. The stream will close after 60 minutes unless a keepalive is sent.
Weight: 1
Parameters: NONE
Response:
|
{ "code": 0, "data": "pqia91ma19a5s61cv6a81va65sdf19v8a65a1a5s61cv6a81va65sdf19v8a65a1" } |
Ping/Keep alive a Listen Key
| PUT /open/v1/user-data-stream |
Keepalive a user data stream to prevent a time out. User data streams will close after 60 minutes. It's recommended to send a ping about every 30 minutes.
Weight: 1
Parameters:
| Name | Type | Mandatory | Description |
| listenKey | STRING | YES |
Close a Listen Key
| DELETE /open/v1/user-data-stream |
Close out a user data stream.
Parameters:
| Name | Type | Mandatory | Description |
| listenKey | STRING | YES |
Websocket: Order Book
Stream Name: \<symbol>@depth
Example Request:
|
{ "method": "SUBSCRIBE", "params": [ "btcidr@depth" ], "id": 1 } |
Example Responses
| MBX (BTCUSDT) | NextMe (BTCIDR) |
|
{ "stream": "btcusdt@depth", "data": { "e": "depthUpdate", "E": 1762841030014, "s": "BTCUSDT", "U": 80292796464, "u": 80292796590, "b": [ [ "103808.89000000", "0.00000000" ], [ "102947.36000000", "0.23758000" ], [ "102105.26000000", "0.24036000" ], [ "101263.15000000", "0.24141000" ], [ "100421.05000000", "0.24345000" ], [ "94778.00000000", "0.00000000" ], [ "94777.00000000", "0.01911000" ], [ "84247.12000000", "0.00023000" ], [ "42000.00000000", "1.27594000" ] ], "a": [ [ "105308.90000000", "5.28801000" ], [ "105312.84000000", "0.00045000" ], [ "105315.00000000", "0.01528000" ], [ "105321.10000000", "0.00000000" ], [ "105322.87000000", "0.07117000" ], [ "105330.55000000", "0.04749000" ], [ "105334.82000000", "0.00000000" ], [ "105334.84000000", "0.00000000" ], [ "105340.50000000", "0.00000000" ], [ "105351.03000000", "0.17806000" ] ] } } |
{ "stream": "btcidr@depth", "data": { "e": "depthUpdate", "E": 1762841587291, "T": 1762841587238, "s": "BTCIDR", "U": 1892591707, "u": 1892591760, "pu": 1892591156, "b": [ [ "1756028197.00", "0.00000000" ], [ "1756028199.00", "0.18318000" ] ], "a": [ [ "1758450180.00", "0.17915000" ], [ "1758799971.00", "0.00000000" ] ] } } |
Websocket: Kline/Candlestick Data
Stream Name: \<symbol>@kline_\<interval>
Example Request:
|
{ "method": "SUBSCRIBE", "params": [ "btcidr@kline_1m" ], "id": 1 } |
Example Responses
| MBX (BTCUSDT) | NextMe (BTCIDR) |
|
{ "stream": "btcusdt@kline_1m", "data": { "e": "kline", "E": 1762841030018, "s": "BTCUSDT", "k": { "t": 1762840980000, "T": 1762841039999, "s": "BTCUSDT", "i": "1m", "f": 5467093479, "L": 5467095738, "o": "105300.00000000", "c": "105308.89000000", "h": "105317.04000000", "l": "105280.41000000", "v": "11.14837000", "n": 2260, "x": false, "q": "1173906.55446190", "V": "6.91714000", "Q": "728342.02418200", "B": "0" } } } |
{ "stream": "btcidr@kline_1m", "data": { "e": "kline", "E": 1762841582001, "s": "BTCIDR", "k": { "t": 1762841520000, "T": 1762841579999, "s": "BTCIDR", "i": "1m", "f": -1, "L": -1, "o": "1758283826.00", "c": "1758283826.00", "h": "1758283826.00", "l": "1758283826.00", "v": "0.00000000", "n": 0, "x": true, "q": "0.00", "V": "0.00000000", "Q": "0.00", "B": "0" } } }
|
Websocket: Mini Ticker
Stream Name: \<symbol>@miniTicker
Example Request:
|
{ "method": "SUBSCRIBE", "params": [ "btcidr@miniTicker" ], "id": 1 } |
Example Responses
| MBX (BTCUSDT) | NextMe (BTCIDR) |
|
{ "stream": "btcusdt@miniTicker", "data": { "e": "24hrMiniTicker", "E": 1762841030028, "s": "BTCUSDT", "c": "105308.89000000", "o": "106187.24000000", "h": "107500.00000000", "l": "104667.00000000", "v": "21252.59465000", "q": "2251018995.92512420" } } |
{ "stream": "btcidr@miniTicker", "data": { "e": "24hrMiniTicker", "E": 1762843004742, "s": "BTCIDR", "c": "1759957037.00", "o": "1772275891.00", "h": "1798000000.00", "l": "1752060616.00", "v": "6.45230000", "q": "11467085461.31051000" } }
|
Websocket: Trade
Stream Name: \<symbol>@trade
Example Request:
|
{ "method": "SUBSCRIBE", "params": [ "btcidr@trade" ], "id": 1 } |
Example Responses
| MBX (BTCUSDT) |
|
{ "stream": "btcusdt@trade", "data": { "e": "trade", "E": 1762841030416, "s": "BTCUSDT", "t": 5467095739, "p": "105308.89000000", "q": "0.00070000", "T": 1762841030416, "m": true, "M": true } }
|
Websocket: Aggregate Trade
Stream Name: \<symbol>@aggTrade
Example Request:
|
{ "method": "SUBSCRIBE", "params": [ "btcidr@aggTrade" ], "id": 1 } |
Example Responses
| MBX (BTCUSDT) | NextMe (BTCIDR) |
|
{ "stream": "btcusdt@aggTrade", "data": { "e": "aggTrade", "E": 1762841030416, "s": "BTCUSDT", "a": 3738193040, "p": "105308.89000000", "q": "0.00070000", "f": 5467095739, "l": 5467095739, "T": 1762841030416, "m": true, "M": true } } |
{ "stream": "btcidr@aggTrade", "data": { "e": "aggTrade", "E": 1762843004893, "a": 2656302, "s": "BTCIDR", "p": "1759957037.00", "q": "0.00009000", "f": 3089357, "l": 3089357, "T": 1762843004731, "m": false } }
|
Tokocrypto is always committed to continuing to improve services to suit your needs and expectations. Thank you for understanding.
Warm regards,
Tokocrypto Team
Stay tuned for more information on all official Tokocrypto channels:
Telegram: Official Channel Tokocrypto | Official Group Tokocrypto
Twitter: Twitter Tokocrypto
Facebook: Official Facebook Tokocrypto
Instagram: Instagram Tokocrypto
YouTube: Youtube Tokocrypto
LinkedIn: LinkedIn Tokocrypto