List Disks
curl --request GET \
--url https://api.example.com/api/v1/disksimport requests
url = "https://api.example.com/api/v1/disks"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/v1/disks', 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/api/v1/disks",
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/api/v1/disks"
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/api/v1/disks")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/disks")
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_body{
"disks": [
{
"public_id": "<string>",
"title": "<string>",
"summary": "<string>",
"category": "<string>",
"visibility": "<string>",
"relationship": "<string>",
"owner_user_id": "<string>",
"owner_display_name": {},
"tags": [
"<string>"
],
"word_count": 123,
"saved_at": {},
"created_at": "<string>",
"similarity": 123
}
],
"scope": "<string>",
"total": 123
}Reference
List Disks
List, search, and filter owned and active-saved Disks.
GET
/
api
/
v1
/
disks
List Disks
curl --request GET \
--url https://api.example.com/api/v1/disksimport requests
url = "https://api.example.com/api/v1/disks"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/v1/disks', 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/api/v1/disks",
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/api/v1/disks"
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/api/v1/disks")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/disks")
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_body{
"disks": [
{
"public_id": "<string>",
"title": "<string>",
"summary": "<string>",
"category": "<string>",
"visibility": "<string>",
"relationship": "<string>",
"owner_user_id": "<string>",
"owner_display_name": {},
"tags": [
"<string>"
],
"word_count": 123,
"saved_at": {},
"created_at": "<string>",
"similarity": 123
}
],
"scope": "<string>",
"total": 123
}Returns a paginated list of owned and active-saved Disks, optionally narrowed by scope, category, or tag.
When
search is set, current production behavior searches owned Disks only and returns a slimmer result shape.
Query parameters
string
Natural language search over owned Disks. Combines semantic embedding match with title/summary
ILIKE fallback.string
default:"all"
Library scope for non-search lists:
all, owned, saved, private, or published.string
Filter to one category id (e.g.
technology, philosophy, spirituality). Ignored when search is set.string
Filter to Disks containing this exact tag name. Applied after the search/category step.
integer
default:"20"
Page size. Capped at
100.integer
default:"0"
Pagination offset. Ignored when
search is set.Examples
# Most recent
curl https://skilldiscs.com/api/v1/disks \
-H "Authorization: Bearer sk_your_key_here"
# Search
curl "https://skilldiscs.com/api/v1/disks?search=machine+learning" \
-H "Authorization: Bearer sk_your_key_here"
# Filter
curl "https://skilldiscs.com/api/v1/disks?scope=owned&category=spirituality&tag=meditation" \
-H "Authorization: Bearer sk_your_key_here"
Response
array
Show Disk summary
Show Disk summary
string
string
string
string
string
private or published for active rows. Present on non-search list rows.string
owned or saved.string
Owner UUID. Present on non-search list rows.
string | null
Owner display name when available. Present on non-search list rows.
string[]
integer
May be omitted on semantic
search rows.string | null
ISO 8601 timestamp for saved Disks. Present on non-search list rows.
string
ISO 8601 timestamp. May be omitted on semantic
search rows.number
Only present on
search responses.string
The effective scope. Search responses always return
owned.integer
Total matching count (best-effort; equals
disks.length for search responses).{
"disks": [
{
"public_id": "abc123",
"title": "Feynman on Quantum Mechanics",
"summary": "Introductory lecture distilled into 7 sections.",
"category": "science",
"visibility": "private",
"relationship": "owned",
"owner_user_id": "8fb1d0c2-08d1-46ef-a2f3-6bf241745e24",
"owner_display_name": "Ada",
"tags": ["physics", "quantum", "lectures"],
"word_count": 4231,
"saved_at": null,
"created_at": "2026-04-12T08:14:09.000Z"
}
],
"scope": "all",
"total": 124
}