Submit reported metrics
curl --request POST \
--url https://api.glassmarkets.io/v2/organizations/reported-metrics/ \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
[
{
"organization": "example-mm",
"asset": "ONDO",
"exchange": "binance",
"pair": "ONDO/USDT",
"ts_iso": "2026-10-01T00:00:00Z",
"interval": "1d",
"metric": "volume/volume",
"value": 1250000,
"dry_run": true
}
]
'import requests
url = "https://api.glassmarkets.io/v2/organizations/reported-metrics/"
payload = [
{
"organization": "example-mm",
"asset": "ONDO",
"exchange": "binance",
"pair": "ONDO/USDT",
"ts_iso": "2026-10-01T00:00:00Z",
"interval": "1d",
"metric": "volume/volume",
"value": 1250000,
"dry_run": True
}
]
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify([
{
organization: 'example-mm',
asset: 'ONDO',
exchange: 'binance',
pair: 'ONDO/USDT',
ts_iso: '2026-10-01T00:00:00Z',
interval: '1d',
metric: 'volume/volume',
value: 1250000,
dry_run: true
}
])
};
fetch('https://api.glassmarkets.io/v2/organizations/reported-metrics/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.glassmarkets.io/v2/organizations/reported-metrics/"
payload := strings.NewReader("[\n {\n \"organization\": \"example-mm\",\n \"asset\": \"ONDO\",\n \"exchange\": \"binance\",\n \"pair\": \"ONDO/USDT\",\n \"ts_iso\": \"2026-10-01T00:00:00Z\",\n \"interval\": \"1d\",\n \"metric\": \"volume/volume\",\n \"value\": 1250000,\n \"dry_run\": true\n }\n]")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.glassmarkets.io/v2/organizations/reported-metrics/")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("[\n {\n \"organization\": \"example-mm\",\n \"asset\": \"ONDO\",\n \"exchange\": \"binance\",\n \"pair\": \"ONDO/USDT\",\n \"ts_iso\": \"2026-10-01T00:00:00Z\",\n \"interval\": \"1d\",\n \"metric\": \"volume/volume\",\n \"value\": 1250000,\n \"dry_run\": true\n }\n]")
.asString();{
"message": "Metrics processed successfully",
"results": {
"stored": 24,
"stored_unlisted_pair": 0,
"duplicate": 0,
"rejected": 0
},
"dry_run_results": {
"stored": 0,
"stored_unlisted_pair": 0,
"duplicate": 0,
"rejected": 0
},
"unlisted_pairs": [],
"rejected": []
}Reported metrics
Submit reported metrics
Endpoint for organizations report metrics. Accepts a list of metrics that span 1-day, 1-hour or 5-minute intervals of data.
POST
/
v2
/
organizations
/
reported-metrics
/
Submit reported metrics
curl --request POST \
--url https://api.glassmarkets.io/v2/organizations/reported-metrics/ \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
[
{
"organization": "example-mm",
"asset": "ONDO",
"exchange": "binance",
"pair": "ONDO/USDT",
"ts_iso": "2026-10-01T00:00:00Z",
"interval": "1d",
"metric": "volume/volume",
"value": 1250000,
"dry_run": true
}
]
'import requests
url = "https://api.glassmarkets.io/v2/organizations/reported-metrics/"
payload = [
{
"organization": "example-mm",
"asset": "ONDO",
"exchange": "binance",
"pair": "ONDO/USDT",
"ts_iso": "2026-10-01T00:00:00Z",
"interval": "1d",
"metric": "volume/volume",
"value": 1250000,
"dry_run": True
}
]
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify([
{
organization: 'example-mm',
asset: 'ONDO',
exchange: 'binance',
pair: 'ONDO/USDT',
ts_iso: '2026-10-01T00:00:00Z',
interval: '1d',
metric: 'volume/volume',
value: 1250000,
dry_run: true
}
])
};
fetch('https://api.glassmarkets.io/v2/organizations/reported-metrics/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.glassmarkets.io/v2/organizations/reported-metrics/"
payload := strings.NewReader("[\n {\n \"organization\": \"example-mm\",\n \"asset\": \"ONDO\",\n \"exchange\": \"binance\",\n \"pair\": \"ONDO/USDT\",\n \"ts_iso\": \"2026-10-01T00:00:00Z\",\n \"interval\": \"1d\",\n \"metric\": \"volume/volume\",\n \"value\": 1250000,\n \"dry_run\": true\n }\n]")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.glassmarkets.io/v2/organizations/reported-metrics/")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("[\n {\n \"organization\": \"example-mm\",\n \"asset\": \"ONDO\",\n \"exchange\": \"binance\",\n \"pair\": \"ONDO/USDT\",\n \"ts_iso\": \"2026-10-01T00:00:00Z\",\n \"interval\": \"1d\",\n \"metric\": \"volume/volume\",\n \"value\": 1250000,\n \"dry_run\": true\n }\n]")
.asString();{
"message": "Metrics processed successfully",
"results": {
"stored": 24,
"stored_unlisted_pair": 0,
"duplicate": 0,
"rejected": 0
},
"dry_run_results": {
"stored": 0,
"stored_unlisted_pair": 0,
"duplicate": 0,
"rejected": 0
},
"unlisted_pairs": [],
"rejected": []
}Authorizations
metricsApiKeyAuthtokenAuth
Body
application/json
UTC timestamp in ISO format. For daily data (default), 2025-08-27T00:00:00Z encompasses data from 12:00 am to 11:59 pm on 27/08/2025. For hourly data, 2025-08-27T13:00:00Z encompasses data from 1:00 pm to 1:59 pm on 27/08/2025. For 5-minute data, 2025-08-27T13:05:00Z encompasses data from 1:05 pm to 1:09 pm on 27/08/2025.
Valid metrics:
volume/volume: Volume traded for day, normalised to USD valuesspread/spread_bps: Top Of Book Spread basis points, calculated as (your ask - your bid) / ((your ask + your bid) / 2)) * 10000depth/bid_0bps: Bid Depth, normalised to USD values, within 0 basis pointsdepth/bid_1bps: Bid Depth, normalised to USD values, within 1 basis pointsdepth/bid_2bps: Bid Depth, normalised to USD values, within 2 basis pointsdepth/bid_3bps: Bid Depth, normalised to USD values, within 3 basis pointsdepth/bid_5bps: Bid Depth, normalised to USD values, within 5 basis pointsdepth/bid_10bps: Bid Depth, normalised to USD values, within 10 basis pointsdepth/bid_15bps: Bid Depth, normalised to USD values, within 15 basis pointsdepth/bid_20bps: Bid Depth, normalised to USD values, within 20 basis pointsdepth/bid_25bps: Bid Depth, normalised to USD values, within 25 basis pointsdepth/bid_30bps: Bid Depth, normalised to USD values, within 30 basis pointsdepth/bid_40bps: Bid Depth, normalised to USD values, within 40 basis pointsdepth/bid_50bps: Bid Depth, normalised to USD values, within 50 basis pointsdepth/bid_60bps: Bid Depth, normalised to USD values, within 60 basis pointsdepth/bid_75bps: Bid Depth, normalised to USD values, within 75 basis pointsdepth/bid_100bps: Bid Depth, normalised to USD values, within 100 basis pointsdepth/bid_150bps: Bid Depth, normalised to USD values, within 150 basis pointsdepth/bid_200bps: Bid Depth, normalised to USD values, within 200 basis pointsdepth/bid_300bps: Bid Depth, normalised to USD values, within 300 basis pointsdepth/bid_500bps: Bid Depth, normalised to USD values, within 500 basis pointsdepth/ask_0bps: Ask Depth, normalised to USD values, within 0 basis pointsdepth/ask_1bps: Ask Depth, normalised to USD values, within 1 basis pointsdepth/ask_2bps: Ask Depth, normalised to USD values, within 2 basis pointsdepth/ask_3bps: Ask Depth, normalised to USD values, within 3 basis pointsdepth/ask_5bps: Ask Depth, normalised to USD values, within 5 basis pointsdepth/ask_10bps: Ask Depth, normalised to USD values, within 10 basis pointsdepth/ask_15bps: Ask Depth, normalised to USD values, within 15 basis pointsdepth/ask_20bps: Ask Depth, normalised to USD values, within 20 basis pointsdepth/ask_25bps: Ask Depth, normalised to USD values, within 25 basis pointsdepth/ask_30bps: Ask Depth, normalised to USD values, within 30 basis pointsdepth/ask_40bps: Ask Depth, normalised to USD values, within 40 basis pointsdepth/ask_50bps: Ask Depth, normalised to USD values, within 50 basis pointsdepth/ask_60bps: Ask Depth, normalised to USD values, within 60 basis pointsdepth/ask_75bps: Ask Depth, normalised to USD values, within 75 basis pointsdepth/ask_100bps: Ask Depth, normalised to USD values, within 100 basis pointsdepth/ask_150bps: Ask Depth, normalised to USD values, within 150 basis pointsdepth/ask_200bps: Ask Depth, normalised to USD values, within 200 basis pointsdepth/ask_300bps: Ask Depth, normalised to USD values, within 300 basis pointsdepth/ask_500bps: Ask Depth, normalised to USD values, within 500 basis points

