Retrieve an Order Book
The order book endpoint provides an order book’s bids and asks and can be used in streaming mode.
When filtering for a specific order book, you must use use all six of these arguments: base_asset_type, base_asset_issuer, base_asset_code, counter_asset_type, counter_asset_issuer, and counter_asset_code. If the base or counter asset is XLM, you only need to indicate the asset type as native and do not need to designate the code or the issuer.
curl https://mainnet.stellar.validationcloud.io/v1/<YOUR_API_KEY_HERE>//order_book?\
selling_asset_type=native&\
buying_asset_type=credit_alphanum4&\
buying_asset_code=USDC&\
buying_asset_issuer=GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN&\
limit=4
var StellarSdk = require("@stellar/stellar-sdk");
var server = new StellarSdk.Horizon.Server(
"https://mainnet.stellar.validationcloud.io/v1/<YOUR_API_KEY_HERE>/",
);
server
.orderbook(
new StellarSdk.Asset.native(),
new StellarSdk.Asset(
"BB1",
"GD5J6HLF5666X4AZLTFTXLY46J5SW7EXRKBLEYPJP33S33MXZGV6CWFN",
),
)
.call()
.then(function (resp) {
console.log(resp);
})
.catch(function (err) {
console.error(err);
});
import requests
url = "https://{network}.stellar.validationcloud.io/v1/<YOUR_API_KEY_HERE>/order_book"
response = requests.get(url)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{network}.stellar.validationcloud.io/v1/<YOUR_API_KEY_HERE>/order_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://{network}.stellar.validationcloud.io/v1/<YOUR_API_KEY_HERE>/order_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://{network}.stellar.validationcloud.io/v1/<YOUR_API_KEY_HERE>/order_book")
.asString();require 'uri'
require 'net/http'
url = URI("https://{network}.stellar.validationcloud.io/v1/<YOUR_API_KEY_HERE>/order_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{
"bids": [
{
"price_r": {
"n": 10000000,
"d": 139999999
},
"price": "0.0714286",
"amount": "24.9999990"
},
{
"price_r": {
"n": 1,
"d": 14
},
"price": "0.0714286",
"amount": "188.0000000"
},
{
"price_r": {
"n": 1,
"d": 15
},
"price": "0.0666667",
"amount": "230.3200000"
},
{
"price_r": {
"n": 1,
"d": 16
},
"price": "0.0625000",
"amount": "50.0000000"
}
],
"asks": [
{
"price_r": {
"n": 5000000,
"d": 62500001
},
"price": "0.0800000",
"amount": "4.9400001"
},
{
"price_r": {
"n": 10000000,
"d": 125000001
},
"price": "0.0800000",
"amount": "2516.5154327"
},
{
"price_r": {
"n": 2,
"d": 25
},
"price": "0.0800000",
"amount": "3125.0000000"
},
{
"price_r": {
"n": 4,
"d": 49
},
"price": "0.0816327",
"amount": "4593.7500000"
}
],
"base": {
"asset_type": "native"
},
"counter": {
"asset_type": "credit_alphanum4",
"asset_code": "BB1",
"asset_issuer": "GD5J6HLF5666X4AZLTFTXLY46J5SW7EXRKBLEYPJP33S33MXZGV6CWFN"
}
}10 Compute Units.Query Parameters
The type for the asset being sold (base asset). Either native, credit_alphanum4, or credit_alphanum12.
native, credit_alphanum4, credit_alphanum12 The Stellar address of the issuer of the asset being sold (base asset). Required if the selling_asset_type is not native.
"GDUKMGUGDZQK6YHYA5Z6AY2G4XDSZPSZ3SW5UN3ARVMO6QSRDWP5YLEX"
The code for the asset being sold (base asset). Required if the selling_asset_type is not native.
"USD"
The type for the asset being bought (counter asset). Either native, credit_alphanum4, or credit_alphanum12.
native, credit_alphanum4, credit_alphanum12 The Stellar address of the issuer of the asset being bought (counter asset). Required if the buying_asset_type is not native.
"GDUKMGUGDZQK6YHYA5Z6AY2G4XDSZPSZ3SW5UN3ARVMO6QSRDWP5YLEX"
The code for the asset being bought (counter asset). Required if the buying_asset_type is not native.
"EUR"
The maximum number of records returned. The limit can range from 1 to 200 — an upper limit that is hardcoded in Horizon for performance reasons. If this argument isn’t designated, it defaults to 20 for order books.
20
curl https://mainnet.stellar.validationcloud.io/v1/<YOUR_API_KEY_HERE>//order_book?\
selling_asset_type=native&\
buying_asset_type=credit_alphanum4&\
buying_asset_code=USDC&\
buying_asset_issuer=GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN&\
limit=4
var StellarSdk = require("@stellar/stellar-sdk");
var server = new StellarSdk.Horizon.Server(
"https://mainnet.stellar.validationcloud.io/v1/<YOUR_API_KEY_HERE>/",
);
server
.orderbook(
new StellarSdk.Asset.native(),
new StellarSdk.Asset(
"BB1",
"GD5J6HLF5666X4AZLTFTXLY46J5SW7EXRKBLEYPJP33S33MXZGV6CWFN",
),
)
.call()
.then(function (resp) {
console.log(resp);
})
.catch(function (err) {
console.error(err);
});
import requests
url = "https://{network}.stellar.validationcloud.io/v1/<YOUR_API_KEY_HERE>/order_book"
response = requests.get(url)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{network}.stellar.validationcloud.io/v1/<YOUR_API_KEY_HERE>/order_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://{network}.stellar.validationcloud.io/v1/<YOUR_API_KEY_HERE>/order_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://{network}.stellar.validationcloud.io/v1/<YOUR_API_KEY_HERE>/order_book")
.asString();require 'uri'
require 'net/http'
url = URI("https://{network}.stellar.validationcloud.io/v1/<YOUR_API_KEY_HERE>/order_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{
"bids": [
{
"price_r": {
"n": 10000000,
"d": 139999999
},
"price": "0.0714286",
"amount": "24.9999990"
},
{
"price_r": {
"n": 1,
"d": 14
},
"price": "0.0714286",
"amount": "188.0000000"
},
{
"price_r": {
"n": 1,
"d": 15
},
"price": "0.0666667",
"amount": "230.3200000"
},
{
"price_r": {
"n": 1,
"d": 16
},
"price": "0.0625000",
"amount": "50.0000000"
}
],
"asks": [
{
"price_r": {
"n": 5000000,
"d": 62500001
},
"price": "0.0800000",
"amount": "4.9400001"
},
{
"price_r": {
"n": 10000000,
"d": 125000001
},
"price": "0.0800000",
"amount": "2516.5154327"
},
{
"price_r": {
"n": 2,
"d": 25
},
"price": "0.0800000",
"amount": "3125.0000000"
},
{
"price_r": {
"n": 4,
"d": 49
},
"price": "0.0816327",
"amount": "4593.7500000"
}
],
"base": {
"asset_type": "native"
},
"counter": {
"asset_type": "credit_alphanum4",
"asset_code": "BB1",
"asset_issuer": "GD5J6HLF5666X4AZLTFTXLY46J5SW7EXRKBLEYPJP33S33MXZGV6CWFN"
}
}