Public Rest API for EXMON
General API Information
- The following base endpoints are available. Please use whichever works best for your setup:
https://api.exmon.pro
-
Responses are in JSON by default.
-
If your request contains a symbol name containing non-ASCII characters, then the response may contain non-ASCII characters encoded in UTF-8.
-
Some endpoints may return asset and/or symbol names containing non-ASCII characters encoded in UTF-8 even if the request did not contain non-ASCII characters.
-
Data is returned in chronological order, unless noted otherwise.
- Without
startTimeorendTime, returns the most recent items up to the limit. - With
startTime, returns oldest items fromstartTimeup to the limit. - With
endTime, returns most recent items up toendTimeand the limit. - With both, behaves like
startTimebut does not exceedendTime.
- Without
-
All time and timestamp related fields in the JSON responses are in milliseconds by default.
-
Timestamp parameters (e.g.
startTime,endTime,timestamp) can be passed in milliseconds or microseconds. -
For APIs that only send public market data, use the dedicated market data base endpoint if available.
-
APIs have a timeout of 10 seconds when processing a request.
-
If a response from backend takes longer than this, the API responds with timeout error. This does not always mean that the request failed internally.
-
If the status of the request has not appeared in user stream or query endpoints, please perform a status check request.
-
Please avoid SQL keywords in requests as they may trigger security filtering rules.
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 a WAF rule has been violated. This can indicate rate limit violation or security block.
-
HTTP 409 return code is used when a cancel/replace order partially succeeds.
-
HTTP 429 return code is used when breaking a request rate limit.
-
HTTP 418 return code is used when an IP has been auto-banned after repeated rate limit violations.
-
HTTP 5XX return codes are used for internal errors; the issue is on the server side.
-
It is important not to treat this as a final failure as execution status may be unknown.
Error Codes
Any endpoint can return an error.
Sample payload:
{
"code": -1000,
"message": "Invalid request parameters"
}
Specific error codes and messages are defined in the Error Codes section.
General Information on Endpoints
-
For GET endpoints, parameters must be sent as a query string.
-
For POST, PUT, and DELETE endpoints, parameters may be sent either in query string or request body with content type application/x-www-form-urlencoded.
-
Parameters may be sent in any order.
-
If a parameter is sent in both query string and request body, the query string parameter will be used.
LIMITS
General Info on Limits
-
Interval letters:
- SECOND => S
- MINUTE => M
- HOUR => H
- DAY => D
-
intervalNum describes the amount of interval.
-
Example: intervalNum 5 with intervalLetter M means "Every 5 minutes".
-
Requests exceeding rate limits return HTTP 429.
IP Limits
-
Each response includes X-USED-WEIGHT headers indicating current usage per IP.
-
Each endpoint has a weight determining its cost.
-
When 429 is received, you must back off requests.
-
Repeated violations may result in temporary IP ban (HTTP 418).
-
Retry-After header indicates wait time.
Unfilled Order Count
Each successful order response includes order count headers.
If exceeded, HTTP 429 is returned.
Data Sources
-
The API system is asynchronous; delays are expected.
-
Data sources:
-
- Matching Engine (most real-time)
-
- Memory (cached data)
-
- Database (persistent storage)
-
Some endpoints may use fallback chains like Memory → Database.
Specific error codes and messages are defined in the Error Codes section.