Browsers can call these URLs directly: a simple GET with no custom headers needs no CORS preflight.
Response conventions
A successful response always carries status, api_version and data.
Prices are exact decimal strings (for example "98765432101234.56789012") so no precision is lost to floating point. Parse them with an arbitrary-precision decimal library.
All timestamps are Unix epoch milliseconds (UTC).
A field without a value is sent as null — it is never omitted.
The Rial price is the effective price shown on SPlus Fund; the USD price is derived from the USDT rate and is null when no rate is available.
Responses are cached briefly; each endpoint's lifetime is in its Cache-Control header, and polling faster than that returns no fresher data.
Unknown, repeated or empty parameters are refused with a 400.
Rate limits
To keep the service stable, requests are limited at two levels:
Per IP address: a burst of up to 30 requests, then 10 requests every 10 seconds.
For the whole service: a burst of up to 300 requests, then 100 requests every 1 seconds.
Over the limit, the API answers 429 with errorCode 4029 and a Retry-After header in seconds. Wait that long before retrying.
Rather than polling repeatedly, fetch several prices in one prices request and respect each endpoint's cache lifetime.
Example 429 response
{
"status": "Failure",
"errorCode": 4029,
"message": "Too many requests from this client. Retry after 10 second(s).",
"traceId": "0HNOILC44Q4IJ:00000001",
"timestamp": 1789422992
}
Errors
Every error has the same shape:
HTTP status
errorCode
Meaning
400
4006
Invalid, unknown, repeated or out-of-range parameter
404
4004
Asset or path not found
405
—
Only GET is supported (no request body)
429
4029
Rate limit exceeded
503
4018
The platform is being updated; try again in a few minutes
503
4503
Market data is temporarily unavailable
Example error response
{
"status": "Failure",
"errorCode": 4006,
"message": "'page' must be an integer between 1 and 1000.",
"traceId": "0HNOILD89MRS3:00000001",
"timestamp": 1789423116
}
Endpoints
Server time
GET/api/public/v1/time
Returns the server clock, for keeping your system in step.