API Documentation
This document provides a comprehensive guide to integrating with our API to access real-time for a wide range of assets.
Authentication
All API requests must be authenticated using an API key.
- Header:
X-API-Key
To authenticate your request, include your API key in the X-API-KEY header. Requests without a valid API key will be rejected with a 401 Unauthorized error.
To access the API service, the IP address used must be whitelisted by our team.
API Endpoints
Get Available Pairs
Retrieves a paginated list of all supported asset pairs.
GET /v1/pairs
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
code | String | No | Search for pairs by a specific code (e.g., BTC). |
type | String | No | Filter pairs by asset type (e.g., Crypto). |
page | Int | No | The page number for pagination. Defaults to 1. |
per_page | Int | No | The number of items per page. Defaults to 10. |
Example Request
curl --location --request GET 'https://{host}/v1/pairs?type=Crypto&page=1&per_page=2' \
--header 'X-API-KEY: YOUR_API_KEY'
Example Response
{
"status_number": "200",
"ts": 1752728575811,
"data": [
{
"code": "Crypto:ALL:BTC/USDT",
"name": "BITCOIN",
"base": "BTC",
"quote": "USDT"
},
{
"code": "Crypto:ALL:AAVE/USDT",
"name": "AAVE",
"base": "AAVE",
"quote": "USDT"
}
]
}
Get Price
Retrieves the latest price for a specific asset pair.
GET /v1/price
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
code | String | Yes | The pair code to retrieve the price for (e.g., Equity:US:NVDA/USD). |
pool | String | No | Optional: The pool address for specific crypto assets. |
Example Request
curl --location --request GET 'https://{host}/v1/price?code=Equity:US:NVDA/USD' \
--header 'X-API-Key: YOUR_API_KEY'
Asset-Specific Responses
Crypto Assets
Crypto markets are open 24/7 and are considered to be in a continuous regular session.
{
"status_number": "200",
"ts": 1756714674097,
"data": {
"code": "Crypto:ALL:BTC/USDT",
"ask": "109622.78961091458",
"bid": "109403.76305824542",
"price": "109513.27633458",
"market": {
"open": true,
"reason": "continuous",
"session": "REG"
}
}
}
Equity (Stock), Forex, Commodity, Metal, etc
Equity (Stock), Forex, Commodity, Metal, etc markets are open during regular market hours.
{
"status_number": "200",
"ts": 1672531200,
"data": {
"code": "Forex:ALL:USD/JPY",
"ask": "150.25",
"bid": "150.2",
"price": "150.225",
"market": {
"open": true,
"reason": "regular_session",
"session": "REG",
"timezone": "America/New_York"
}
}
}
{
"status_number": "200",
"ts": 1672531200,
"data": {
"code": "Forex:ALL:USD/JPY",
"ask": "150.25",
"bid": "150.2",
"price": "150.225",
"market": {
"open": true,
"reason": "market_closed",
"session": "CLOSED",
"timezone": "America/New_York"
}
}
}
US Equity with Extended Hours Trading
US Equity markets that support extended hours trading have three sessions: Pre-Market (PRE), Regular Market (REG), and Post-Market (POST).
{
"status_number": "200",
"ts": 1756714719483,
"data": {
"code": "Equity:US:NVDA/USD",
"ask": "174.3",
"bid": "174.09",
"price": "174.195",
"market": {
"open": true,
"reason": "pre_session",
"session": "PRE",
"timezone": "America/New_York"
}
}
}
{
"status_number": "200",
"ts": 1756714719483,
"data": {
"code": "Equity:US:NVDA/USD",
"ask": "174.3",
"bid": "174.09",
"price": "174.195",
"market": {
"open": true,
"reason": "regular_session",
"session": "REG",
"timezone": "America/New_York"
}
}
}
{
"status_number": "200",
"ts": 1756714719483,
"data": {
"code": "Equity:US:NVDA/USD",
"ask": "174.3",
"bid": "174.09",
"price": "174.195",
"market": {
"open": true,
"reason": "post_session",
"session": "POST",
"timezone": "America/New_York"
}
}
}
{
"status_number": "200",
"ts": 1756714719483,
"data": {
"code": "Equity:US:NVDA/USD",
"ask": "174.3",
"bid": "174.09",
"price": "174.195",
"market": {
"open": true,
"reason": "market_closed",
"session": "CLOSED",
"timezone": "America/New_York"
}
}
}
Price for Illiquid or Prices are not updated in real-time.
{
"status_number": "50102",
"message": "The provided price may not reflect real-time market conditions.",
"ts": 1672531200,
"data": {
"code": "Equity:US:AAPL/USD",
"ask": "150.25",
"bid": "150.2",
"price": "150.225",
"market": {
"open": true,
"reason": "no_price",
"session": "REG",
"timezone": "America/New_York"
}
}
}
Important: A 200 OK status indicates a successful request, but a status_number other than 200 signifies that the returned data may be stale or delayed due to low liquidity or price not updated in real-time.
Error Response - Pair Not Found
{
"status_number": "50104",
"data": null,
"message": "Pair not found.",
"ts": 1751298466020
}
{
"status_number": "50000",
"data": null,
"message": "Sorry, this is not working properly. We know about this mistake and are working to fix it.",
"ts": 1751298466020
}
Status Code
status_number field in the response indicates the result of the API call. The HTTP status code will typically be 200 OK for successful requests or a standard error code (4xx, 5xx) for failures.
| Status Number | Meaning | Description |
|---|---|---|
200 | Success | The request was successful. |
50000 | Internal Server Error | An unexpected error occurred on our end. |
50001 | API Maintenance | The API is temporarily down for maintenance. |
50002 | Websocket Maintenance | The websocket service is temporarily down for maintenance. |
50003 | gRPC Maintenance | The gRPC service is temporarily down for maintenance. |
50004 | Invalid Request | The request was malformed or contained invalid parameters. |
50005 | Unauthorized | The API key is missing, invalid, or expired. |
50006 | Too Many Requests | The request was throttled due to rate limiting. |
50007 | Suspended | The API key has been suspended. |
50008 | Resource Not Found | The requested endpoint or resource does not exist. |
50009 | Connection Limit Exceeded | The connection limit has been exceeded. |
50010 | Access Denied | The API key does not have permission to access this resource. |
50100 | Restricted User | The user account is restricted. |
50101 | Price Not Found | No price could be found for the requested pair. |
50102 | Price Unavailable | The price is temporarily unavailable (e.g., market closed, low liquidity). |
50103 | Price Pool Unavailable | The price pool is temporarily unavailable. |
50104 | Pair Not Found | The requested pair does not exist. |
50105 | Pair Unavailable | The requested pair is temporarily unavailable. |
50106 | Pair In Maintenance | The requested pair is currently in maintenance. |
50107 | No Pairs Allowed | No pairs are allowed for this request. |
50108 | Pool Not Found | The requested pool does not exist. |
50109 | No Access to Asset Type | The API key is not permitted to access this asset type. |