curl --request POST \
--url https://api.glassmarkets.io/v2/organizations/reported-metrics/ \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
[
{
"organization": "<string>",
"asset": "<string>",
"exchange": "<string>",
"pair": "<string>",
"ts_iso": "2023-11-07T05:31:56Z",
"metric": "<string>",
"value": 123,
"interval": "1d",
"dry_run": true
}
]
'import requests
url = "https://api.glassmarkets.io/v2/organizations/reported-metrics/"
payload = [
{
"organization": "<string>",
"asset": "<string>",
"exchange": "<string>",
"pair": "<string>",
"ts_iso": "2023-11-07T05:31:56Z",
"metric": "<string>",
"value": 123,
"interval": "1d",
"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: '<string>',
asset: '<string>',
exchange: '<string>',
pair: '<string>',
ts_iso: '2023-11-07T05:31:56Z',
metric: '<string>',
value: 123,
interval: '1d',
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));{
"message": "<string>",
"results": {
"stored": 123,
"stored_unlisted_pair": 123,
"duplicate": 123,
"rejected": 123
},
"dry_run_results": {
"stored": 123,
"stored_unlisted_pair": 123,
"duplicate": 123,
"rejected": 123
},
"unlisted_pairs": [
{
"organization": "<string>",
"asset": "<string>",
"exchange": "<string>",
"pair": "<string>",
"dry_run": true,
"count": 123
}
],
"rejected": [
{
"organization": "<string>",
"asset": "<string>",
"exchange": "<string>",
"pair": "<string>",
"dry_run": true,
"count": 123,
"reason": "asset_not_found",
"metric": "<string>"
}
]
}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.
curl --request POST \
--url https://api.glassmarkets.io/v2/organizations/reported-metrics/ \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
[
{
"organization": "<string>",
"asset": "<string>",
"exchange": "<string>",
"pair": "<string>",
"ts_iso": "2023-11-07T05:31:56Z",
"metric": "<string>",
"value": 123,
"interval": "1d",
"dry_run": true
}
]
'import requests
url = "https://api.glassmarkets.io/v2/organizations/reported-metrics/"
payload = [
{
"organization": "<string>",
"asset": "<string>",
"exchange": "<string>",
"pair": "<string>",
"ts_iso": "2023-11-07T05:31:56Z",
"metric": "<string>",
"value": 123,
"interval": "1d",
"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: '<string>',
asset: '<string>',
exchange: '<string>',
pair: '<string>',
ts_iso: '2023-11-07T05:31:56Z',
metric: '<string>',
value: 123,
interval: '1d',
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));{
"message": "<string>",
"results": {
"stored": 123,
"stored_unlisted_pair": 123,
"duplicate": 123,
"rejected": 123
},
"dry_run_results": {
"stored": 123,
"stored_unlisted_pair": 123,
"duplicate": 123,
"rejected": 123
},
"unlisted_pairs": [
{
"organization": "<string>",
"asset": "<string>",
"exchange": "<string>",
"pair": "<string>",
"dry_run": true,
"count": 123
}
],
"rejected": [
{
"organization": "<string>",
"asset": "<string>",
"exchange": "<string>",
"pair": "<string>",
"dry_run": true,
"count": 123,
"reason": "asset_not_found",
"metric": "<string>"
}
]
}Authorizations
Token-based authentication with required prefix "Token ". Example: "Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b"
Body
Organization slug. Available organizations are returned in the /v1/organizations endpoint
Asset symbol. Available assets are returned in the /v1/organizations endpoint. You cannot submit data for unsupported assets
Exchange slug. Supported exchanges are returned in the /v1/organizations endpoint, but you can also submit data for unsupported exchanges
Pair. Supported pairs are returned in the /v1/organizations endpoint, but you can also submit data for unsupported pairs
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_0.05bps: Bid Depth, normalised to USD values, within 0.05 basis pointsdepth/bid_0.1bps: Bid Depth, normalised to USD values, within 0.1 basis pointsdepth/bid_0.15bps: Bid Depth, normalised to USD values, within 0.15 basis pointsdepth/bid_0.25bps: Bid Depth, normalised to USD values, within 0.25 basis pointsdepth/bid_0.5bps: Bid Depth, normalised to USD values, within 0.5 basis pointsdepth/bid_0.75bps: Bid Depth, normalised to USD values, within 0.75 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_0.05bps: Ask Depth, normalised to USD values, within 0.05 basis pointsdepth/ask_0.1bps: Ask Depth, normalised to USD values, within 0.1 basis pointsdepth/ask_0.15bps: Ask Depth, normalised to USD values, within 0.15 basis pointsdepth/ask_0.25bps: Ask Depth, normalised to USD values, within 0.25 basis pointsdepth/ask_0.5bps: Ask Depth, normalised to USD values, within 0.5 basis pointsdepth/ask_0.75bps: Ask Depth, normalised to USD values, within 0.75 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
Interval of the reported metric. Defaults to 1d.
1d- Daily data.1h- Hourly data.5m- 5-minute data.
1d, 1h, 5m Resolve and report this item exactly like a real submission, without writing it. Counted under dry_run_results.
Response
Items submitted without dry_run.
Show child attributes
Show child attributes
Items submitted with dry_run; none of them were written.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes

