Find Tracks
curl --request POST \
--url https://api.example.com/v1/tapes/{tape_id}/tracks/findimport requests
url = "https://api.example.com/v1/tapes/{tape_id}/tracks/find"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.example.com/v1/tapes/{tape_id}/tracks/find', 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/tapes/{tape_id}/tracks/find",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$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/tapes/{tape_id}/tracks/find"
req, _ := http.NewRequest("POST", url, nil)
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.example.com/v1/tapes/{tape_id}/tracks/find")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/tapes/{tape_id}/tracks/find")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_bodyTracks
Find Tracks
Locate tracks on a tape by their lookup key.
POST
/
v1
/
tapes
/
{tape_id}
/
tracks
/
find
Find Tracks
curl --request POST \
--url https://api.example.com/v1/tapes/{tape_id}/tracks/findimport requests
url = "https://api.example.com/v1/tapes/{tape_id}/tracks/find"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.example.com/v1/tapes/{tape_id}/tracks/find', 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/tapes/{tape_id}/tracks/find",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$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/tapes/{tape_id}/tracks/find"
req, _ := http.NewRequest("POST", url, nil)
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.example.com/v1/tapes/{tape_id}/tracks/find")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/tapes/{tape_id}/tracks/find")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_bodyResolves a lookup key to a track without listing the whole tape.
Every track has a key: the hash of its name for named writes, the content hash for nameless ones (how keys work). Because names can be written more than once, the request also says which version you want:
The response is the matching track record, in the same shape as track metadata. Requests and responses use the SDK’s binary encoding, so the SDK is the practical way to call it (conventions).
From Rust,
| Field | Meaning |
|---|---|
key | the 32-byte lookup key |
version | latest, or a specific track number |
find_track resolves the same lookup from chain state (Rust SDK).