Get order book
curl --request GET \
--url https://api.numofx.com/v1/bookimport requests
url = "https://api.numofx.com/v1/book"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.numofx.com/v1/book', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.numofx.com/v1/book",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.numofx.com/v1/book"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.numofx.com/v1/book")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.numofx.com/v1/book")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"market_presentation": {
"market": "cNGN-USDC",
"contract_type": "<string>",
"settlement_type": "<string>",
"base_asset_symbol": "cNGN",
"quote_asset_symbol": "USDC",
"expiry_timestamp": 123,
"display_name": "cNGN-USDC",
"display_label": "USDC per cNGN",
"tick_size": "<string>",
"min_size": "0.001",
"contract_multiplier": "1",
"settlement_note": "<string>",
"asset_address": "<string>",
"sub_id": "<string>",
"pricing_model": "linear",
"price_semantics": "linear",
"display_price_kind": "direct",
"display_semantics": "direct",
"last_trade_timestamp": 123,
"order_entry_spec": "cngn_usdc_spot_v1",
"ui_price_unit": "USDC per cNGN",
"ui_size_unit": "cNGN amount",
"ui_side_meaning": "BUY acquires cNGN and pays USDC; SELL delivers cNGN and receives USDC.",
"engine_price_unit": "USDC per cNGN",
"engine_amount_unit": "cNGN amount",
"engine_side_policy": "same_as_ui",
"ui_price_to_engine": "engine_price = ui_price",
"ui_size_to_engine": "engine_amount = ui_size",
"trade_module_address": "<string>",
"quote_asset_address": "<string>",
"margin_manager_address": "<string>",
"perp": {
"mark_price": "0.00072",
"index_price": "0.00072",
"mark_price_ui": "0.00072",
"index_price_ui": "0.00072",
"funding_rate_1h": "0.0000125",
"ui_long_funding_rate_1h": "0.0000125",
"funding_interval_seconds": 3600,
"open_interest": "10000000",
"open_interest_usd": "7200",
"initial_margin_rate": "0.33333",
"maintenance_margin_rate": "0.2",
"max_leverage": "3",
"trade_module_address": "<string>",
"quote_asset_address": "<string>",
"margin_manager_address": "<string>",
"trading_enabled": true,
"paused": true,
"position_cap": "50000000",
"collateral_assets": [
{
"symbol": "cNGN",
"asset_address": "<string>",
"margin_factor": "0.5",
"im_scale": "1",
"cap": "<string>",
"total": "<string>",
"deposits_open": true
}
],
"updated_at": 123,
"index_lag": {
"enforced": true,
"max_bps": 123,
"lag_bps": 123,
"spot_sample_at": 123,
"spot_usdc_per_cngn": "<string>",
"sample_age_sec": 123
}
}
},
"bids": [
{
"order_id": "<string>",
"owner_address": "<string>",
"signer_address": "<string>",
"subaccount_id": "<string>",
"recipient_id": "<string>",
"nonce": "<string>",
"side": "buy",
"asset_address": "<string>",
"sub_id": "<string>",
"desired_amount": "<string>",
"filled_amount": "<string>",
"limit_price": "<string>",
"worst_fee": "<string>",
"expiry": 123,
"action_json": "<unknown>",
"signature": "<string>",
"status": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"market": "<string>",
"contract_type": "<string>",
"settlement_type": "<string>",
"base_asset_symbol": "<string>",
"quote_asset_symbol": "<string>",
"display_name": "<string>",
"display_label": "<string>",
"tick_size": "<string>",
"price_semantics": "<string>",
"display_semantics": "<string>",
"spot_contract": {
"spec": "cngn_usdc_spot_v1",
"ui_intent": {
"side": "buy",
"price": "0.0007278",
"size": "137400"
},
"engine_order": {
"side": "buy",
"price": "0.0007278",
"amount": "137400"
},
"balance_delta": {
"usdc": "-99.99972",
"cngn": "+137400"
}
}
}
],
"asks": [
{
"order_id": "<string>",
"owner_address": "<string>",
"signer_address": "<string>",
"subaccount_id": "<string>",
"recipient_id": "<string>",
"nonce": "<string>",
"side": "buy",
"asset_address": "<string>",
"sub_id": "<string>",
"desired_amount": "<string>",
"filled_amount": "<string>",
"limit_price": "<string>",
"worst_fee": "<string>",
"expiry": 123,
"action_json": "<unknown>",
"signature": "<string>",
"status": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"market": "<string>",
"contract_type": "<string>",
"settlement_type": "<string>",
"base_asset_symbol": "<string>",
"quote_asset_symbol": "<string>",
"display_name": "<string>",
"display_label": "<string>",
"tick_size": "<string>",
"price_semantics": "<string>",
"display_semantics": "<string>",
"spot_contract": {
"spec": "cngn_usdc_spot_v1",
"ui_intent": {
"side": "buy",
"price": "0.0007278",
"size": "137400"
},
"engine_order": {
"side": "buy",
"price": "0.0007278",
"amount": "137400"
},
"balance_delta": {
"usdc": "-99.99972",
"cngn": "+137400"
}
}
}
]
}Markets service
Get order book
GET
/
v1
/
book
Get order book
curl --request GET \
--url https://api.numofx.com/v1/bookimport requests
url = "https://api.numofx.com/v1/book"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.numofx.com/v1/book', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.numofx.com/v1/book",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.numofx.com/v1/book"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.numofx.com/v1/book")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.numofx.com/v1/book")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"market_presentation": {
"market": "cNGN-USDC",
"contract_type": "<string>",
"settlement_type": "<string>",
"base_asset_symbol": "cNGN",
"quote_asset_symbol": "USDC",
"expiry_timestamp": 123,
"display_name": "cNGN-USDC",
"display_label": "USDC per cNGN",
"tick_size": "<string>",
"min_size": "0.001",
"contract_multiplier": "1",
"settlement_note": "<string>",
"asset_address": "<string>",
"sub_id": "<string>",
"pricing_model": "linear",
"price_semantics": "linear",
"display_price_kind": "direct",
"display_semantics": "direct",
"last_trade_timestamp": 123,
"order_entry_spec": "cngn_usdc_spot_v1",
"ui_price_unit": "USDC per cNGN",
"ui_size_unit": "cNGN amount",
"ui_side_meaning": "BUY acquires cNGN and pays USDC; SELL delivers cNGN and receives USDC.",
"engine_price_unit": "USDC per cNGN",
"engine_amount_unit": "cNGN amount",
"engine_side_policy": "same_as_ui",
"ui_price_to_engine": "engine_price = ui_price",
"ui_size_to_engine": "engine_amount = ui_size",
"trade_module_address": "<string>",
"quote_asset_address": "<string>",
"margin_manager_address": "<string>",
"perp": {
"mark_price": "0.00072",
"index_price": "0.00072",
"mark_price_ui": "0.00072",
"index_price_ui": "0.00072",
"funding_rate_1h": "0.0000125",
"ui_long_funding_rate_1h": "0.0000125",
"funding_interval_seconds": 3600,
"open_interest": "10000000",
"open_interest_usd": "7200",
"initial_margin_rate": "0.33333",
"maintenance_margin_rate": "0.2",
"max_leverage": "3",
"trade_module_address": "<string>",
"quote_asset_address": "<string>",
"margin_manager_address": "<string>",
"trading_enabled": true,
"paused": true,
"position_cap": "50000000",
"collateral_assets": [
{
"symbol": "cNGN",
"asset_address": "<string>",
"margin_factor": "0.5",
"im_scale": "1",
"cap": "<string>",
"total": "<string>",
"deposits_open": true
}
],
"updated_at": 123,
"index_lag": {
"enforced": true,
"max_bps": 123,
"lag_bps": 123,
"spot_sample_at": 123,
"spot_usdc_per_cngn": "<string>",
"sample_age_sec": 123
}
}
},
"bids": [
{
"order_id": "<string>",
"owner_address": "<string>",
"signer_address": "<string>",
"subaccount_id": "<string>",
"recipient_id": "<string>",
"nonce": "<string>",
"side": "buy",
"asset_address": "<string>",
"sub_id": "<string>",
"desired_amount": "<string>",
"filled_amount": "<string>",
"limit_price": "<string>",
"worst_fee": "<string>",
"expiry": 123,
"action_json": "<unknown>",
"signature": "<string>",
"status": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"market": "<string>",
"contract_type": "<string>",
"settlement_type": "<string>",
"base_asset_symbol": "<string>",
"quote_asset_symbol": "<string>",
"display_name": "<string>",
"display_label": "<string>",
"tick_size": "<string>",
"price_semantics": "<string>",
"display_semantics": "<string>",
"spot_contract": {
"spec": "cngn_usdc_spot_v1",
"ui_intent": {
"side": "buy",
"price": "0.0007278",
"size": "137400"
},
"engine_order": {
"side": "buy",
"price": "0.0007278",
"amount": "137400"
},
"balance_delta": {
"usdc": "-99.99972",
"cngn": "+137400"
}
}
}
],
"asks": [
{
"order_id": "<string>",
"owner_address": "<string>",
"signer_address": "<string>",
"subaccount_id": "<string>",
"recipient_id": "<string>",
"nonce": "<string>",
"side": "buy",
"asset_address": "<string>",
"sub_id": "<string>",
"desired_amount": "<string>",
"filled_amount": "<string>",
"limit_price": "<string>",
"worst_fee": "<string>",
"expiry": 123,
"action_json": "<unknown>",
"signature": "<string>",
"status": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"market": "<string>",
"contract_type": "<string>",
"settlement_type": "<string>",
"base_asset_symbol": "<string>",
"quote_asset_symbol": "<string>",
"display_name": "<string>",
"display_label": "<string>",
"tick_size": "<string>",
"price_semantics": "<string>",
"display_semantics": "<string>",
"spot_contract": {
"spec": "cngn_usdc_spot_v1",
"ui_intent": {
"side": "buy",
"price": "0.0007278",
"size": "137400"
},
"engine_order": {
"side": "buy",
"price": "0.0007278",
"amount": "137400"
},
"balance_delta": {
"usdc": "-99.99972",
"cngn": "+137400"
}
}
}
]
}Query Parameters
Market identifier: cNGN-USDC or cNGN-PERP, as GET /v1/markets lists it. Matched exactly. The pre-rename identifiers USDCcNGN-SPOT and USDCcNGN-PERP are accepted as deprecated aliases until 2027-01-06; a request using one is answered under the canonical identifier with Deprecation: true and X-Canonical-Market response headers.
Was this page helpful?

