Get Slice
curl --request GET \
--url https://api.example.com/v1/tracks/{track_id}/slices/{spool_id}import requests
url = "https://api.example.com/v1/tracks/{track_id}/slices/{spool_id}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/v1/tracks/{track_id}/slices/{spool_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}/slices/{spool_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}/slices/{spool_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}/slices/{spool_id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/tracks/{track_id}/slices/{spool_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
Get Slice
Fetch one erasure-coded slice of a track by spool position.
GET
/
v1
/
tracks
/
{track_id}
/
slices
/
{spool_id}
Get Slice
curl --request GET \
--url https://api.example.com/v1/tracks/{track_id}/slices/{spool_id}import requests
url = "https://api.example.com/v1/tracks/{track_id}/slices/{spool_id}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/v1/tracks/{track_id}/slices/{spool_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}/slices/{spool_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}/slices/{spool_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}/slices/{spool_id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/tracks/{track_id}/slices/{spool_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_bodyFetches one erasure-coded slice of a track: the raw material of reads, exposed for verifiers, repair tooling, and the curious.
The parameters are the track address and the spool position within its assigned group. The response is the raw slice bytes, nothing else. The Merkle material to verify a slice comes separately, from track proof and the track’s on-chain commitments (what a slice is).
Ordinary consumers never need this endpoint. Get object and get track return decoded payloads; the gateway fetches and assembles slices for you.
An unknown track or an out-of-range spool position gets the usual errors (conventions).
Example
curl -s -o slice.bin "$TAPE_GATEWAY/v1/tracks/7f3kD9mQxYz2pW8vN4cRtE5uH6bJamd9GvKq2rTeUWXs/slices/3"