cURL
curl --request GET \
--url 'https://api.glassmarkets.io/v2/organizations/market-maker-metrics/spread/?interval=1h&lookback=1-day' \
--header 'Authorization: ApiKey <key>'import requests
url = "https://api.glassmarkets.io/v2/organizations/market-maker-metrics/spread/?interval=1h&lookback=1-day"
headers = {"Authorization": "ApiKey <key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'ApiKey <key>'}};
fetch('https://api.glassmarkets.io/v2/organizations/market-maker-metrics/spread/?interval=1h&lookback=1-day', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.glassmarkets.io/v2/organizations/market-maker-metrics/spread/?interval=1h&lookback=1-day"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "ApiKey <key>")
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.glassmarkets.io/v2/organizations/market-maker-metrics/spread/?interval=1h&lookback=1-day")
.header("Authorization", "ApiKey <key>")
.asString();[
{
"timestamp": "2026-09-08T00:00:00Z",
"exchange": {
"slug": "binance",
"name": "Binance",
"icon_url": "https://s2.coinmarketcap.com/static/img/exchanges/64x64/630.png"
},
"asset": "ONDO",
"pair": "ONDO/USDT",
"spread_bps": 4.444,
"organization": {
"slug": "example-mm",
"name": "Example Market Maker"
},
"is_trusted": true,
"source": "organization"
}
]Market maker metrics
Get market-maker spread
Returns market-maker spread in bps (basis points) per organization, exchange, pair and bucket. Combines reported and trusted values: in each bucket a trusted value replaces the reported one, and is_trusted marks rows that contain trusted data. Market makers see their own organization’s values; project owners see every market maker’s values for the assets they own. Per-wallet rows (source is wallet) are returned to staff, and to market makers for their own wallets. With interval=a each row covers the whole range and has no timestamp.
GET
/
v2
/
organizations
/
market-maker-metrics
/
spread
/
cURL
curl --request GET \
--url 'https://api.glassmarkets.io/v2/organizations/market-maker-metrics/spread/?interval=1h&lookback=1-day' \
--header 'Authorization: ApiKey <key>'import requests
url = "https://api.glassmarkets.io/v2/organizations/market-maker-metrics/spread/?interval=1h&lookback=1-day"
headers = {"Authorization": "ApiKey <key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'ApiKey <key>'}};
fetch('https://api.glassmarkets.io/v2/organizations/market-maker-metrics/spread/?interval=1h&lookback=1-day', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.glassmarkets.io/v2/organizations/market-maker-metrics/spread/?interval=1h&lookback=1-day"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "ApiKey <key>")
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.glassmarkets.io/v2/organizations/market-maker-metrics/spread/?interval=1h&lookback=1-day")
.header("Authorization", "ApiKey <key>")
.asString();[
{
"timestamp": "2026-09-08T00:00:00Z",
"exchange": {
"slug": "binance",
"name": "Binance",
"icon_url": "https://s2.coinmarketcap.com/static/img/exchanges/64x64/630.png"
},
"asset": "ONDO",
"pair": "ONDO/USDT",
"spread_bps": 4.444,
"organization": {
"slug": "example-mm",
"name": "Example Market Maker"
},
"is_trusted": true,
"source": "organization"
}
]Authorizations
metricsApiKeyAuthtokenAuth
Query Parameters
1M- Aggregated in 1 month periods.1w- Aggregated in 1 week periods.1d- Aggregated in 1 day periods.4h- Aggregated in 4 hour periods.1h- Aggregated in 1 hour periods.30m- Aggregated in 30 minute periods.15m- Aggregated in 15 minute periods.5m- Aggregated in 5 minute periods.1m- Aggregated in 1 minute periods.c- Will return all the data for the specified time range using the biggest periods possible.a- Will return the aggregate of the data for the specified time range.
Available options:
1M, 1w, 1d, 4h, 1h, 30m, 15m, 5m, 1m, c, a Minimum string length:
1Example:
"1h"
30-minutes- 30-minutes1-hour- 1-hour3-hours- 3-hours6-hours- 6-hours12-hours- 12-hours1-day- 1-day7-days- 7-days1-month- 1-month3-months- 3-months6-months- 6-months1-year- 1-year
Available options:
30-minutes, 1-hour, 3-hours, 6-hours, 12-hours, 1-day, 7-days, 1-month, 3-months, 6-months, 1-year Minimum string length:
1Example:
"1-day"

