Stats
curl --request GET \
--url https://api.example.com/v1/statsimport requests
url = "https://api.example.com/v1/stats"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/v1/stats', 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.example.com/v1/stats",
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.example.com/v1/stats"
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.example.com/v1/stats")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/stats")
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_bodyStatus
Stats
A snapshot of the gateway’s storage and serving state.
GET
/
v1
/
stats
Stats
curl --request GET \
--url https://api.example.com/v1/statsimport requests
url = "https://api.example.com/v1/stats"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/v1/stats', 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.example.com/v1/stats",
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.example.com/v1/stats"
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.example.com/v1/stats")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/stats")
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_bodyReturns a snapshot of what the gateway knows and how it’s doing: counts of tracks and slices, disk usage per volume, chain ingestion progress, and request counters. Useful for dashboards and quick inspection.
Like health, this endpoint serves during bootstrap, so you can watch a fresh gateway catch up.
The full response carries more counters (bytes uploaded and downloaded, request totals, bootstrap phase and progress). Field names follow the shape above.
Example
curl -s "$TAPE_GATEWAY/v1/stats"
Response (trimmed)
{
"last_processed_slot": 18240010,
"current_epoch": 17,
"tracks_stored": 48211,
"slices_stored": 51204,
"slice_payload_bytes": 91238476512,
"disk_volumes": [
{ "name": "primary", "store_disk_bytes": 91238476512, "free_disk_bytes": 812093841920 }
],
"ingest_state": "live",
"ingest_lag_slots": 2,
"bootstrap_done": true
}