Skip to content

Browsing your data

The data plane stores content-addressed objects with no paths. The Git index puts human structure back on top of them: file trees, commit history, branches, tags and releases. This page is how to navigate it.

The Files tab renders the tree at a ref. Over the API:

Terminal window
export API=https://cavsnode.com/api/v1
export REPO=<repository-uuid>
export H="Authorization: Bearer $CAVS_TOKEN"
# Directory listing at the default branch
curl -sS "$API/repositories/$REPO/tree" -H "$H"
# A subdirectory on a specific ref
curl -sS "$API/repositories/$REPO/tree?ref=main&path=checkpoints/v3" -H "$H"
# One file's metadata (size, oid, last commit)
curl -sS "$API/repositories/$REPO/file?ref=main&path=model.safetensors" -H "$H"
# That file's history
curl -sS "$API/repositories/$REPO/file/history?path=model.safetensors&limit=50" -H "$H"
Parameter Applies to Default
ref tree, file the repository’s default branch
path tree, file, file/history repository root
limit file/history 50 (max 200)

Files that are LFS pointers show their oid, so you can jump straight to the artifact view or download the bytes.

Terminal window
# Recent commits
curl -sS "$API/repositories/$REPO/commits?limit=50" -H "$H"
# Only commits touching a path
curl -sS "$API/repositories/$REPO/commits?path=checkpoints&limit=20" -H "$H"
# Page backwards with an RFC 3339 cursor
curl -sS "$API/repositories/$REPO/commits?before=2026-07-01T00:00:00Z" -H "$H"
# One commit, with the artifacts it touched
curl -sS "$API/repositories/$REPO/commits/9a3f21c" -H "$H"

Each commit records which LFS artifacts it added or changed — that’s how the dashboard can answer “which commit introduced this 4 GB object?”.

Terminal window
curl -sS "$API/repositories/$REPO/branches" -H "$H"

Alongside each branch, CAVS reports health flags:

Flag Meaning
stale No commits in more than 30 days
oversized More than 2× the default branch’s storage footprint

Both are common sources of quiet storage growth — a long-lived experiment branch holding a dozen checkpoints nobody needs any more.

An artifact view is an object seen through the index: its oid, size, physical size, chunk count, download count, and the paths, commits and releases that reference it.

Terminal window
curl -sS "$API/repositories/$REPO/artifacts/$OID" -H "$H"
curl -sS "$API/repositories/$REPO/artifacts/$OID/timeline" -H "$H"

The timeline is where an artifact came from and where it went — first appearance, each commit that referenced it, each release that includes it.

Every artifact across every repository, in one filterable list:

Terminal window
curl -sS "$API/organizations/acme-ai/artifacts?sort=size&limit=20" -H "$H"
curl -sS "$API/organizations/acme-ai/artifacts?type=model&q=resnet" -H "$H"
curl -sS "$API/organizations/acme-ai/artifacts?repo=$REPO&sort=downloads" -H "$H"
Parameter Values
repo a repository UUID
type model, dataset, media, archive, other
q name substring
sort recent (default), size, downloads, name
limit page size
before RFC 3339 cursor; recent sort only

The response carries next_before — feed it back as before to page.

From the CLI:

Terminal window
cav artifacts --type model --query resnet
cav artifacts --org acme-ai --json | jq '.[] | select(.size > 1e9)'

If you want the raw data-plane view — no paths, no commits:

Terminal window
curl -sS "$API/repositories/$REPO/objects?sort=recent&limit=50&skip=0" -H "$H"
curl -sS "$API/repositories/$REPO/objects?sort=size&limit=20" -H "$H"

Each row is {oid, size, physical_size, chunk_count, created_at, downloads}. This works even on a repository that has never been indexed.

Search spans repositories, files, commits and releases, scoped to the organizations you can see:

Terminal window
curl -sS "$API/search?q=resnet" -H "$H"
curl -sS "$API/search?q=checkpoint&type=files&ext=safetensors" -H "$H"
curl -sS "$API/search?q=fix+dataloader&type=commits&repo=$REPO" -H "$H"
curl -sS "$API/search?q=weights&type=files&min_size=1000000000" -H "$H"
Parameter Meaning
q the query (required)
type repos, files, commits, releases — omit for all
org restrict to one organization
repo restrict to one repository
ext file extension filter (files only)
min_size, max_size byte-size bounds (files only)

In the dashboard, press / anywhere to focus the search box. From the CLI: cav search "resnet".

Organization-level, for the “where did the terabytes go” question:

Terminal window
curl -sS "$API/organizations/acme-ai/usage/series?days=90" -H "$H"
curl -sS "$API/repositories/$REPO/storage/summary" -H "$H"
curl -sS "$API/repositories/$REPO/storage/folders?depth=2&limit=20" -H "$H"
curl -sS "$API/repositories/$REPO/storage/series?days=90" -H "$H"

storage/folders walks the indexed tree and aggregates by directory — depth between 1 and 5 controls how deep the roll-up goes. See Storage insights.