Introduction
API Key Setup
- Some endpoints will require an API Key. Please refer to this page regarding API key creation.
- Once API key is created, it is recommended to set IP restrictions on the key for security reasons.
- Never share your API key/secret key to ANYONE.
API Key Restrictions
Check the required permissions when creating an API Key
API Library
We provide developers with SDKs in five languages: Python, DotNET, Java, Javascript, and Go, and provide users with methods to call APIs directly through the SDK. Currently supports all interfaces in spot.
https://github.com/mexcdevelop/mexc-api-sdk
Postman Collections
There is now a Postman collection containing the API endpoints for quick and easy use.
This is recommended for new users who want to get a quick-start into using the API.
For more information please refer to this page: MEXC API Postman
MEXC Broker Introduction
MEXC is committed to building crypto infrastructure, with API broker partners that provide valuable services being an essential part of the MEXC ecosystem. To reward the partners, MEXC now provides privileges for MEXC brokers, including trading rebates and marketing support.
Broker Modes Supported by MEXC
1. API Broker
This includes copy trade platforms, trading bots, quantitative strategy platforms, or other asset management platforms with more than 500 people, etc. Users can authorize the API key to the API broker, and the API broker will send the trading orders containing the broker ID on behalf of the user and receive profit shares from fees.
2. Independent Broker
This includes wallet platforms, market data platforms, aggregation trading platforms, stockbrokers, as well as stock and securities trading platforms, etc., all of which have their own independent users. MEXC can provide order matching systems, account management systems, settlement systems, as well as main and sub-account systems, etc. Independent brokers can share the trading fluidity and depth over the MEXC platform and receive profit shares from fees.
To apply for a partnership, please contact: institution@mexc.com
Contact us
- MEXC API Telegram Group MEXC API Support Group
- For any general questions about the API not covered in the documentation.
- For any MM questions
- MEXC Customer Support website.app online customer server
- For cases such as missing funds, help with 2FA, etc.
Change Log
2025-02-24
- Update Protocol Buffers websocket channels
2024-10-17
- Add Query Kyc status endpoint
2024-08-16
- Exchange Information endpoint update params:status and tradeSideType.
2024-06-09
- Query The Currency Information endpoint add params:netWork,network will offline soon.
- Add new withdraw endpoint,previous withdraw endpoint will offline soon.
2024-05-15
- Add query commission endpoint
2024-04-08
- Update response params of Get Withdraw History endpoint
2024-01-12
- Add query sub-account asset endpoint
2024-01-01
- Kline support interval: week
- Deposit and withdraw history endpoint update the query timestamp range
2023-12-11
- Query Sub-account List endpoint add response params:uid
2023-11-10
- Add user internal transfer endpoint and query internal transfer history endpoint.
- Add ws miniTicker and miniTickers channels.
2023-10-17
- Add Get Affiliate Referral Data endpoint and Get Subaffiliates Data endpoint
2023-09-27
- Add Get Affiliate Withdraw Record endpoint and Get Affiliate Commission Detail Record endpoint
2023-08-15
- Add Get Affiliate Commission Record endpoint
2023-06-13
- Add query all listenKey endpoint
2023-05-21
- Add Download Historical Market Data
2023-03-16
Add:Query User Universal Transfer History (by tranId) endpoint
ws spot@private.deals.v3.api channel add params:"commission","commissionAsset"and"deals amount"
2023-03-12
- Add:API default symbol,User API default symbol,cancel withdraw,Deposit Address endpoints.
2023-03-07
- ws add channel:Account Update
2023-02-13
- Add:Get Assets That Can Be Converted Into MX,Dust Transfer,Dust Log endpoints
2023-02-07
- ws add channel:Individual Symbol Book Ticker Streams
2023-01-06
2022-12-29
- ETF remove some response params:
Name | type | Description |
---|---|---|
preBasket | string | preBasket |
preLeverage | string | preLeverage |
2022-12-28
- websocket add Partial Book Depth Streams
2022-12-13
- Add params: avgPrice,cumulativeQuantity,cumulativeAmount for
spot@private.orders.v3.api
channel - Add Query ReferCode Endpoint
2022-11-24
- Add MEXC Broker Introduction
- Add "Enable MX Deduct" and "Query MX Deduct Status" Endpoints
2022-10-14
- Update Endpoints Wallet Endpoints:
1.Withdraw: When do a withdraw, address
and memo
should be passed separate (The previous version the memo is joined with a ":" after address).
2.Withdraw History: Parameters address
and memo
should be returned separate (The previous version the memo is joined with a ":" after address).
3.Deposit Address: The return parameter tag
is changed to memo
, and the memo required for deposite is returned in the memo
parameter.
4.Deposit History: The return parameter addressTag
is changed to memo
, and the memo required for deposite is returned in the memo
parameter.
5.Add Generate deposit address
6.Query the currency information: add withdrawTips
and depositTips
params。
2022-09-06
- Add Rebate Endpoints:
1.Get Rebate History Records:Get the rebates from friends you invited and the transactions they make.
2.Get Rebate Records Detail:You can query the records of each rebate generated by contracts and spot (non-leveraged) transactions made by your friends and their sub-accounts.
3.Get Self Rebate Records Detail:You can query the each contract and spot (no margin) your invited friend made as the self-commission record generated from it.
2022-09-02
- Add v3 websocket:
1.Websocket Market Streams:Trade Streams,Kline Streams,Diff.Depth Stream;
2.Websocket User Data Streams:Account Deals,Account Orders.
2022-08-26
- ETF add some response params:
Name | type | Description |
---|---|---|
preBasket | string | preBasket |
preLeverage | string | preLeverage |
basket | string | basket |
2022-08-15
- Update for Sub-account endpoints:
2.Query Universal Transfer History
2022-08-03
- Add Wallet Endpoints:
1.Query the currency information
2.Withdraw
7.Query User Universal Transfer History
2022-07-27
- Spot New Order Order type add: IOC and FOK
2022-07-15
- Account Trade List add params: isSelfTrade
Name | Description |
---|---|
isSelfTrade | isSelfTrade |
2022-07-08
- Add Batch Orders Supports 20 orders in a batch,rate limit: 2 times/s.
2022-07-03
- Add Query the currency information,Query currency details and the smart contract address.
2022-05-22
- Optimize exchangeInfo Endpoints
- Optimize order Endpoints,add parameter: order id
2022-04-25
- Exchange Info add parameters:
Name | type | Description |
---|---|---|
isSpotTradingAllowed | Boolean | isSpotTradingAllowed |
isMarginTradingAllowed | Boolean | isMarginTradingAllowed |
- Current Open Orders Optimize: Get all open orders on multiple symbols,maximun support 5 symbols for one request.
2022-03-29
3.Create an APIKey for a sub-account
4.Query the APIKey of a sub-account
5.Delete the APIKey of a sub-account
7.Query Universal Transfer History
2022-03-25
2022-03-24
- Add information of market order
2022-03-21
- Add order status
2022-03-18
- Add new Order Type: Market
- Add time page info: startTime and endTime need to the same time
2022-03-09
- Add kline interval
2022-02-19
- Add ETF
2022-02-11
- New version API
FAQs
Q1: How many API Keys can a user apply?
Each account can create up to 30 API Keys. The validity of an API Key without a linked IP address is 90 days, and the API Key will expire automatically. Each API Key can be linked to a maximum of 10 IP addresses.
Q2: How many sub-accounts can a main account apply?
Each main account can create up to 30 sub-accounts. The sub-accounts will automatically inherit the main account rates. However, sub-accounts created via API cannot be logged in on Web.
Q3: Why are there often issues of disconnections and expired sessions?
If stable access is not possible, it is recommended to use Japan or Singapore AWS cloud servers for access.
Q4: What should I do after an error is reported for exceeding the limit frequency?
After exceeding the interface access frequency limit, you will not be able to continue accessing the interface. It will resume to normal after 10 minutes to keep the interface access frequency below the limit.
Q5: How many orders can an account place?
Each account can hold up to 500 valid orders that are not completely filled.
Q6:Why does WebSocket always disconnect?
- If there is no valid subscription, it will disconnect in 30 seconds.
- If the subscription is successful, and there is no traffic in 60 seconds, it will automatically disconnect.
- To ensure a stable connection, a Pong reply is required upon receiving the Ping message sent from the server.
Q7: Why am I unable to subcribe to multiple channels on WebSocket?
WebSocket currently allows subscription to up to 30 channels via a single link. Any subscription will be invalid after the limit is exceeded. To subscribe to more channels, it is recommended to create multiple links.
General Info
Base endpoint
The base endpoint is:
https://api.mexc.com
HTTP Return Codes
- HTTP 4XX return codes are used for malformed requests; the issue is on the sender's side.
- HTTP 403 return code is used when the WAF Limit (Web Application Firewall) has been violated.
- HTTP 429 return code is used when breaking a request rate limit.
- HTTP 5XX return codes are used for internal errors; the issue is on MEXC's side. It is important to NOT treat this as a failure operation; the execution status is UNKNOWN and could have been a success.
General Information on Endpoints
The API accepts requests of type GET, POST or DELETE
- For GET endpoints, parameters must be sent as a query string.
- For POST, PUT, and DELETE endpoints, the parameters may be sent as a query string with content type application/x-www-form-urlencoded,or in the request body with content type application/json. You may mix parameters between both the query string and request body if you wish to do so.
- Parameters may be sent in any order.
- If a parameter sent in both the query string and request body, the query string parameter will be used.
Header
Relevant parameters in the header
key | Description |
---|---|
X-MEXC-APIKEY |
Access key |
Content-Type |
application/json |
SIGNED
- SIGNED endpoints require an additional parameter, signature, to be sent in the query string or request body(in the API of batch operation, if there are special symbols such as comma in the parameter value, these symbols need to be URL encoded when signing,and encode only support uppercase).
- Endpoints use HMAC SHA256 signatures. The HMAC SHA256 signature is a keyed HMAC SHA256 operation. Use your secretKey as the key and totalParams as the value for the HMAC operation.
- The signature is support lowercase only.
- totalParams is defined as the query string concatenated with the request body.
Timing security
The logic is as follows:
if (timestamp < (serverTime + 1000) && (serverTime - timestamp) <= recvWindow)
{
// process request
}
else
{
// reject request
}
- A SIGNED endpoint also requires a parameter, timestamp, to be sent which should be the millisecond timestamp of when the request was created and sent.
- An additional parameter, recvWindow, may be sent to specify the number of milliseconds after timestamp the request is valid for. If recvWindow is not sent, it defaults to 5000.
Serious trading is about timing. Networks can be unstable and unreliable, which can lead to requests taking varying amounts of time to reach the servers. With recvWindow, you can specify that the request must be processed within a certain number of milliseconds or be rejected by the server.
SIGNED Endpoint Examples for POST /api/v3/order
Example 1
HMAC SHA256 signature:
$ echo -n "symbol=BTCUSDT&side=BUY&type=LIMIT&quantity=1&price=11&recvWindow=5000×tamp=1644489390087" | openssl dgst -sha256 -hmac "45d0b3c26f2644f19bfb98b07741b2f5"
(stdin)= 323c96ab85a745712e95e63cad28903dd8292e4a905e99c4ee3932023843a117
curl command:
(HMAC SHA256)
$ curl -H "X-MEXC-APIKEY: mx0aBYs33eIilxBWC5" -X POST 'https://api.mexc.com/api/v3/order' -d 'symbol=BTCUSDT&side=BUY&type=LIMIT&quantity=1&price=11&recvWindow=5000×tamp=1644489390087&signature=323c96ab85a745712e95e63cad28903dd8292e4a905e99c4ee3932023843a117'
Example 2
HMAC SHA256 signature:
$ echo -n "symbol=BTCUSDT&side=BUY&type=LIMIT&quantity=1&price=11&recvWindow=5000×tamp=1644489390087" | openssl dgst -sha256 -hmac "45d0b3c26f2644f19bfb98b07741b2f5"
(stdin)= fd3e4e8543c5188531eb7279d68ae7d26a573d0fc5ab0d18eb692451654d837a
curl command:
(HMAC SHA256)
$ curl -H "X-MEXC-APIKEY: mx0aBYs33eIilxBWC5" -X POST 'https://api.mexc.com/api/v3/order' -d 'symbol=BTCUSDT&side=BUY&type=LIMIT&quantity=1&price=11&recvWindow=5000×tamp=1644489390087&signature=fd3e4e8543c5188531eb7279d68ae7d26a573d0fc5ab0d18eb692451654d837a'
Example 3
HMAC SHA256 signature:
$ echo -n "symbol=BTCUSDT&side=BUY&type=LIMITquantity=1&price=11&recvWindow=5000×tamp=1644489390087" | openssl dgst -sha256 -hmac "45d0b3c26f2644f19bfb98b07741b2f5"
(stdin)= d1a676610ceb39174c8039b3f548357994b2a34139a8addd33baadba65684592
curl command:
(HMAC SHA256)
$ curl -H "X-MEXC-APIKEY: mx0aBYs33eIilxBWC5" -X POST 'https://api.mexc.com/api/v3/order?symbol=BTCUSDT&side=BUY&type=LIMIT' -d 'quantity=1&price=11&recvWindow=5000×tamp=1644489390087&signature=d1a676610ceb39174c8039b3f548357994b2a34139a8addd33baadba65684592'
Here is a step-by-step example of how to send a vaild signed payload from the Linux command line using echo, openssl, and curl.
Key | Value |
---|---|
apiKey | mx0aBYs33eIilxBWC5 |
secretKey | 45d0b3c26f2644f19bfb98b07741b2f5 |
Parameter | Value |
---|---|
symbol | BTCUSDT |
side | BUY |
type | LIMIT |
quantity | 1 |
price | 11 |
recvWindow | 5000 |
timestamp | 1644489390087 |
Example 1: As a request body
- requestBody: symbol=BTCUSDT&side=BUY&type=LIMIT&quantity=1&price=11&recvWindow=5000×tamp=1644489390087
Example 2: As a query string
- queryString: symbol=BTCUSDT&side=BUY&type=LIMIT&quantity=1&price=11&recvWindow=5000×tamp=1644489390087
Example 3: Mixed query string and request body
queryString: symbol=BTCUSDT&side=BUY&type=LIMIT
requestBody: quantity=1&price=11&recvWindow=5000×tamp=1644489390087
Note that the signature is different in example 3. There is no & between "LIMIT" and "quantity=1".
LIMITS
There is rate limit for API access frequency, upon exceed client will get code 429: Too many requests. The account is used as the basic unit of speed limit for the endpoints that need to carry access keys. For endpoints that do not need to carry access keys, IP addresses are used as the basic unit of rate limiting.
Limits Description
- According to the two modes of IP and UID (account) limit, each are independent.
- Endpoints are marked according to IP or UID limit and their corresponding weight value.
- Each endpoint with IP limits has an independent 500 every 10 second limit.
- Each endpoint with UID limits has an independent 500 every 10 second limit.
Limits Error
- When a 429 is received, it's your obligation as an API to back off and not spam the API.
- Repeatedly violating rate limits and/or failing to back off after receiving 429s will result in an automated IP ban .
- IP bans are tracked and scale in duration for repeat offenders, from 2 minutes to 3 days.
- A Retry-After header is sent with a 418 or 429 responses and will give the number of seconds required to wait, in the case of a 429, to prevent a ban, or, in the case of a 418, until the ban is over.
Websocket Limits
- The Websocket limits is: 100times/s.
- A connection that goes beyond the limit will be disconnected; IPs that are repeatedly disconnected may be banned.
- A single connection can listen to a maximum of 30 streams.
Error Code
The following error information can be returend
Code | Description |
---|---|
-2011 | Unknown order sent |
26 | operation not allowed |
400 | api key required |
401 | No authority |
403 | Access Denied |
429 | Too Many Requests |
500 | Internal error |
503 | service not available, please try again |
504 | Gateway Time-out |
602 | Signature verification failed |
10001 | user does not exist |
10007 | bad symbol |
10015 | user id cannot be null |
10072 | invalid access key |
10073 | invalid Request-Time |
10095 | amount cannot be null |
10096 | amount decimal places is too long |
10097 | amount is error |
10098 | risk control system detected abnormal |
10099 | user sub account does not open |
10100 | this currency transfer is not supported |
10101 | Insufficient balance |
10102 | amount cannot be zero or negative |
10103 | this account transfer is not supported |
10200 | transfer operation processing |
10201 | transfer in failed |
10202 | transfer out failed |
10206 | transfer is disabled |
10211 | transfer is forbidden |
10212 | This withdrawal address is not on the commonly used address list or has been invalidated |
10216 | no address available. Please try again later |
10219 | asset flow writing failed please try again |
10222 | currency cannot be null |
10232 | currency does not exist |
10259 | Intermediate account does not configured in redisredis |
10265 | Due to risk control, withdrawal is unavailable, please try again later |
10268 | remark length is too long |
20001 | subsystem is not supported |
20002 | Internal system error please contact support |
22222 | record does not exist |
30000 | suspended transaction for the symbol |
30001 | The current transaction direction is not allowed to place an order |
30002 | The minimum transaction volume cannot be less than : |
30003 | The maximum transaction volume cannot be greater than : |
30004 | Insufficient position |
30005 | Oversold |
30010 | no valid trade price |
30014 | invalid symbol |
30016 | trading disabled |
30018 | market order is disabled |
30019 | api market order is disabled |
30020 | no permission for the symbol |
30021 | invalid symbol |
30025 | no exist opponent order |
30026 | invalid order ids |
30027 | The currency has reached the maximum position limit, the buying is suspended |
30028 | The currency triggered the platform risk control, the selling is suspended |
30029 | Cannot exceed the maximum order limit |
30032 | Cannot exceed the maximum position |
30041 | current order type can not place order |
33333 | param is error |
44444 | param cannot be null |
60005 | your account is abnormal |
70011 | Pair user ban trade apikey |
700001 | API-key format invalid |
700002 | Signature for this request is not valid |
700003 | Timestamp for this request is outside of the recvWindow |
700004 | Param 'origClientOrderId' or 'orderId' must be sent, but both were empty/null |
700005 | recvWindow must less than 60000 |
700006 | IP non white list |
700007 | No permission to access the endpoint |
700008 | Illegal characters found in parameter |
730001 | Pair not found |
730002 | Your input param is invalid |
730000 | Request failed, please contact the customer service |
730001 | User information error |
730002 | Parameter error |
730003 | Unsupported operation, please contact the customer service |
730100 | Unusual user status |
730600 | Sub-account Name cannot be null |
730601 | Sub-account Name must be a combination of 8-32 letters and numbers |
730602 | Sub-account remarks cannot be null |
730700 | API KEY remarks cannot be null |
730701 | API KEY permission cannot be null |
730702 | API KEY permission does not exist |
730703 | The IP information is incorrect, and a maximum of 10 IPs are allowed to be bound only |
730704 | The bound IP format is incorrect, please refill |
730705 | At most 30 groups of Api Keys are allowed to be created only |
730706 | API KEY information does not exist |
730707 | accessKey cannot be null |
730101 | The user Name already exists |
140001 | sub account does not exist |
140002 | sub account is forbidden |
Market Data Endpoints
Download Historical Market Data
Provides kline and trading data for all Spot pairs since 01-01-2023:Historical Market Data
Test Connectivity
Response
{}
- GET
/api/v3/ping
Test connectivity to the Rest API.
Weight(IP): 1
Parameter:
NONE
Check Server Time
Response
{
"serverTime" : 1645539742000
}
- GET
/api/v3/time
Weight(IP): 1
Parameter:
NONE
API default symbol
Request
GET /api/v3/defaultSymbols
Response
{
"code": 200,
"data": [
"GENE1USDT",
"SNTUSDT",
"SQUAWKUSDT",
"HEGICUSDT",
"GUMUSDT"
],
"msg": null
}
- GET
/api/v3/defaultSymbols
Weight(IP): 1
Request
NONE
Response
Name | Type | Description |
---|---|---|
symbol | string | symbol |
Exchange Information
Response
{
"symbol": "TOMO3LUSDT",
"status": "ENABLED",
"baseAsset": "TOMO3L",
"baseAssetPrecision": 2,
"quoteAsset": "USDT",
"quotePrecision": 3,
"quoteAssetPrecision": 3,
"baseCommissionPrecision": 2,
"quoteCommissionPrecision": 3,
"orderTypes": [
"LIMIT",
"LIMIT_MAKER"
],
"quoteOrderQtyMarketAllowed": false,
"isSpotTradingAllowed": false,
"isMarginTradingAllowed": false,
"quoteAmountPrecision": "5",
"baseSizePrecision": "0.0001",
"permissions": [
"SPOT",
"LIMIT"
],
"filters": [],
"maxQuoteAmount": "5000000",
"makerCommission": "0.002",
"takerCommission": "0.002",
"tradeSideType":"1"
}
- GET
/api/v3/exchangeInfo
Current exchange trading rules and symbol information
Weight(IP): 10
Parameter:
There are 3 possible options:
Method | Example |
---|---|
No parameter | curl -X GET "https://api.mexc.com/api/v3/exchangeInfo" |
symbol | curl -X GET "https://api.mexc.com/api/v3/exchangeInfo?symbol=MXUSDT" |
symbols | curl -X GET "https://api.mexc.com/api/v3/exchangeInfo?symbols=MXUSDT,BTCUSDT" |
Response:
Name | Type | Description |
---|---|---|
timezone | string | timezone |
serverTime | long | server Time |
rateLimits | Array | rate Limits |
exchangeFilters | Array | exchange Filters |
symbol | String | symbol |
status | String | status:1 - online, 2 - Pause, 3 - offline |
baseAsset | String | base Asset |
baseAssetPrecision | Int | base Asset Precision |
quoteAsset | String | quote Asset |
quotePrecision | Int | quote Precision |
quoteAssetPrecision | Int | quote Asset Precision |
baseCommissionPrecision | Int | base Commission Precision |
quoteCommissionPrecision | Int | quote Commission Precision |
orderTypes | Array | Order Type |
quoteOrderQtyMarketAllowed | Boolean | quoteOrderQtyMarketAllowed |
isSpotTradingAllowed | Boolean | allow api spot trading |
isMarginTradingAllowed | Boolean | allow api margin trading |
permissions | Array | permissions |
maxQuoteAmount | String | max Quote Amount |
makerCommission | String | marker Commission |
takerCommission | String | taker Commission |
quoteAmountPrecision | string | min order amount |
baseSizePrecision | string | min order quantity |
quoteAmountPrecisionMarket | string | min order amount in market order |
maxQuoteAmountMarket | String | max quote Amount in market order |
tradeSideType | String | tradeSide Type:1 - All, 2 - buy order only, 3 - Sell order only, 4 - Close |
Order Book
Response
{
"lastUpdateId": 1112416,
"bids": [
["15.00000", "49999.00000"]
],
"asks": [
["14.0000", "1.0000"]
]
}
- GET
/api/v3/depth
Weight(IP): 1
Parameter:
Name | Type | Mandatory | Description | Scope |
---|---|---|---|---|
symbol | string | YES | Symbol | |
limit | integer | NO | Returen number | default 100; max 5000 |
Response:
Name | Type | Description |
---|---|---|
lastUpdateId | long | Last Update Id |
bids | list | Bid [Price, Quantity ] |
asks | list | Ask [Price, Quantity ] |
Recent Trades List
Response
[
{
"id": null,
"price": "23",
"qty": "0.478468",
"quoteQty": "11.004764",
"time": 1640830579240,
"isBuyerMaker": true,
"isBestMatch": true
}
]
- GET
/api/v3/trades
Weight(IP): 5
Parameter:
Name | Type | Mandatory | Description | Scope |
---|---|---|---|---|
symbol | string | YES | ||
limit | integer | NO | Default 500; max 1000 |
Response:
Name | Description |
---|---|
id | Trade id |
price | Price |
qty | Number |
quoteQty | Trade total |
time | Trade time |
isBuyerMaker | Was the buyer the maker? |
isBestMatch | Was the trade the best price match? |
Compressed/Aggregate Trades List
Response
[
{
"a": null,
"f": null,
"l": null,
"p": "46782.67",
"q": "0.0038",
"T": 1641380483000,
"m": false,
"M": true
}
]
- GET
/api/v3/aggTrades
Weight(IP): 1
Get compressed, aggregate trades. Trades that fill at the time, from the same order, with the same price will have the quantity aggregated.
Parameters:
Name | Type | Mandatory | Description | Scope |
---|---|---|---|---|
symbol | string | YES | ||
startTime | long | NO | Timestamp in ms to get aggregate trades from INCLUSIVE. | |
endTime | long | NO | Timestamp in ms to get aggregate trades until INCLUSIVE. | |
limit | integer | NO | Default 500; max 1000. |
startTime and endTime must be used at the same time.
Response:
Name | Description |
---|---|
a | Aggregate tradeId |
f | First tradeId |
l | Last tradeId |
p | Price |
q | Quantity |
T | Timestamp |
m | Was the buyer the maker? |
M | Was the trade the best price match? |
Kline/Candlestick Data
Response
[
[
1640804880000,
"47482.36",
"47482.36",
"47416.57",
"47436.1",
"3.550717",
1640804940000,
"168387.3"
]
]
- GET
/api/v3/klines
Weight(IP): 1
Kline/candlestick bars for a symbol. Klines are uniquely identified by their open time.
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
symbol | string | YES | |
interval | ENUM | YES | ENUM: Kline Interval |
startTime | long | NO | |
endTime | long | NO | |
limit | integer | NO | Default 500; max 1000. |
Response:
Index | Description |
---|---|
0 | Open time |
1 | Open |
2 | High |
3 | Low |
4 | Close |
5 | Volume |
6 | Close time |
7 | Quote asset volume |
Current Average Price
Response
{
"mins": 5,
"price": "9.35751834"
}
- GET
/api/v3/avgPrice
Weight(IP): 1
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
symbol | string | YES |
Response:
Name | Description |
---|---|
mins | Average price time frame |
price | Price |
24hr Ticker Price Change Statistics
Response
{
"symbol": "BTCUSDT",
"priceChange": "184.34",
"priceChangePercent": "0.00400048",
"prevClosePrice": "46079.37",
"lastPrice": "46263.71",
"bidPrice": "46260.38",
"bidQty": "",
"askPrice": "46260.41",
"askQty": "",
"openPrice": "46079.37",
"highPrice": "47550.01",
"lowPrice": "45555.5",
"volume": "1732.461487",
"quoteVolume": null,
"openTime": 1641349500000,
"closeTime": 1641349582808,
"count": null
}
or
[
{
"symbol": "BTCUSDT",
"priceChange": "184.34",
"priceChangePercent": "0.00400048",
"prevClosePrice": "46079.37",
"lastPrice": "46263.71",
"bidPrice": "46260.38",
"bidQty": "",
"askPrice": "46260.41",
"askQty": "",
"openPrice": "46079.37",
"highPrice": "47550.01",
"lowPrice": "45555.5",
"volume": "1732.461487",
"quoteVolume": null,
"openTime": 1641349500000,
"closeTime": 1641349582808,
"count": null
},
{
"symbol": "ETHUSDT",
"priceChange": "184.34",
"priceChangePercent": "0.00400048",
"prevClosePrice": "46079.37",
"lastPrice": "46263.71",
"bidPrice": "46260.38",
"bidQty": "",
"askPrice": "46260.41",
"askQty": "",
"openPrice": "46079.37",
"highPrice": "47550.01",
"lowPrice": "45555.5",
"volume": "1732.461487",
"quoteVolume": null,
"openTime": 1641349500000,
"closeTime": 1641349582808,
"count": null
}
]
- GET
/api/v3/ticker/24hr
Weight(IP):
Parameter | Symbols Provided | Weight |
---|---|---|
symbol | 1 | 1 |
symbols | all | 40 |
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
symbol | string | NO | If the symbol is not sent, tickers for all symbols will be returned in an array. |
Response:
Name | Description |
---|---|
symbol | Symbol |
priceChange | price Change |
priceChangePercent | price change percent |
prevClosePrice | Previous close price |
lastPrice | Last price |
lastQty | Last quantity |
bidPrice | Bid best price |
bidQty | Bid best quantity |
askPrice | Ask best price |
askQty | Ask best quantity |
openPrice | Open |
highPrice | High |
lowPrice | Low |
volume | Deal volume |
quoteVolume | Quote asset volume |
openTime | Start time |
closeTime | Close time |
count |
Symbol Price Ticker
Response
{
"symbol": "BTCUSDT",
"price": "184.34"
}
or
[
{
"symbol": "BTCUSDT",
"price": "6.65"
},
{
"symbol": "ETHUSDT",
"price": "5.65"
}
]
- GET
/api/v3/ticker/price
Weight(IP):
Parameter | Symbols Provided | Weight |
---|---|---|
symbol | 1 | 1 |
symbols | all | 2 |
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
symbol | string | NO | If the symbol is not sent, all symbols will be returned in an array. |
Response:
Name | Description |
---|---|
symbol | |
price | Last price |
Symbol Order Book Ticker
Response
{
"symbol": "AEUSDT",
"bidPrice": "0.11001",
"bidQty": "115.59",
"askPrice": "0.11127",
"askQty": "215.48"
}
OR
[
{
"symbol": "AEUSDT",
"bidPrice": "0.11001",
"bidQty": "115.59",
"askPrice": "0.11127",
"askQty": "215.48"
},
{
"symbol": "AEUSDT",
"bidPrice": "0.11001",
"bidQty": "115.59",
"askPrice": "0.11127",
"askQty": "215.48"
}
]
- GET
/api/v3/ticker/bookTicker
Weight(IP): 1
Best price/qty on the order book for a symbol or symbols.
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
symbol | string | NO | If the symbol is not sent, all symbols will be returned in an array. |
Response:
Name | Description |
---|---|
symbol | Symbol |
bidPrice | Best bid price |
bidQty | Best bid quantity |
askPrice | Best ask price |
askQty | Best ask quantity |
Sub-Account Endpoints
Create a Sub-account(For Master Account)
Create a sub-account from the master account.
Response
{
"subAccount":"mexc1",
"note":"1"
}
- POST / api/v3/sub-account/virtualSubAccount
Permission: SPOT_ACCOUNT_READ
Weight(IP): 1
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
subAccount | STRING | YES | Sub-account Name |
note | STRING | YES | Sub-account notes |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
Query Sub-account List (For Master Account)
Get details of the sub-account list
Response
{
"subAccounts":[
{
"subAccount":"mexc666",
"isFreeze":false,
"createTime":1544433328000,
"uid": "49910511"
},
{
"subAccount":"mexc888",
"isFreeze":false,
"createTime":1544433328000,
"uid": "91921059"
}
]
}
- GET / api/v3/sub-account/list
Permission: SPOT_ACCOUNT_READ
Weight(IP): 1
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
subAccount | STRING | NO | Sub-account Name |
isFreeze | STRING | NO | true or false |
page | INT | NO | Default value: 1 |
limit | INT | NO | Default value: 10, Max value: 200 |
timestamp | LONG | YES | |
recvWindow | LONG | NO |
Response:
Name | Description |
---|---|
subAccount | subAccount name |
isFreeze | isFreeze |
createTime | createTime |
uid | subaccount uid |
Create an APIKey for a sub-account (For Master Account)
Response
{
"subAccount": "mexc1",
"note": "1",
"apiKey": "arg13sdfgs",
"secretKey": "nkjwn21973ihi",
"permissions": "SPOT_ACCOUNT_READ",
"ip": "135.181.193",
"creatTime": 1597026383085
}
- POST /api/v3/sub-account/apiKey
Permission: SPOT_ACCOUNT_READ
Weight(IP): 1
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
subAccount | STRING | YES | Sub-account Name |
note | STRING | YES | APIKey note |
permissions | STRING | YES | Permission of APIKey: SPOT_ACCOUNT_READ, SPOT_ACCOUNT_WRITE, SPOT_DEAL_READ, SPOT_DEAL_WRITE, CONTRACT_ACCOUNT_READ, CONTRACT_ACCOUNT_WRITE, CONTRACT_DEAL_READ, CONTRACT_DEAL_WRITE, SPOT_TRANSFER_READ, SPOT_TRANSFER_WRITE |
ip | STRING | NO | Link IP addresses, separate with commas if more than one. Support up to 20 addresses. |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
Query the APIKey of a sub-account (For Master Account)
Applies to master accounts only
Response
{
"subAccount":[
{
"note":"v5",
"apiKey":"arg13sdfgs",
"permissions":"SPOT_ACCOUNT_READ,SPOT_ACCOUNT_WRITE",
"ip":"1.1.1.1,2.2.2.2",
"creatTime":1597026383085
},
{
"note":"v5.1",
"apiKey":"arg13sdfgs12",
"permissions":"SPOT_ACCOUNT_READ,SPOT_ACCOUNT_WRITE",
"ip":"1.1.1.1,2.2.2.2",
"creatTime":1597026383085
}
]
}
- GET/api/v3/sub-account/apiKey
Permission: SPOT_ACCOUNT_READ
Weight(IP): 1
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
subAccount | STRING | YES | Sub-account Name |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
Delete the APIKey of a sub-account (For Master Account)
Response
{
"subAccount":"mexc1"
}
- DELETE /api/v3/sub-account/apiKey
Permission: SPOT_ACCOUNT_READ
Weight(IP): 1
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
subAccount | STRING | YES | Sub-account Name |
apiKey | STRING | YES | API public key |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
Universal Transfer (For Master Account)
Request
post /api/v3/capital/sub-account/universalTransfer
Response
{
"tranId":11945860693
}
- POST
/api/v3/capital/sub-account/universalTransfer
Permission: SPOT_TRANSFER_WRITE
Weight(IP): 1
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
fromAccount | string | NO | Transfer from master account by default if fromAccount is not sent |
toAccount | string | NO | Transfer to master account by default if toAccount is not sent |
fromAccountType | string | YES | fromAccountType:"SPOT","FUTURES" |
toAccountType | string | YES | toAccountType:"SPOT","FUTURES" |
asset | string | YES | asset,eg:USDT |
amount | string | YES | amount,eg:1.82938475 |
timestamp | string | YES | timestamp |
signature | string | YES | sign |
Response:
Name | Type | Description |
---|---|---|
tranId | string | transfer ID |
Query Universal Transfer History (For Master Account)
Request
get /api/v3/capital/sub-account/universalTransfer
Response
{
"tranId":"11945860693",
"fromAccount":"master@test.com",
"toAccount":"subaccount1@test.com",
"clientTranId":"test",
"asset":"BTC",
"amount":"0.1",
"fromAccountType":"SPOT",
"toAccountType":"FUTURE",
"fromSymbol":"SPOT",
"toSymbol":"FUTURE",
"status":"SUCCESS",
"timestamp":1544433325000
}
- GET
/api/v3/capital/sub-account/universalTransfer
Permission: SPOT_TRANSFER_READ
Weight(IP): 1
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
fromAccount | string | NO | Transfer from master account by default if fromAccount is not sent |
toAccount | string | NO | Transfer to master account by default if toAccount is not sent |
fromAccountType | string | YES | fromAccountType:"SPOT","FUTURES" |
toAccountType | string | YES | toAccountType:"SPOT","FUTURES" |
startTime | string | NO | startTime |
endTime | string | NO | endTime |
page | string | NO | default 1 |
limit | string | NO | default 500, max 500 |
timestamp | string | YES | timestamp |
signature | string | YES | sign |
Response:
Name | Type | Description |
---|---|---|
tranId | string | transfer ID |
fromAccount | string | fromAccount |
toAccount | string | toAccount |
clientTranId | string | clientTranId |
asset | string | asset |
amount | string | transfer amount |
fromAccountType | string | fromAccountType |
toAccountType | string | toAccountType |
fromSymbol | string | fromSymbol |
toSymbol | string | toSymbol |
status | string | status |
timestamp | number | timestamp |
Query Sub-account Asset
request
get /api/v3/sub-account/asset?subAccount=account1&accountType=SPOT×tamp={{timestamp}}&signature={{signature}}
response
{
"balances": [
{
"asset": "MX",
"free": "3",
"locked": "0"
},
{
"asset": "BTC",
"free": "0.0003",
"locked": "0"
}
]
}
- GET
/api/v3/sub-account/asset
Permission: SPOT_TRANSFER_READ
Weight(IP): 1
request
Name | Type | Mandatory | Description |
---|---|---|---|
subAccount | string | Yes | subAccount name,only support query for single subaccount |
accountType | string | Yes | account type:"SPOT","FUTURES",only support SPOT currently |
timestamp | string | Yes | timestamp |
signature | string | Yes | signature |
response
Name | Type | Description |
---|---|---|
balances | string | balance |
asset | string | asset |
free | string | free |
locked | string | locked |
Spot Account/Trade
Query KYC status
request
GET /api/v3/kyc/status?timestamp={{timestamp}}&signature={{signature}}
response
{
"status": "1"
}
GET /api/v3/kyc/status
Permission: SPOT_ACCOUNT_READ
Weight(IP): 1
Request
Name | Type | Mandatory | Description |
---|---|---|---|
timestamp | string | Yes | timestamp |
signature | string | Yes | signature |
Response
Name | Type | Description |
---|---|---|
status | string | 1:Unverified 2:Primary kyc 3:Advanced kyc 4:Institutional kyc |
User API default symbol
Request
GET /api/v3/selfSymbols?timestamp={{timestamp}}&signature={{signature}}
Response
{
"code": 200,
"data": [
"GENE1USDT",
"SNTUSDT",
"SQUAWKUSDT",
"HEGICUSDT",
"GUMUSDT"
],
"msg": null
}
- GET
/api/v3/selfSymbols
Permission: SPOT_ACCOUNT_R
Weight(IP): 1
Request
NONE
Response
Name | Type | Description |
---|---|---|
symbol | string | api trade symbol |
Test New Order
Response
{}
- POST
/api/v3/order/test
Permission: SPOT_DEAL_WRITE
Weight(IP): 1
Creates and validates a new order but does not send it into the matching engine.
Parameters:
equaled POST /api/v3/order
New Order
Request
POST /api/v3/order?symbol=MXUSDT&side=BUY&type=LIMIT&quantity=50&price=0.1×tamp={{timestamp}}&signature={{signature}}
Response
{
"symbol": "MXUSDT",
"orderId": "06a480e69e604477bfb48dddd5f0b750",
"orderListId": -1,
"price": "0.1",
"origQty": "50",
"type": "LIMIT",
"side": "BUY",
"transactTime": 1666676533741
}
- POST
/api/v3/order
Permission: SPOT_DEAL_WRITE
Weight(IP): 1, Weight(UID): 1
Parameters:
Name | type | Mandatory | Description |
---|---|---|---|
symbol | STRING | YES | |
side | ENUM | YES | ENUM:Order Side |
type | ENUM | YES | ENUM:Order Type |
quantity | DECIMAL | NO | Quantity |
quoteOrderQty | DECIMAL | NO | Quote order quantity |
price | DECIMAL | NO | Price |
newClientOrderId | STRING | NO | |
recvWindow | LONG | NO | Max 60000 |
timestamp | LONG | YES |
Response:
Name | Description |
---|---|
symbol | Symbol |
orderId | order id |
orderListId | order list id |
price | Price |
origQty | Original order quantity |
type | Order type |
side | order side |
transactTime | transactTime |
Additional mandatory parameters based on type
:
Type | Additional mandatory parameters |
---|---|
LIMIT |
quantity , price |
MARKET |
quantity or quoteOrderQty |
Other info:
MARKET: When type is market, quoteOrderQty
or quantity
required to choose anyone.
MARKET
orders using thequantity
field specifies the amount of thebase asset
the user wants to sell at the market price- For example, sending a
MARKET
order on BTCUSDT will specify how much BTC the user is selling.
- For example, sending a
MARKET
orders usingquoteOrderQty
specifies the amount the user wants to spend (when buying) thequote
asset; the correctquantity
will be determined based on the market liquidity- Using BTCUSDT as an example:
- On the
BUY
side, the order will buy as many BTC asquoteOrderQty
USDT can. - On the
SELL
side, the order will sell thequantity
of BTC.
Batch Orders
Supports 30 orders with a same symbol in a batch,rate limit:2 times/s.
Request
POST /api/v3/batchOrders?batchOrders=[{"type": "LIMIT_ORDER","price": "40000","quantity": "0.0002","symbol": "BTCUSDT","side": "BUY","newClientOrderId": 9588234},{"type": "LIMIT_ORDER","price": "4005","quantity": "0.0003","symbol": "BTCUSDT","side": "SELL"}]
Response
{
{ //success response:
[
{
"symbol": "BTCUSDT",
"orderId": "1196315350023612316",
"orderListId": -1
},
{
"symbol": "BTCUSDT",
"orderId": "1196315350023612318",
"orderListId": -1
}
],
//error response:
[
{
"symbol": "BTCUSDT",
"orderId": "1196315350023612316",
"newClientOrderId": "hio8279hbdsds",
"orderListId": -1
},
{
"newClientOrderId": "123456",
"msg": "The minimum transaction volume cannot be less than:0.5USDT",
"code": 30002
},
{
"symbol": "BTCUSDT",
"orderId": "1196315350023612318",
"orderListId": -1
}
]
}
}
- POST
/api/v3/batchOrders
Permission: SPOT_DEAL_WRITE
Weight(IP): 1,Weight(UID): 1
Parameters:
Name | type | Mandatory | Description |
---|---|---|---|
batchOrders | LIST | YES | list of batchOrders,supports max 30 orders |
symbol | STRING | YES | symbol |
side | ENUM | YES | order side |
type | ENUM | YES | order type |
quantity | DECIMAL | NO | quantity |
quoteOrderQty | DECIMAL | NO | quoteOrderQty |
price | DECIMAL | NO | order price |
newClientOrderId | STRING | NO | ClientOrderId |
recvWindow | LONG | NO | less than 60000 |
timestamp | LONG | YES | order time |
base on differenttype
,some params are mandatory:
type | Mandatory params |
---|---|
LIMIT |
quantity , price |
MARKET |
quantity or quoteOrderQty |
Response
Name | type | Description |
---|---|---|
symbol | STRING | symbol |
orderId | STRING | orderId |
Cancel Order
Response
{
"symbol": "LTCBTC",
"origClientOrderId": "myOrder1",
"orderId": 4,
"clientOrderId": "cancelMyOrder1",
"price": "2.00000000",
"origQty": "1.00000000",
"executedQty": "0.00000000",
"cummulativeQuoteQty": "0.00000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY"
}
- DELETE
/api/v3/order
Permission: SPOT_DEAL_WRITE
Weight(IP): 1
Cancel an active order.
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
symbol | string | YES | |
orderId | string | NO | Order id |
origClientOrderId | string | NO | |
newClientOrderId | string | NO | |
recvWindow | long | NO | |
timestamp | long | YES |
Either orderId
or origClientOrderId
must be sent.
Response:
Name | Description |
---|---|
symbol | Symbol |
origClientOrderId | Original client order id |
orderId | order id |
clientOrderId | client order id |
price | Price |
origOty | Original order quantity |
executedQty | Executed order quantity |
cummulativeQuoteQty | Cummulative quote quantity |
status | order status |
timeInForce | |
type | Order type |
side | order side |
Cancel all Open Orders on a Symbol
Response
[
{
"symbol": "BTCUSDT",
"origClientOrderId": "E6APeyTJvkMvLMYMqu1KQ4",
"orderId": 11,
"orderListId": -1,
"clientOrderId": "pXLV6Hz6mprAcVYpVMTGgx",
"price": "0.089853",
"origQty": "0.178622",
"executedQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY"
},
{
"symbol": "BTCUSDT",
"origClientOrderId": "A3EF2HCwxgZPFMrfwbgrhv",
"orderId": 13,
"orderListId": -1,
"clientOrderId": "pXLV6Hz6mprAcVYpVMTGgx",
"price": "0.090430",
"origQty": "0.178622",
"executedQty": "0.000000",
"cummulativeQuoteQty": "0.000000",
"status": "CANCELED",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY"
}
]
- DELETE
/api/v3/openOrders
Permission: SPOT_DEAL_WRITE
Weight(IP): 1
Cancel all pending orders for a single symbol, including OCO pending orders.
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
symbol | string | YES | maximum input 5 symbols,separated by ",". e.g. "BTCUSDT,MXUSDT,ADAUSDT" |
recvWindow | long | NO | |
timestamp | long | YES |
Response:
Name | Description |
---|---|
symbol | Symbol |
origClientOrderId | Original client order id |
orderId | order id |
clientOrderId | client order id |
price | Price |
origOty | Original order quantity |
executedQty | Executed order quantity |
cummulativeQuoteQty | Cummulative quote quantity |
status | order status |
timeInForce | |
type | Order type |
side | order side |
Query Order
Response
{
"symbol": "LTCBTC",
"orderId": 1,
"orderListId": -1,
"clientOrderId": "myOrder1",
"price": "0.1",
"origQty": "1.0",
"executedQty": "0.0",
"cummulativeQuoteQty": "0.0",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.0",
"time": 1499827319559,
"updateTime": 1499827319559,
"isWorking": true,
"origQuoteOrderQty": "0.000000"
}
- GET
/api/v3/order
Permission: SPOT_DEAL_READ
Weight(IP): 2
Check an order's status.
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
symbol | String | YES | |
origClientOrderId | String | NO | |
orderId | String | NO | |
recvWindow | long | NO | |
timestamp | long | YES |
Response:
Name | Description |
---|---|
symbol | Symbol |
origClientOrderId | Original client order id |
orderId | order id |
clientOrderId | client order id |
price | Price |
origOty | Original order quantity |
executedQty | Executed order quantity |
cummulativeQuoteQty | Cummulative quote quantity |
status | order status |
timeInForce | |
type | Order type |
side | Order side |
stopPrice | stop price |
time | Order created time |
updateTime | Last update time |
isWorking | is orderbook |
Current Open Orders
Response
[
{
"symbol": "LTCBTC",
"orderId": 1,
"orderListId": -1,
"clientOrderId": "myOrder1",
"price": "0.1",
"origQty": "1.0",
"executedQty": "0.0",
"cummulativeQuoteQty": "0.0",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.0",
"icebergQty": "0.0",
"time": 1499827319559,
"updateTime": 1499827319559,
"isWorking": true,
"origQuoteOrderQty": "0.000000"
}
]
- GET
/api/v3/openOrders
Permission: SPOT_DEAL_READ
Weight(IP): 3
Get all open orders on a symbol. Careful when accessing this with no symbol.
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
symbol | string | YES | |
recvWindow | long | NO | |
timestamp | long | YES |
Response:
Name | Description |
---|---|
symbol | Symbol |
origClientOrderId | Original client order id |
orderId | order id |
clientOrderId | client order id |
price | Price |
origOty | Original order quantity |
executedQty | Executed order quantity |
cummulativeQuoteQty | Cummulative quote quantity |
status | order status |
timeInForce | |
type | Order type |
side | Order side |
stopPrice | stop price |
time | Order created time |
updateTime | Last update time |
isWorking | is orderbook |
All Orders
Response
[
{
"symbol": "LTCBTC",
"orderId": 1,
"orderListId": -1,
"clientOrderId": "myOrder1",
"price": "0.1",
"origQty": "1.0",
"executedQty": "0.0",
"cummulativeQuoteQty": "0.0",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY",
"stopPrice": "0.0",
"icebergQty": "0.0",
"time": 1499827319559,
"updateTime": 1499827319559,
"isWorking": true,
"origQuoteOrderQty": "0.000000"
}
]
- GET
/api/v3/allOrders
Permission: SPOT_DEAL_READ
Weight(IP): 10
Get all account orders including active, cancelled or completed orders(the query period is the latest 24 hours by default). You can query a maximum of the latest 7 days.
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
symbol | string | YES | Symbol |
startTime | long | NO | |
endTime | long | NO | |
limit | int | NO | Default 500; max 1000; |
recvWindow | long | NO | |
timestamp | long | YES |
Response:
Name | Description |
---|---|
symbol | Symbol |
origClientOrderId | Original client order id |
orderId | order id |
clientOrderId | client order id |
price | Price |
origOty | Original order quantity |
executedQty | Executed order quantity |
cummulativeQuoteQty | Cummulative quote quantity |
status | order status |
timeInForce | |
type | Order type |
side | Order side |
stopPrice | stop price |
time | Order created time |
updateTime | Last update time |
isWorking | is orderbook |
origQuoteOrderQty |
Account Information
Response
{
"canTrade": true,
"canWithdraw": true,
"canDeposit": true,
"updateTime": null,
"accountType": "SPOT",
"balances": [{
"asset": "NBNTEST",
"free": "1111078",
"locked": "33"
}, {
"asset": "MAIN",
"free": "1020000",
"locked": "0"
}],
"permissions": ["SPOT"]
}
- GET
/api/v3/account
Permission: SPOT_ACCOUNT_READ
Weight(IP): 10
Get current account information,rate limit:2 times/s.
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
recvWindow | long | NO | |
timestamp | long | YES |
Response:
Name | Description |
---|---|
canTrade | Can Trade |
canWithdraw | Can Withdraw |
canDeposit | Can Deposit |
updateTime | Update Time |
accountType | Account type |
balances | Balance |
asset | Asset coin |
free | Available coin |
locked | Forzen coin |
permissions | Permission |
Account Trade List
Response
[
{
"symbol": "BNBBTC",
"id": "fad2af9e942049b6adbda1a271f990c6",
"orderId": "bb41e5663e124046bd9497a3f5692f39",
"orderListId": -1,
"price": "4.00000100",
"qty": "12.00000000",
"quoteQty": "48.000012",
"commission": "10.10000000",
"commissionAsset": "BNB",
"time": 1499865549590,
"isBuyer": true,
"isMaker": false,
"isBestMatch": true,
"isSelfTrade": true,
"clientOrderId": null
}
]
- GET
/api/v3/myTrades
Permission: SPOT_ACCOUNT_READ
Weight(IP): 10
Get trades for a specific account and symbol,Only the transaction records in the past 1 month can be queried. If you want to view more transaction records, please use the export function on the web side, which supports exporting transaction records of the past 3 years at most.
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
symbol | string | YES | |
orderId | string | NO | order Id |
startTime | long | NO | |
endTime | long | NO | |
limit | int | NO | Default 100; max 100; |
recvWindow | long | NO | |
timestamp | long | YES |
Response:
Name | Description |
---|---|
symbol | |
id | deal id |
orderId | order id |
price | Price |
qty | Quantity |
quoteQty | Deal quantity |
time | Deal time |
commission | |
commissionAsset | |
time | trade time |
isBuyerMaker | |
isBestMatch | |
isSelfTrade | isSelfTrade |
clientOrderId | clientOrderId |
Enable MX Deduct
Enable or disable MX deduct for spot commission fee
Request
post api/v3/mxDeduct/enable
Response
{
"data":{
"mxDeductEnable":true
},
"code":0,
"msg":"success",
"timestamp":1669109672280
}
- POST
api/v3/mxDeduct/enable
Permission: SPOT_DEAL_WRITE
Weight(IP): 1
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
mxDeductEnable | boolean | yes | true:enable,false:disable |
recvWindow | long | no | recvWindow |
timestamp | long | yes | timestamp |
signature | string | yes | signature |
Response:
Name | Type | Description |
---|---|---|
mxDeductEnable | boolean | true:enable,false:disable |
Query MX Deduct Status
Request
get api/v3/mxDeduct/enable
Response
{
"data":{
"mxDeductEnable":false
},
"code":0,
"msg":"success",
"timestamp":1669109672717
}
- GET
api/v3/mxDeduct/enable
Permission: SPOT_DEAL_READ
Weight(IP): 1
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
recvWindow | long | no | recvWindow |
timestamp | long | yes | timestamp |
signature | string | yes | signature |
Response:
Name | Type | Description |
---|---|---|
mxDeductEnable | boolean | true:enable,false:disable |
Query Symbol Commission
request
get api/v3/tradeFee?symbol=MXUSDT×tamp={{timestamp}}&signature={{signature}}
return
{
"data":{
"makerCommission":0.003000000000000000,
"takerCommission":0.003000000000000000
},
"code":0,
"msg":"success",
"timestamp":1669109672717
}
HTTP请求
- GET
api/v3/tradeFee
Permission: SPOT_ACCOUNT_READ
Weight(IP): 20
request
Name | Type | Mandatory | Description |
---|---|---|---|
symbol | string | yes | symbol |
recvWindow | long | no | recvWindow |
timestamp | long | yes | timestamp |
signature | string | yes | signature |
return
Name | Type | Description |
---|---|---|
makerCommission | long | User Maker Commission |
takerCommission | long | User Taker Commission |
Wallet Endpoints
Query the currency information
Request
Get /api/v3/capital/config/getall
Response
[
{
"coin": "EOS",
"Name": "EOS",
"networkList": [
{
"coin": "EOS",
"depositDesc": null,
"depositEnable": true,
"minConfirm": 0,
"Name": "EOS",
"network": "EOS",
"withdrawEnable": false,
"withdrawFee": "0.000100000000000000",
"withdrawIntegerMultiple": null,
"withdrawMax": "10000.000000000000000000",
"withdrawMin": "0.001000000000000000",
"sameAddress": false,
"contract": "TN3W4H6rK2ce4vX9YnFQHwKENnHjoxbm9",
"withdrawTips": "Both a MEMO and an Address are required.",
"depositTips": "Both a MEMO and an Address are required.",
"netWork": "EOS"
},
{
"coin": "BTC",
"depositDesc": null,
"depositEnable": true,
"minConfirm": 0,
"Name": "BTC-BSC",
"network": "BEP20(BSC)",
"withdrawEnable": true,
"withdrawFee": "0.000010000000000000",
"withdrawIntegerMultiple": null,
"withdrawMax": "100.000000000000000000",
"withdrawMin": "0.000100000000000000",
"sameAddress": false,
"contract": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c",
"withdrawTips": null,
"depositTips": null,
"network": "BTC"
}
]
},
]
- GET
/api/v3/capital/config/getall
Permission: SPOT_WITHDRAW_READ
Weight(IP): 10
Query currency details and the smart contract address
Parameters:
None
Response:
Name | Description |
---|---|
depositEnable | depositEnable |
withdrawEnable | withdrawEnable |
withdrawFee | withdrawFee |
withdrawMax | Max withdraw amount |
withdrawMin | Min withdraw amount |
contract | coin contract |
withdrawTips | withdrawTips |
depositTips | depositTips |
network | withdraw network(previous params,offline soon) |
netWork | withdraw network(new params,for new withdraw endpoint) |
Withdraw(new)
Request
post /api/v3/capital/withdraw?coin=EOS&address=zzqqqqqqqqqq&amount=10&network=EOS&memo=MX10086×tamp={{timestamp}}&signature={{signature}}
Response
{
"id":"7213fea8e94b4a5593d507237e5a555b"
}
- POST
/api/v3/capital/withdraw
Permission: SPOT_WITHDRAW_WRITE
Weight(IP): 1
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
coin | string | YES | coin |
withdrawOrderId | string | NO | withdrawOrderId |
netWork | string | NO | withdraw network |
contractAddress | string | NO | coin contract address |
address | string | YES | withdraw address |
memo | string | NO | memo(If memo is required in the address, it must be passed in) |
amount | string | YES | withdraw amount |
remark | string | NO | remark |
timestamp | string | YES | timestamp |
signature | string | YES | signature |
Can get netWork
via endpoints Get /api/v3/capital/config/getall
's response params networkList
.
Response:
Name | Description |
---|---|
id | withdraw ID |
Cancel withdraw
Request
delete /api/v3/capital/withdraw?id=ca7bd51895134fb5bd749f1cf875b8af×tamp={{timestamp}}&signature={{signature}}
Response
{
"id": "ca7bd51895134fb5bd749f1cf875b8af"
}
- DELETE
/api/v3/capital/withdraw
Permission: SPOT_WITHDRAW_W
Weight(IP): 1
Request
Name | Type | Mandatory | Description |
---|---|---|---|
id | string | Yes | withdraw id |
Response
Name | Description |
---|---|
id | withdraw id |
Deposit History(supporting network)
Request
get /api/v3/capital/deposit/hisrec?coin=EOS×tamp={{timestamp}}&signature={{signature}}
Response
[
{
"amount": "50000",
"coin": "EOS",
"network": "EOS",
"status": 5,
"address": "0x20b7cf77db93d6ef1ab979c49142ec168427fdee",
"txId": "01391d1c1397ef0a3cbb3c7f99a90846f7c8c2a8dddcdcf84f46b530dede203e1bc804",
"insertTime": 1659513342000,
"unlockConfirm": "10",
"confirmTimes": "241",
"memo": "xxyy1122"
}
]
- GET
/api/v3/capital/deposit/hisrec
Permission: SPOT_WITHDRAW_READ
Weight(IP): 1
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
coin | string | NO | coin |
status | string | NO | status |
startTime | string | NO | default: 7 days ago from current time |
endTime | string | NO | default:current time |
limit | string | NO | default:1000,max:1000 |
timestamp | string | YES | timestamp |
signature | string | YES | signature |
- default return the records of the last 7 days.
- Ensure that the default timestamp of 'startTime' and 'endTime' does not exceed 7 days.
- can query 90 days data at most.
Response:
Name | Description |
---|---|
amount | deposit amount |
coin | coin |
network | deposit network |
status | deposit status,1:SMALL,2:TIME_DELAY,3:LARGE_DELAY, 4:PENDING,5:SUCCESS,6:AUDITING,7:REJECTED |
address | deposit adress |
addressTag | addressTag |
txId | txId |
insertTime | insertTime |
unlockConfirm | unlockConfirm |
confirmTimes | confirmTimes |
memo | memo |
Withdraw History (supporting network)
Request
get /api/v3/capital/withdraw/history?coin=USDT×tamp={{timestamp}}&signature={{signature}}
Response
[
{
"id": "bb17a2d452684f00a523c015d512a341",
"txId": null,
"coin": "EOS",
"network": "EOS",
"address": "zzqqqqqqqqqq",
"amount": "10",
"transferType": 0,
"status": 3,
"transactionFee": "0",
"confirmNo": null,
"applyTime": 1665300874000,
"remark": "",
"memo": "MX10086",
"transHash": "0x0ced593b8b5adc9f600334d0d7335456a7ed772ea5547beda7ffc4f33a065c",
"updateTime": 1712134082000,
"coinId": "128f589271cb495b03e71e6323eb7be",
"vcoinId": "af42c6414b9a46c8869ce30fd51660f"
}
]
- GET
/api/v3/capital/withdraw/history
Permission: SPOT_WITHDRAW_READ
Weight(IP): 1
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
coin | string | NO | coin |
status | string | NO | withdraw status |
limit | string | NO | default:1000, max:1000 |
startTime | string | NO | default: 7 days ago from current time |
endTime | string | NO | default:current time |
timestamp | string | YES | timestamp |
signature | string | YES | signature |
- default return the records of the last 7 days.
- Ensure that the default timestamp of 'startTime' and 'endTime' does not exceed 7 days.
- can query 90 days data at most.
- Supported multiple network coins's withdraw history may not return the 'network' field.
Response:
Name | Description |
---|---|
address | withdraw address |
amount | withdraw amount |
applyTime | apply time |
coin | coin |
id | withdraw id |
withdrawOrderId | withdrawOrderId |
network | withdraw network |
transferType | transferType, 0: outside transfer,1: inside transfer |
status | withdraw status,1:APPLY,2:AUDITING,3:WAIT,4:PROCESSING,5:WAIT_PACKAGING, 6:WAIT_CONFIRM,7:SUCCESS,8:FAILED,9:CANCEL,10:MANUAL |
transactionFee | transactionFee |
confirmNo | confirmNo |
txId | txId |
remark | remark |
memo | memo |
transHash | transaction Hash |
coinId | asset id |
vcoinId | currency id |
Generate deposit address (supporting network)
Request
post /api/v3/capital/deposit/address?coin=EOS&network=EOS×tamp={{timestamp}}&signature={{signature}}
Response
[
{
"coin": "USDT",
"network": "TRC20",
"address": "TXobiKkdciupZrhdvZyTSSLjE8CmZAufS",
"tag": null
},
{
"coin": "EOS",
"network": "EOS",
"address": "zzqqqqqqqqqq",
"memo": "MX10068"
}
]
- POST
/api/v3/capital/deposit/address
Permission: SPOT_WITHDRAW_WRITE
Weight(IP): 1
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
coin | string | YES | coin |
network | string | YES | deposit network |
timestamp | string | YES | timestamp |
signature | string | YES | signature |
Response:
Name | Description |
---|---|
address | deposit address |
coin | coin |
memo | memo |
network | network |
Deposit Address (supporting network)
Request
get /api/v3/capital/deposit/address?coin=USDT×tamp={{timestamp}}&signature={{signature}}
Response
[
{
"coin": "USDT",
"network": "TRC20",
"address": "TXobiKkdciupZrhdvZyTSSLjE8CmZAufS",
"memo": null
},
{
"coin": "USDT",
"network": "BEP20(BSC)",
"address": "0xebe4804f7ecc22d5011c42e6ea1f2e6c891d89b",
"memo": null
},
{
"coin": "USDT",
"network": "ERC20",
"address": "0x3f4d1f43761b52fd594e5a77cd83cab6955e85b",
"memo": null
}
]
- GET
/api/v3/capital/deposit/address
Permission: SPOT_WITHDRAW_READ
Weight(IP): 10
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
coin | string | YES | coin |
network | string | NO | deposit network |
timestamp | string | YES | timestamp |
signature | string | YES | signature |
Response:
Name | Description |
---|---|
address | deposit address |
coin | coin |
memo | memo |
network | network |
Withdraw Address (supporting network)
Request
get /api/v3/capital/withdraw/address?coin=USDT×tamp={{timestamp}}&signature={{signature}}
Response
{
"data": [
{
"coin": "USDT",
"network": "TRC20",
"address": "TArGWdTApuuZtiWMjupXqbZqQYsBTy126o",
"addressTag": "test",
"memo": null
},
{
"coin": "USDT",
"network": "BEP20(BSC)",
"address": "0xa82898C70BeB5E1b1621fdA62fD17Ba27227BBC5",
"addressTag": "usdt",
"memo": null
}
],
"totalRecords": 2,
"page": 1,
"totalPageNum": 1
}
- GET
/api/v3/capital/withdraw/address
Permission: SPOT_WITHDRAW_R
Weight(IP): 10
Request
Name | Type | Mandatory | Description |
---|---|---|---|
coin | string | No | coin |
page | number | No | page,default 1 |
limit | number | No | limit for per page |
timestamp | string | Yes | timestamp |
signature | string | Yes | signature |
Response
Name | Description |
---|---|
coin | coin |
network | network |
address | address |
addressTag | addressTag |
memo | memo |
totalRecords | totalRecords |
totalPageNum | totalPageNum |
page | page |
User Universal Transfer
Request
post /api/v3/capital/transfer?fromAccountType=FUTURES&toAccountType=SPOT&asset=USDT&amount=1×tamp={{timestamp}}&signature={{signature}}
Response
[
{
"tranId": "c45d800a47ba4cbc876a5cd29388319"
}
]
- POST
/api/v3/capital/transfer
Permission: SPOT_TRANSFER_WRITE
Weight(IP): 1
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
fromAccountType | string | YES | fromAccountType:"SPOT","FUTURES" |
toAccountType | string | YES | toAccountType:"SPOT","FUTURES" |
asset | string | YES | asset |
amount | string | YES | amount |
timestamp | string | YES | timestamp |
signature | string | YES | signature |
Response:
Name | Description |
---|---|
tranId | tranId |
Query User Universal Transfer History
Request
get /api/v3/capital/transfer
Response
[
{
"rows":[
{
"tranId":"11945860693",
"clientTranId":"test",
"asset":"BTC",
"amount":"0.1",
"fromAccountType":"SPOT",
"toAccountType":"FUTURE",
"fromSymbol":"SPOT",
"toSymbol":"FUTURE",
"status":"SUCCESS",
"timestamp":1544433325000
},
{
"tranId":"11945860693",
"clientTranId":"test",
"asset":"BTC",
"amount":"0.1",
"fromAccountType":"SPOT",
"toAccountType":"FUTURE",
"fromSymbol":"SPOT",
"toSymbol":"FUTURE",
"status":"SUCCESS",
"timestamp":1544433325000
}],
"total": 2,
}
]
- GET
/api/v3/capital/transfer
Permission: SPOT_TRANSFER_READ
Weight(IP): 1
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
fromAccountType | string | YES | fromAccountType:"SPOT","FUTURES" |
toAccountType | string | YES | toAccountType:"SPOT","FUTURES" |
startTime | string | NO | startTime |
endTime | string | NO | endTime |
page | string | NO | default:1 |
size | string | NO | default:10, max:100 |
timestamp | string | YES | timestamp |
signature | string | YES | signature |
- Only can quary the data for the last six months
- If 'startTime' and 'endTime' are not send, will return the last seven days' data by default
Response:
Name | Description |
---|---|
total | total |
tranId | tranId |
clientTranId | client ID |
asset | coin |
amount | amount |
fromAccountType | fromAccountType |
toAccountType | toAccountType |
symbol | symbol |
status | status |
timestamp | timestamp |
Query User Universal Transfer History (by tranId)
Request
get /api/v3/capital/transfer/tranId?tranId=cb28c88cd20c42819e4d5148d5fb5742×tamp={{timestamp}}&signature={{signature}}
Response
{
"tranId": "cb28c88cd20c42819e4d5148d5fb5742",
"clientTranId": null,
"asset": "USDT",
"amount": "10",
"fromAccountType": "SPOT",
"toAccountType": "FUTURES",
"symbol": null,
"status": "SUCCESS",
"timestamp": 1678603205000
}
- GET
/api/v3/capital/transfer/tranId
Permission: SPOT_TRANSFER_R
Weight(IP): 1
request
Name | Type | Mandatory | Description |
---|---|---|---|
tranId | string | YES | tranId |
timestamp | string | YES | timestamp |
signature | string | YES | signature |
Only can quary the data for the last six months
response
Name | Description |
---|---|
tranId | tranId |
clientTranId | client ID |
asset | coin |
amount | amount |
fromAccountType | fromAccountType |
toAccountType | toAccountType |
symbol | symbol |
status | status |
timestamp | timestamp |
Get Assets That Can Be Converted Into MX
Request
get {{api_url}}/api/v3/capital/convert/list?timestamp={{timestamp}}&signature={{signature}}
Response
[
{
"convertMx": "0.000009",
"convertUsdt": "0.000009",
"balance": "0.000441",
"asset": "USDT",
"code": "30021",
"message": "xxxxxxx"
},
{
"convertMx": "0.000009",
"convertUsdt": "0.000009",
"balance": "0.000441",
"asset": "BTC",
"code": "30021",
"message": "xxxxxxx"
}
]
- GET
/api/v3/capital/convert/list
Permission: SPOT_ACCOUNT_READ
Weight(IP): 1
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
timestamp | string | YES | timestamp |
signature | string | YES | signature |
Response:
Name | Description |
---|---|
convertMx | MX amount(Deducted commission fee) |
convertUsdt | usdt amount |
balance | Convertible balance |
asset | asset |
code | code |
message | message |
Dust Transfer
Request
post {{api_url}}/api/v3/capital/convert?asset=BTC,FIL,ETH×tamp={{timestamp}}&signature={{signature}}
Response
{
"successList":["ALGO","OMG"],
"failedList":[],
"totalConvert":"0.07085578",
"convertFee":"0.00071571"
}
- POST
/api/v3/capital/convert
Permission: SPOT_ACCOUNT_W
Weight(IP): 10
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
asset | string | YES | The asset being converted.(max 15 assert)eg:asset=BTC,FIL,ETH |
timestamp | string | YES | timestamp |
signature | string | YES | signature |
Response:
Name | Description |
---|---|
totalConvert | Convert MX amount(Deducted commission fee) |
convertFee | convertFee |
successList | convert success List |
failedList | convert failed List |
-asset | asset |
-message | message |
-code | code |
DustLog
Request
get {{api_url}}/api/v3/capital/convert?timestamp={{timestamp}}&signature={{signature}}
Response
{
"data": [
{
"totalConvert": "0.00885018",
"totalFee": "0.000177",
"convertTime": 1665360563000,
"convertDetails": [
{
"id": "3e52a99c5c3447b2af2163cd829dca28",
"convert": "0.00885018",
"fee": "0.000177",
"amount": "0.007130464601986065",
"time": 1665360563000,
"asset": "ETHF"
}
]
},
{
"totalConvert": "0.026782",
"totalFee": "0.00053562",
"convertTime": 1663631477000,
"convertDetails": [
{
"id": "6483bfb1766d41d8a4b6b6315ded6e99",
"convert": "0.02098255",
"fee": "0.00041965",
"amount": "0.00000098",
"time": 1663631477000,
"asset": "BTC"
},
{
"id": "f9e886f28c454f5dae45eec6a11f6c6a",
"convert": "0.00084019",
"fee": "0.0000168",
"amount": "2",
"time": 1663631477000,
"asset": "JAM"
}
]
}
],
"totalRecords": 4,
"page": 1,
"totalPageNum": 1
}
- GET
/api/v3/capital/convert
Permission: SPOT_DEAL_READ
Weight(IP): 1
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
startTime | long | NO | startTime |
endTime | long | NO | endTime |
page | int | NO | page,default 1 |
limit | int | NO | limit,default 1; max 1000 |
timestamp | string | YES | timestamp |
signature | string | YES | signature |
Response:
Name | Type | Description |
---|---|---|
totalConvert | string | Convert MX amount(Deducted commission fee) |
totalFee | string | Total fee amount |
convertTime | long | Convert time |
convertDetails | object | Convert details |
id | string | Convert id |
convert | string | Convert mx |
fee | string | fee amount |
amount | string | amount |
time | long | Convert time |
asset | string | asset |
page | int | page |
totalRecords | int | totalRecords |
totalPage | int | totalPage |
Internal Transfer
Request
post /api/v3/capital/transfer/internal?×tamp={{timestamp}}&signature={{signature}}
Response
{
"tranId": "c45d800a47ba4cbc876a5cd29388319"
}
- POST
/api/v3/capital/transfer/internal
Permission: SPOT_WITHDRAW_WRITE
Weight(IP): 1
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
toAccountType | string | Yes | toAccountTyp:EMAIL/UID/MOBILE |
toAccount | string | Yes | toAccount:EMAIL/UID/MOBILE |
areaCode | string | No | areaCode of mobile |
asset | string | Yes | asset |
amount | string | Yes | amount |
timestamp | string | Yes | timestamp |
signature | string | Yes | signature |
Response
Name | Description |
---|---|
tranId | tranId |
Query Internal Transfer history
Request
get /api/v3/capital/transfer/internal?×tamp={{timestamp}}&signature={{signature}}
Response
{
"page": 1,
"totalRecords": 1,
"totalPageNum": 1,
"data": [
{
"tranId":"11945860693",
"asset":"BTC",
"amount":"0.1",
"toAccountType":"EMAIL",
"toAccount":"156283619@outlook.com",
"fromAccount":"156283618@outlook.com",
"status":"SUCCESS",
"timestamp":1544433325000
},
{
"tranId":"",
"asset":"BTC",
"amount":"0.8",
"toAccountType":"UID",
"fromAccount":"156283619@outlook.com",
"toAccount":"87658765",
"status":"SUCCESS",
"timestamp":1544433325000
}
]
}
- GET
/api/v3/capital/transfer/internal
Permission: SPOT_WITHDRAW_READ
Weight(IP): 1
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
startTime | long | No | |
endTime | long | No | |
page | int | No | default 1 |
limit | int | No | default 10 |
tranId | string | No | tranid |
timestamp | string | Yes | timestamp |
signature | string | Yes | signature |
If startTime and endTime are not provided, will default to returning data from the last 7 days.
Response
Name | Description |
---|---|
page | page |
totalRecords | totalRecords |
totalPage | totalPage |
tranId | tranId |
asset | asset |
amount | amount |
fromAccountType | fromAccountType |
toAccountType | toAccountType |
status | status |
timestamp | timestamp |
Withdraw(previous,offline soon)
Request
post /api/v3/capital/withdraw/apply?coin=EOS&address=zzqqqqqqqqqq&amount=10&network=EOS&memo=MX10086×tamp={{timestamp}}&signature={{signature}}
Response
[
{
"id":"7213fea8e94b4a5593d507237e5a555b"
}
]
- POST
/api/v3/capital/withdraw/apply
Permission: SPOT_WITHDRAW_WRITE
Weight(IP): 1
Parameters:
Name | Type | Mandatory | Description |
---|---|---|---|
coin | string | YES | coin |
withdrawOrderId | string | NO | withdrawOrderId |
network | string | NO | withdraw network |
address | string | YES | withdraw address |
memo | string | NO | memo(If memo is required in the address, it must be passed in) |
amount | string | YES | withdraw amount |
remark | string | NO | remark |
timestamp | string | YES | timestamp |
signature | string | YES | signature |
Can get network
via endpoints Get /api/v3/capital/config/getall
's response params networkList
.
Response:
Name | Description |
---|---|
id | withdraw ID |
Websocket Market Streams
- The base endpoint is: ws://wbs-api.mexc.com/ws
- Each connection to wbs.mexc.com is valid for no more than 24 hours. Please handle disconnections and reconnections properly.
- All trading pair names in the symbol must be in uppercase. For example:
spot@public.deals.v3.api.pb@<symbol>
Example:spot@public.deals.v3.api.pb@BTCUSDT
- If there is no valid subscription on the websocket, the server will actively disconnect after 30 seconds. If the subscription is successful but there is no data flow, the server will disconnect after one minute. The client can send a ping to keep the connection alive.
- One ws connection supports a maximum of 30 subscriptions.
- Please process the data according to the parameters returned in the documentation. Parameters not returned in the documentation will be optimized soon, so please do not use them.
Live Subscription/Unsubscription to Data Streams
- The following data can be sent via websocket to subscribe or unsubscribe from data streams. Examples are provided below.
- The
id
in the response is an unsigned integer and serves as the unique identifier for communication. - If the
msg
in the response matches the corresponding request field, it indicates that the request was sent successfully.
Protocol Buffers Integration
The current websocket push uses the protobuf format. The specific integration process is as follows:
1.PB File Definition
The PB definition files can be obtained via the provided link:https://github.com/mexcdevelop/websocket-proto
2.Generate Deserialization Code
Use the tool available at https://github.com/protocolbuffers/protobuf to compile the .proto files and generate deserialization code.
Java
protoc *.proto --java_out=python custom_path
Python
protoc *.proto --python_out=python custom_path
Others
Multiple languages are supported, including C++, C#, Go, Ruby, PHP, JS, etc. For details, see [https://github.com/protocolbuffers/protobuf](https://github.com/protocolbuffers/protobuf).
3.Data Deserialization
Use the code generated in the previous step to deserialize the data.
Java
Include the protobuf-java dependency:
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>{protobuf.version}</version> <!-- Specify the version as per your project requirements -->
</dependency>
//Parsing example:
// Assemble the object
PushDataV3ApiWrapper pushDataV3ApiWrapper = PushDataV3ApiWrapper.newBuilder()
.setChannel("spot@public.aggre.depth.v3.api.pb")
.setSymbol("BTCUSDT")
.setSendTime(System.currentTimeMillis())
.build();
// Serialize to a byte array
byte[] serializedData = pushDataV3ApiWrapper.toByteArray();
// Deserialize into a PushDataV3ApiWrapper object
PushDataV3ApiWrapper resultV3 = PushDataV3ApiWrapper.parseFrom(serializedData);
Python
#Parsing example:
import PushDataV3ApiWrapper_pb2
# Assemble the object
pushData = PushDataV3ApiWrapper_pb2.PushDataV3ApiWrapper()
pushData.channel = 'spot@public.aggre.depth.v3.api.pb'
pushData.symbol = 'BTCUSDT'
# Serialize to a string
serializedData = pushData.SerializeToString()
# Deserialize into a PushDataV3ApiWrapper object
result = PushDataV3ApiWrapper_pb2.PushDataV3ApiWrapper()
result.ParseFromString(serializedData)
print(result)
Subscribe to a Data Stream
Subscription Channel Response
{
"id": 0,
"code": 0,
"msg": "spot@public.deals.v3.api.pb@BTCUSDT"
}
- Request
{ "method": "SUBSCRIPTION", "params": ["spot@public.deals.v3.api.pb@BTCUSDT"] }
Unsubscribe from a Data Stream
Unsubscription Response
{
"id": 0,
"code": 0,
"msg": "spot@public.increase.depth.v3.api.pb@BTCUSDT"
}
- Request
{ "method": "UNSUBSCRIPTION", "params": ["spot@public.deals.v3.api.pb@BTCUSDT"] }
PING/PONG Mechanism
PING/PONG Response
{
"id": 0,
"code": 0,
"msg": "PONG"
}
- Request
{"method": "PING"}
Trade Streams
Request:
{
"method": "SUBSCRIPTION",
"params": [
"spot@public.aggre.deals.v3.api.pb@100ms@BTCUSDT"
]
}
Response:
{
"channel": "spot@public.aggre.deals.v3.api.pb@100ms@BTCUSDT",
"publicdeals": {
"dealsList": [
{
"price": "93220.00", // Trade price
"quantity": "0.04438243", // Trade quantity
"tradetype": 2, // Trade type (1: Buy, 2: Sell)
"time": 1736409765051 // Trade time
}
],
"eventtype": "spot@public.aggre.deals.v3.api.pb@100ms" // Event type
},
"symbol": "BTCUSDT", // Trading pair
"sendtime": 1736409765052 // Event time
}
Request Parameter: spot@public.aggre.deals.v3.api.pb@(100ms|10ms)@<symbol>
The Trade Streams push raw trade information; each trade has a unique buyer and seller
Response Parameters:
Parameter | Data Type | Description |
---|---|---|
dealsList | array | Trade information |
price | string | Trade price |
quantity | string | Trade quantity |
tradetype | int | Trade type (1: Buy, 2: Sell) |
time | long | Trade time |
eventtype | string | Event type |
symbol | string | Trading pair |
sendtime | long | Event time |
K-line Streams
Request:
{
"method": "SUBSCRIPTION",
"params": [
"spot@public.kline.v3.api.pb@BTCUSDT@Min15"
]
}
Response:
{
"channel": "spot@public.kline.v3.api.pb@BTCUSDT@Min15",
"publicspotkline": {
"interval": "Min15", // K-line interval
"windowstart": 1736410500, // Start time of the K-line
"openingprice": "92925", // Opening trade price during this K-line
"closingprice": "93158.47", // Closing trade price during this K-line
"highestprice": "93158.47", // Highest trade price during this K-line
"lowestprice": "92800", // Lowest trade price during this K-line
"volume": "36.83803224", // Trade volume during this K-line
"amount": "3424811.05", // Trade amount during this K-line
"windowend": 1736411400 // End time of the K-line
},
"symbol": "BTCUSDT",
"symbolid": "2fb942154ef44a4ab2ef98c8afb6a4a7",
"createtime": 1736410707571
}
The Kline/Candlestick Stream push updates to the current klines/candlestick every second.
Request Parameter: spot@public.kline.v3.api.pb@<symbol>@<interval>
Response Parameters:
Parameter | Data Type | Description |
---|---|---|
publicspotkline | object | K-line information |
interval | string | K-line interval |
windowstart | long | Start time of the K-line |
openingprice | bigDecimal | Opening trade price during this K-line |
closingprice | bigDecimal | Closing trade price during this K-line |
highestprice | bigDecimal | Highest trade price during this K-line |
lowestprice | bigDecimal | Lowest trade price during this K-line |
volume | bigDecimal | Trade volume during this K-line |
amount | bigDecimal | Trade amount during this K-line |
windowend | long | End time of the K-line |
symbol | string | Trading pair |
symbolid | string | Trading pair ID |
createtime | long | Event time |
K-line Interval Parameters:
- Min: Minutes; Hour: Hours; Day: Days; Week: Weeks; M: Month
Available intervals:
- Min1
- Min5
- Min15
- Min30
- Min60
- Hour4
- Hour8
- Day1
- Week1
- Month1
Diff.Depth Stream
Request:
{
"method": "SUBSCRIPTION",
"params": [
"spot@public.aggre.depth.v3.api.pb@100ms@BTCUSDT"
]
}
Response:
{
"channel": "spot@public.aggre.depth.v3.api.pb@100ms@BTCUSDT",
"publicincreasedepths": {
"asksList": [], // asks: Sell orders
"bidsList": [ // bids: Buy orders
{
"price": "92877.58", // Price level of change
"quantity": "0.00000000" // Quantity
}
],
"eventtype": "spot@public.aggre.depth.v3.api.pb@100ms", // Event type
"version": "36913293511" // Version number
},
"symbol": "BTCUSDT", // Trading pair
"sendtime": 1736411507002 // Event time
}
If the order quantity (quantity
) for a price level is 0, it indicates that the order at that price has been canceled or executed, and that price level should be removed.
Request Parameter: spot@public.aggre.depth.v3.api.pb@(100ms|10ms)@<symbol>
Response Parameters:
Parameter | Data Type | Description |
---|---|---|
price | string | Price level of change |
quantity | string | Quantity |
eventtype | string | Event type |
version | string | Version number |
symbol | string | Trading pair |
sendtime | long | Event time |
Diff.Depth Stream(Batch Aggregation)
Request:
{
"method": "SUBSCRIPTION",
"params": [
"spot@public.increase.depth.batch.v3.api.pb@BTCUSDT"
]
}
Response:
{
"channel" : "spot@public.increase.depth.batch.v3.api.pb@BTCUSDT",
"symbol" : "BTCUSDT",
"sendTime" : "1739502064578",
"publicIncreaseDepthsBatch" : {
"items" : [ {
"asks" : [ ],
"bids" : [ {
"price" : "96578.48",
"quantity" : "0.00000000"
} ],
"eventType" : "",
"version" : "39003145507"
}, {
"asks" : [ ],
"bids" : [ {
"price" : "96578.90",
"quantity" : "0.00000000"
} ],
"eventType" : "",
"version" : "39003145508"
}, {
"asks" : [ ],
"bids" : [ {
"price" : "96579.31",
"quantity" : "0.00000000"
} ],
"eventType" : "",
"version" : "39003145509"
}, {
"asks" : [ ],
"bids" : [ {
"price" : "96579.84",
"quantity" : "0.00000000"
} ],
"eventType" : "",
"version" : "39003145510"
}, {
"asks" : [ ],
"bids" : [ {
"price" : "96576.69",
"quantity" : "4.88725694"
} ],
"eventType" : "",
"version" : "39003145511"
} ],
"eventType" : "spot@public.increase.depth.batch.v3.api.pb"
}
}
In the batch aggregation version, if the number of entries exceeds 5 or the time interval exceeds 5ms, the data is pushed once. If the order quantity for a price level is 0, it indicates that the order at that price has been canceled or executed, and that price level should be removed.
Request Parameter: spot@public.increase.depth.batch.v3.api.pb@<symbol>
Response Parameters:
Parameter | Data Type | Description |
---|---|---|
price | string | Price level of change |
quantity | string | Quantity |
eventtype | string | Event type |
version | string | Version number |
symbol | string | Trading pair |
sendtime | long | Event time |
Partial Book Depth Streams
This stream pushes limited level depth information. The “levels” indicate the number of order levels for buy and sell orders, which can be 5, 10, or 20 levels.
Request:
{
"method": "SUBSCRIPTION",
"params": [
"spot@public.limit.depth.v3.api.pb@BTCUSDT@5"
]
}
Response:
{
"channel": "spot@public.limit.depth.v3.api.pb@BTCUSDT@5",
"publiclimitdepths": {
"asksList": [ // asks: Sell orders
{
"price": "93180.18", // Price level of change
"quantity": "0.21976424" // Quantity
}
],
"bidsList": [ // bids: Buy orders
{
"price": "93179.98",
"quantity": "2.82651000"
}
],
"eventtype": "spot@public.limit.depth.v3.api.pb", // Event type
"version": "36913565463" // Version number
},
"symbol": "BTCUSDT", // Trading pair
"sendtime": 1736411838730 // Event time
}
Request Parameter: spot@public.limit.depth.v3.api.pb@<symbol>@<level>
Response Parameters:
Parameter | Data Type | Description |
---|---|---|
price | string | Price level of change |
quantity | string | Quantity |
eventtype | string | Event type |
version | string | Version number |
symbol | string | Trading pair |
sendtime | long | Event time |
Individual Symbol Book Ticker Streams
Pushes any update to the best bid or ask's price or quantity in real-time for a specified symbol.
Request:
{
"method": "SUBSCRIPTION",
"params": [
"spot@public.aggre.bookTicker.v3.api.pb@100ms@BTCUSDT"
]
}
Response:
{
"channel": "spot@public.aggre.bookTicker.v3.api.pb@100ms@BTCUSDT",
"publicbookticker": {
"bidprice": "93387.28", // Best bid price
"bidquantity": "3.73485", // Best bid quantity
"askprice": "93387.29", // Best ask price
"askquantity": "7.669875" // Best ask quantity
},
"symbol": "BTCUSDT", // Trading pair
"sendtime": 1736412092433 // Event time
}
Request Parameter: spot@public.aggre.bookTicker.v3.api.pb@(100ms|10ms)@<symbol>
Response Parameters:
Parameter | Data Type | Description |
---|---|---|
bidprice | string | Best bid price |
bidquantity | string | Best bid quantity |
askprice | string | Best ask price |
askquantity | string | Best ask quantity |
symbol | string | Trading pair |
sendtime | long | Event time |
Individual Symbol Book Ticker Streams(Batch Aggregation)
This batch aggregation version pushes the best order information for a specified trading pair.
Request:
{
"method": "SUBSCRIPTION",
"params": [
"spot@public.bookTicker.batch.v3.api.pb@BTCUSDT"
]
}
Response:
{
"channel" : "spot@public.bookTicker.batch.v3.api.pb@BTCUSDT",
"symbol" : "BTCUSDT",
"sendTime" : "1739503249114",
"publicBookTickerBatch" : {
"items" : [ {
"bidPrice" : "96567.37",
"bidQuantity" : "3.362925",
"askPrice" : "96567.38",
"askQuantity" : "1.545255"
} ]
}
}
Request Parameter: spot@public.bookTicker.batch.v3.api.pb@<symbol>
Response Parameters:
Parameter | Data Type | Description |
---|---|---|
bidprice | string | Best bid price |
bidquantity | string | Best bid quantity |
askprice | string | Best ask price |
askquantity | string | Best ask quantity |
symbol | string | Trading pair |
sendtime | long | Event time |
How to Properly Maintain a Local Copy of the Order Book
- Subscribe to
spot@public.aggre.depth.v3.api.pb@(100ms|10ms)@<symbol>
to get full amount of depth information, save the current version. - Subscribe to ws depth information, if the received data version more than the current version after update, the later received update cover the previous one at the same price.
- Through https://api.mexc.com/api/v3/depth?symbol=MXBTC&limit=1000 to get the latest 1000 depth snapshots.
- Discard version data from the snapshot obtained by Version (less than step 3 )for the same price in the current cached depth information
- Update the contents of the deep snapshots to the local cache and keep updating from the event received by the WS
- The version of each new event should be exactly equal to version+1 of the previous event, otherwise packet loss may occur. In case of packet loss or discontinuous version of the event retrieved, please re-initialize from Step 3.
- The amount of hanging orders in each event represents the absolute value of the current hanging orders of the price, rather than the relative change.
- If the amount of a hanging order corresponding to a certain price is 0, it means that the hanging order at that price has been cancelled, the price should be removed.
Note: Because the depth snapshot has a limitation on the number of price levels, any price levels not included in the initial snapshot and without quantity changes will not appear in the incremental depth updates. Therefore, even after applying all incremental updates, these price levels may not be visible in your local order book, and there may be some discrepancies between your local order book and the real order book. However, for most use cases, a depth limit of 5000 levels is sufficient to understand the market and trading activity effectively.
Websocket User Data Streams
- The base API endpoint is: https://api.mexc.com
- A User Data Stream
listenKey
is valid for 60 minutes after creation. - Doing a
PUT
on alistenKey
will extend its validity for 60 minutes. - Doing a
DELETE
on alistenKey
will close the stream and invalidate thelistenKey
. - websocket baseurl: ws://wbs-api.mexc.com/ws
- User Data Streams are accessed at /ws?listenKey=listenKey
For example: ws://wbs-api.mexc.com/ws?listenKey=pqia91ma19a5s61cv6a81va65sd099v8a65a1a5s61cv6a81va65sdf19v8a65a1 - A single connection is only valid for 24 hours; expect to be disconnected at the 24 hour mark.
- Each UID can apply for a maximum of 60 listen keys (excluding invalid listen keys).
- Each listen key maximum support 5 websocket connection (which means each uid can applies for a maximum of 60 listen keys and 300 ws links).
Listen Key
Generate Listen Key
Response
{
"listenKey": "pqia91ma19a5s61cv6a81va65sdf19v8a65a1a5s61cv6a81va65sdf19v8a65a1"
}
Required Permissions: Account Read / SPOT_ACCOUNT_R
HTTP Request
- POST
/api/v3/userDataStream
Starts a new data stream. The stream will close 60 minutes after creation unless a keepalive is sent.
Parameters:
NONE
Get Valid Listen Keys
Response
{
"listenKey": [
"c285bc363cfeac6646576b801a2ed1f9523310fcda9e927e509aaaaaaaaaaaaaa",
"87cb8da0fb150e36c232c2c060bc3848693312008caf3acae73bbbbbbbbbbbb",
"dc027517ebee2328b75268461a9df4d21addfac6ebebab8f5a6cccccccccccccc"
]
}
Required Permissions: Account Read / SPOT_ACCOUNT_R
HTTP Request
- GET
/api/v3/userDataStream
Retrieves all currently valid listen keys.
Parameters:
NONE
Extend Listen Key Validity
Response
{
"listenKey": "pqia91ma19a5s61cv6a81va65sdf19v8a65a1a5s61cv6a81va65sdf19v8a65a1"
}
HTTP Request
- PUT
/api/v3/userDataStream
Extends the validity to 60 minutes from the time of this call. It is recommended to send a request every 30 minutes.
Request Parameters:
Parameter | Data Type | Required | Description |
---|---|---|---|
listenKey | string | Yes |
Close Listen Key
Response
{
"listenKey": "pqia91ma19a5s61cv6a81va65sdf19v8a65a1a5s61cv6a81va65sdf19v8a65a1"
}
HTTP Request
- DELETE
/api/v3/userDataStream
Closes the user data stream.
Request Parameters:
Parameter | Data Type | Required | Description |
---|---|---|---|
listenKey | string | Yes |
Spot Account Update
After a successful subscription, whenever the account balance or available balance changes, the server will push updates of the account assets.
Request:
{
"method": "SUBSCRIPTION",
"params": [
"spot@private.account.v3.api.pb"
]
}
Response:
{
channel: "spot@private.account.v3.api.pb",
createTime: 1736417034305,
sendTime: 1736417034307,
privateAccount {
vcoinName: "USDT",
coinId: "128f589271cb4951b03e71e6323eb7be",
balanceAmount: "21.94210356004384",
balanceAmountChange: "10",
frozenAmount: "0",
frozenAmountChange: "0",
type: "CONTRACT_TRANSFER",
time: 1736416910000
}
}
Request Parameter: spot@private.account.v3.api.pb
Response Parameters:
Parameter | Data Type | Description |
---|---|---|
privateAccount | json | Account information |
vcoinName | string | Asset name |
balanceAmount | string | Available balance |
balanceAmountChange | string | Change in available balance |
frozenAmount | string | Frozen balance |
frozenAmountChange | string | Change in frozen balance |
type | string | Change type (see details) |
time | long | Settlement time |
Spot Account Deals
Request:
{
"method": "SUBSCRIPTION",
"params": [
"spot@private.deals.v3.api.pb"
]
}
Response:
{
channel: "spot@private.deals.v3.api.pb",
symbol: "MXUSDT",
sendTime: 1736417034332,
privateDeals {
price: "3.6962",
quantity: "1",
amount: "3.6962",
tradeType: 2,
tradeId: "505979017439002624X1",
orderId: "C02__505979017439002624115",
feeAmount: "0.0003998377369698171",
feeCurrency: "MX",
time: 1736417034280
}
}
Request Parameter: spot@private.deals.v3.api.pb
Response Parameters:
Parameter | Data Type | Description |
---|---|---|
symbol | string | Trading pair |
sendTime | long | Event time |
privateDeals | json | Account trade information |
price | string | Trade price |
quantity | string | Trade quantity |
amount | string | Trade amount |
tradeType | int | Trade type (1: Buy, 2: Sell) |
tradeId | string | Trade ID |
orderId | string | Order ID |
clientOrderId | string | User-defined order ID |
feeAmount | string | Fee amount |
feeCurrency | string | Fee currency |
time | long | Trade time |
Spot Account Orders
Request:
{
"method": "SUBSCRIPTION",
"params": [
"spot@private.orders.v3.api.pb"
]
}
Request Parameter: spot@private.orders.v3.api.pb
Response:
{
channel: "spot@private.orders.v3.api.pb",
symbol: "MXUSDT",
sendTime: 1736417034281,
privateOrders {
id: "C02__505979017439002624115",
price: "3.5121",
quantity: "1",
amount: "0",
avgPrice: "3.6962",
orderType: 5,
tradeType: 2,
remainAmount: "0",
remainQuantity: "0",
lastDealQuantity: "1",
cumulativeQuantity: "1",
cumulativeAmount: "3.6962",
status: 2,
createTime: 1736417034259
}
}
Response Parameters:
Parameter | Data Type | Description |
---|---|---|
symbol | string | Trading pair |
sendTime | long | Event time |
privateOrders | json | Account order information |
id | string | Order ID |
price | bigDecimal | Order price |
quantity | bigDecimal | Order quantity |
amount | bigDecimal | Total order amount |
avgPrice | bigDecimal | Average trade price |
orderType | int | Order type: LIMIT_ORDER (1), POST_ONLY (2), IMMEDIATE_OR_CANCEL (3), FILL_OR_KILL (4), MARKET_ORDER (5); Stop loss/take profit (100) |
tradeType | int | Trade type (1: Buy, 2: Sell) |
remainAmount | bigDecimal | Remaining amount |
remainQuantity | bigDecimal | Remaining quantity |
cumulativeQuantity | bigDecimal | Cumulative trade quantity |
cumulativeAmount | bigDecimal | Cumulative trade amount |
status | int | Order status: 1: Not traded, 2: Fully traded, 3: Partially traded, 4: Canceled, 5: Partially canceled |
createTime | long | Order creation time |
Rebate Endpoints
Get Rebate History Records
request
get /api/v3/rebate/taxQuery?timestamp={{timestamp}}&signature={{signature}}
response
{
"page": 1,
"totalRecords": 1,
"totalPageNum": 1,
"data": [
{
"spot": "0.00082273",
"futures":"0.00022487",
"total": "0.00012126",
"uid": "221827",
"account": "154****291@qq.com",
"inviteTime": 1637651320000
},
...
{
"spot": "0.00082273",
"futures":"0.00022487",
"total": "0.00012126",
"uid": "82937",
"account": "338****291@qq.com",
"inviteTime": 1637651320000
}
]
}
Http Request
- GET
/api/v3/rebate/taxQuery
Permission: SPOT_ACCOUNT_READ
Weight(IP): 1
Request
Name | Type | Mandatory | Description |
---|---|---|---|
startTime | long | NO | |
endTime | long | NO | |
page | int | NO | default 1 |
recvWindow | long | NO | |
timestamp | long | YES | |
signature | string | YES |
Response
Name | Type | Description |
---|---|---|
spot | string | spot rebate,unit:usdt |
futures | string | futures rebate,unit:usdt |
total | string | total rebate,unit:usdt |
uid | string | Invitee uid |
account | string | Invitee account |
inviteTime | long | invite time |
If startTime and endTime are not sent, the recent 1 year's data will be returned.
Get Rebate Records Detail
request
get /api/v3/rebate/detail?timestamp={{timestamp}}&signature={{signature}}
response
{
"page": 1,
"totalRecords": 1,
"totalPageNum": 1,
"data": [
{
"asset": "USDT",
"type": "spot",
"rate": "0.3",
"amount": "0.0001126",
"uid": "2293729101827",
"account": "154****291@qq.com",
"tradeTime": 1637651320000,
"updateTime": 1637651320000
},
...
{
"asset": "ETH",
"type": "spot",
"rate": "0.3",
"amount": "0.00000056",
"uid": "22937291018263",
"account": "154****291@qq.com",
"tradeTime": 1637651320000,
"updateTime": 1637928379000
}
]
}
Http Request
- GET
/api/v3/rebate/detail
Permission: SPOT_ACCOUNT_READ
Weight(IP): 1
Request
Name | Type | Mandatory | Description |
---|---|---|---|
startTime | long | NO | |
endTime | long | NO | |
page | int | NO | default 1 |
recvWindow | long | NO | |
timestamp | long | YES | |
signature | string | YES |
Response
Name | Type | Description |
---|---|---|
asset | string | rebate asset |
type | string | rebate type: spot futures |
rate | string | rebate rate |
amount | string | rebate amount |
uid | string | Invitee uid |
account | string | Invitee account |
tradeTime | long | trade time |
updateTime | long | update time |
If startTime and endTime are not sent, the recent 1 year's data will be returned.
Get Self Rebate Records Detail
request
get /api/v3/rebate/detail/kickback?timestamp={{timestamp}}&signature={{signature}}
response
{
"page": 1,
"totalRecords": 27,
"totalPageNum": 3,
"data": [
{
"asset": "USDT",
"type": "spot",
"rate": "0.3",
"amount": "0.0001126",
"uid": "2293729101827",
"account": "154****291@qq.com",
"tradeTime": 1637651320000,
"updateTime": 1637651320000
},
...
{
"asset": "ETH",
"type": "spot",
"rate": "0.3",
"amount": "0.00000056",
"uid": "22937291018263",
"account": "154****291@qq.com",
"tradeTime": 1637651320000,
"updateTime": 1637928379000
}
]
}
Http Request
- GET
/api/v3/rebate/detail/kickback
Permission: SPOT_ACCOUNT_READ
Weight(IP): 1
Request
Name | Type | Mandatory | Description |
---|---|---|---|
startTime | long | NO | |
endTime | long | NO | |
page | int | NO | default 1 |
recvWindow | long | NO | |
timestamp | long | YES | |
signature | string | YES |
Response
Name | Type | Description |
---|---|---|
asset | string | rebate asset |
type | string | rebate type: spot futures |
rate | string | rebate rate |
amount | string | rebate amount |
uid | string | Invitee uid |
account | string | Invitee account |
tradeTime | long | trade time |
updateTime | long | update time |
If startTime and endTime are not sent, the recent 1 year's data will be returned.
Query ReferCode
request
get /api/v3/rebate/referCode?timestamp={{timestamp}}&signature={{signature}}
response
{
"referCode": "in3jd"
}
HTTP Request
- GET
/api/v3/rebate/referCode
Permission: SPOT_ACCOUNT_READ
Weight(IP): 1
Request
Name | Type | Mandatory | Description |
---|---|---|---|
recvWindow | long | NO | |
timestamp | long | YES | |
signature | string | YES |
Response
Name | Type | Description |
---|---|---|
referCode | string | referCode |
Get Affiliate Commission Record (affiliate only)
request
get /api/v3/rebate/affiliate/commission?timestamp={{timestamp}}&signature={{signature}}
response
{
"success": true,
"code": 0,
"message": null,
"data": {
"pageSize": 10,
"totalCount": 2,
"totalPage": 1,
"currentPage": 1,
"usdtAmount": null,
"totalCommissionUsdtAmount": null,
"totalTradeUsdtAmount": null,
"finished": null,
"resultList": [
{
"uid": "27121050",
"account": "",
"inviteCode": "mexc-12345",
"inviteTime": 1637145911,
"spot": "0.00000000",
"etf": "0.21131086",
"futures": "0.74546367",
"total": "0.95677453",
"deposit": null,
"firstDepositTime": null
},
{
"uid": "52813530",
"account": "",
"inviteCode": "mexc-12345",
"inviteTime": 1637145478,
"spot": "1.25023599",
"etf": "0.00000000",
"futures": "0.00000000",
"total": "1.25023599",
"deposit": "26000.00000000",
"firstDepositTime": "2021-11-19"
}
]
}
}
HTTP Request
- GET
/api/v3/rebate/affiliate/commission
Permission: SPOT_ACCOUNT_READ
Weight(IP): 1
Request
Name | Type | Mandatory | Description |
---|---|---|---|
startTime | long | No | startTime |
endTime | long | No | endTime |
inviteCode | string | No | invite Code |
page | int | No | page |
pageSize | int | No | pageSize,default:10 |
timestamp | long | Yes | timestamp |
signature | string | Yes | signature |
Response
Name | Type | Description |
---|---|---|
uid | string | user uid |
account | string | account |
inviteCode | string | inviteCode |
inviteTime | long | inviteTime |
spot | string | spot commission(usdt) |
etf | string | ETF commission(usdt) |
futures | string | futures commission(usdt) |
total | string | total commission(usdt) |
deposit | string | deposit amount(usdt) |
firstDepositTime | string | first Deposit Time |
If startTime and endTime are not sent, default return the data of the last six months .
Get Affiliate Withdraw Record (affiliate only)
request
get /api/v3/rebate/affiliate/withdraw?timestamp={{timestamp}}&signature={{signature}}
response
{
"success": true,
"code": 0,
"message": null,
"data": {
"pageSize": 10,
"totalCount": 15,
"totalPage": 2,
"currentPage": 1,
"resultList": [
{
"withdrawTime": 1682321417000,
"asset": "USDT",
"amount": "0.00001000"
},
{
"withdrawTime": 1682321405000,
"asset": "USDC",
"amount": "0.00001000"
}
]
}
}
HTTP Request
- GET
/api/v3/rebate/affiliate/withdraw
Permission: SPOT_ACCOUNT_READ
Weight(IP): 1
Request
Name | Type | Mandatory | Description |
---|---|---|---|
startTime | long | No | startTime |
endTime | long | No | endTime |
page | int | No | page |
pageSize | int | No | pageSize,default: 10 |
timestamp | long | Yes | timestamp |
signature | string | Yes | signature |
Response
Name | Type | Description |
---|---|---|
withdrawTime | long | withdrawTime |
asset | string | withdraw asset |
amount | string | withdraw amount |
If startTime and endTime are not sent, the data of the last six months is returned.
Get Affiliate Commission Detail Record (affiliate only)
request
get /api/v3/rebate/affiliate/commission/detail?timestamp={{timestamp}}&signature={{signature}}
response
{
"success": true,
"code": 0,
"message": null,
"data": {
"pageSize": 10,
"totalCount": 5,
"totalPage": 1,
"currentPage": 1,
"totalCommissionUsdtAmount": "0.0011",
"totalTradeUsdtAmount": "281.8096",
"resultList": [
{
"type": 2,
"sourceType": 2,
"state": 2,
"date": 1689264000000,
"uid": "17875073",
"rate": 0.1,
"symbol": "USDT",
"takerAmount": "170.49326",
"makerAmount": "0",
"amountCurrency": "USDT",
"usdtAmount": "170.49326",
"commission": "0.00085246",
"currency": "USDT"
}
]
}
}
HTTP Request
- GET
/api/v3/rebate/affiliate/commission/detail
Permission: SPOT_ACCOUNT_READ
Weight(IP): 1
Request
Name | Type | Mandatory | Description |
---|---|---|---|
startTime | long | No | startTime |
endTime | long | No | endTime |
inviteCode | string | No | inviteCode |
page | int | No | page |
pageSize | int | No | pageSize,default: 10 |
type | int | No | commission type,1:spot,2:futures,3:ETF |
timestamp | long | Yes | timestamp |
signature | string | Yes | signature |
Response
Name | Type | Description |
---|---|---|
totalCommissionUsdtAmount | string | total commission in usdt |
totalTradeUsdtAmount | string | total trade volume in usdt |
type | int | commission type,1:spot 2:futures 3:ETF |
sourceType | int | sourceType,1:referral 2:sub-affiliate |
state | int | commission state |
date | long | trade date |
uid | string | uid |
rate | string | commission rate |
symbol | string | symbol |
takerAmount | string | taker amount |
makerAmount | string | maker amount |
amountCurrency | string | amount currency |
usdtAmount | string | usdt amount |
commission | string | commission amount |
currency | string | commission currency |
If startTime and endTime are not sent, the data from T-7 to T is returned. If type is not sent, the data of all types is returned,maximum 30 days data can be queried at one time.
Get Affiliate Campaign Data (affiliate only)
request
get /api/v3/rebate/affiliate/campaign?timestamp={{timestamp}}&signature={{signature}}
response
{
"success": true,
"code": 0,
"message": null,
"data": {
"pageSize": 10,
"totalCount": 15,
"totalPage": 2,
"currentPage": 1,
"resultList": [
{
"campaign": "11kd",
"inviteCode": "mexc-11Kd",
"clickTime": 0,
"createTime": 1695125287000,
"signup": 0,
"traded": 0,
"deposited": 0,
"depositAmount": "0",
"tradingAmount": "0",
"commission": "0"
},
{
"campaign": "New10",
"inviteCode": "mexc-newcode",
"clickTime": 7,
"createTime": 1693152531000,
"signup": 0,
"traded": 0,
"deposited": 0,
"depositAmount": "0",
"tradingAmount": "0",
"commission": "0"
}
]
}
}
HTTP Request
- GET
/api/v3/rebate/affiliate/campaign
Permission: SPOT_ACCOUNT_READ
Weight(IP): 1
Request
Name | Type | Mandatory | Description |
---|---|---|---|
startTime | long | No | startTime |
endTime | long | No | endTime |
page | int | No | page |
pageSize | int | No | pageSize,default: 10 |
timestamp | long | Yes | timestamp |
signature | string | Yes | signature |
Response
Name | Type | Description |
---|---|---|
campaign | string | campaign name |
inviteCode | string | campaign inviteCode |
createTime | long | campaign createTime |
clickTime | int | inviteCode clickTime |
signup | int | signup number |
deposited | int | deposited number |
depositAmount | string | depositAmount(usdt) |
tradingAmount | string | tradingAmount(usdt) |
traded | int | traded number |
commission | string | commission |
If startTime and endTime are not sent, the data from T-7 to T is returned.
Get Affiliate Referral Data(affiliate only)
request
get /api/v3/rebate/affiliate/referral?timestamp={{timestamp}}&signature={{signature}}
response
{
"success": true,
"code": 0,
"message": null,
"data": {
"pageSize": 10,
"totalCount": 15,
"totalPage": 2,
"currentPage": 1,
"resultList": [
{
"uid": "42469975",
"nickName": null,
"email": "",
"registerTime": 1640275818000,
"inviteCode": "mexc-12201950",
"depositAmount": "0.00000000",
"tradingAmount": "0.00000000",
"commission": "0.00000000",
"firstDepositTime": null,
"firstTradeTime": null,
"lastDepositTime": null,
"lastTradeTime": null,
"withdrawAmount": "0.00000000",
"asset": "0 USDT",
"identification": 1
}
]
}
}
HTTP Request
- GET
/api/v3/rebate/affiliate/referral
Permission: SPOT_ACCOUNT_READ
Weight(IP): 1
Request
Name | Type | Mandatory | Description |
---|---|---|---|
startTime | long | No | startTime |
endTime | long | No | endTime |
uid | string | No | uid |
inviteCode | string | No | invite code |
page | int | No | page |
pageSize | int | No | pageSize,default: 10 |
timestamp | long | Yes | timestamp |
signature | string | Yes | signature |
Response
Name | Type | Description |
---|---|---|
uid | int | uid |
account | string | account email |
inviteCode | string | invite code |
inviteTime | long | invite time |
nickName | string | nickName |
firstDeposit | long | first deposit date |
firstTrade | long | first trade date |
lastDeposit | long | last deposit date |
lastTrade | long | last trade date |
depositAmount | string | deposit amount(USDT) |
tradingAmount | string | trading amount(USDT) |
amount | string | commission amount(USDT) |
asset | string | 0 USDT、1-1,000 USDT、1,000 - 10,000 USDT、 10,000 - 50,000 USDT、50,000 - 100,000 USDT、 100,000 - 500,000 USDT、500,000 - 1,000,000 USDT、 1,000,000 - 5,000,000 USDT、>5,000,000 USDT |
withdrawalAmount | string | withdrawal amount(USDT) |
identification | int | identification,1: Uncertified, 2: primary, 3: Advanced, 4: Institutional |
If startTime and endTime are not sent, the data from T-7 to T is returned.
Get Subaffiliates Data (affiliate only)
request
get /api/v3/rebate/affiliate/subaffiliates?timestamp={{timestamp}}&signature={{signature}}
response
{
"success": true,
"code": 0,
"message": null,
"data": {
"pageSize": 10,
"totalCount": 15,
"totalPage": 2,
"currentPage": 1,
"resultList": [
{
"subaffiliateName": "ada176@mailtemp.top ada176",
"subaffiliateMail": "ad*****6@mailtemp.top",
"campaign": "new1",
"inviteCode": "mexc-12181621",
"activationTime": 1639834136000,
"registered": 0,
"deposited": 0,
"depositAmount": "0",
"commission": "0"
},
{
"subaffiliateName": "ada165@mailtemp.top ada165",
"subaffiliateMail": "ad*****5@mailtemp.top",
"campaign": null,
"inviteCode": "1KMyk",
"activationTime": 1639831541000,
"registered": 0,
"deposited": 1,
"depositAmount": "21.15318",
"commission": "0.5161221"
}
]
}
}
HTTP Request
- GET
/api/v3/rebate/affiliate/subaffiliates
Permission: SPOT_ACCOUNT_READ
Weight(IP): 1
Request
Name | Type | Mandatory | Description |
---|---|---|---|
startTime | long | No | startTime |
endTime | long | No | endTime |
inviteCode | string | No | inviteCode |
page | int | No | page |
pageSize | int | No | pageSize,default: 10 |
timestamp | long | Yes | timestamp |
signature | string | Yes | signature |
Response
Name | Type | Description |
---|---|---|
subaffiliateName | string | subaffiliate name |
subaffiliateMail | string | subaffiliate mail |
campaign | string | campaign |
inviteCode | string | inviteCode |
activationTime | long | activation time |
registered | int | registered number |
deposited | int | deposited number |
depositAmount | string | deposit amount |
commission | string | commission |
If startTime and endTime are not sent, the data from T-7 to T is returned.
Public API Definitions
ENUM definitions
Order side
- BUY
- SELL
Order type
- LIMIT (Limit order)
- MARKET (Market order)
- LIMIT_MAKER (Limit maker order)
- IMMEDIATE_OR_CANCEL (Immediate or cancel order)
- FILL_OR_KILL (Fill or kill order)
Order Status
- NEW Uncompleted
- FILLED Filled
- PARTIALLY_FILLED Partially filled
- CANCELED Canceled
- PARTIALLY_CANCELED Partially canceled
Kline Interval
- 1m 1 minute
- 5m 5 minute
- 15m 15 minute
- 30m 30 minute
- 60m 60 minute
- 4h 4 hour
- 1d 1 day
- 1W 1 week
- 1M 1 month
changed type
- WITHDRAW withdraw
- WITHDRAW_FEE withdraw fee
- DEPOSIT deposit
- DEPOSIT_FEE deposit fee
- ENTRUST deal
- ENTRUST_PLACE place order
- ENTRUST_CANCEL cancel order
- TRADE_FEE trade fee
- ENTRUST_UNFROZEN return frozen order funds
- SUGAR airdrop
- ETF_INDEX ETF place order