Track Metadata
curl --request GET \
--url https://api.example.com/v1/tracks/{track_id}import requests
url = "https://api.example.com/v1/tracks/{track_id}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/v1/tracks/{track_id}', 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/tracks/{track_id}",
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/tracks/{track_id}"
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/tracks/{track_id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/tracks/{track_id}")
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_bodyTracks
Track Metadata
Everything the gateway knows about a track, without fetching its bytes.
GET
/
v1
/
tracks
/
{track_id}
Track Metadata
curl --request GET \
--url https://api.example.com/v1/tracks/{track_id}import requests
url = "https://api.example.com/v1/tracks/{track_id}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/v1/tracks/{track_id}', 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/tracks/{track_id}",
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/tracks/{track_id}"
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/tracks/{track_id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/tracks/{track_id}")
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 track’s catalog record: what it is, where it lives, and what state it’s in, without moving the payload.
The tracks page explains what each of these means.
The record arrives in the SDK’s binary encoding; the SDK decodes it into a plain object for you (conventions).
From Rust,
Response
| Field | Meaning |
|---|---|
| tape, track number | which tape owns it, and where it sits |
| key | the lookup key: hash of the name for named writes, content hash for nameless ones |
| kind | inline (bytes live on-chain) or coded (erasure-coded across a spool group) |
| state | registered, certified, or invalidated |
| size | the original, un-encoded size |
| group | the spool group holding its slices |
get_track returns the same record from chain state (Rust SDK).