Code Buckets
Get the code tree
Every file and folder in the bucket's code.
Lists the code tree as flat paths. Pass ref to read a specific version; responses for an explicit ref never change, so they're cached at the edge and come back fast.
Authorizations
AuthorizationstringrequiredYour API key as a bearer token: Bearer clsk_.... Create keys in the Console with the Code Buckets permissions you need.
X-Clatter-AccountstringrequiredThe Account ID that owns the key, like CL-7K2M9QXA. Find it in Console › Settings. A missing value answers 401 missing_account_id; someone else's answers 401 account_mismatch.
Path parameters
bucket_idstringrequiredThe bucket id (cbk_…).
Query parameters
refstringA code ref (40 hex characters) from bucket.code.ref, an event, or a backup's code_ref. Defaults to the current tree.
Response
200 · application/json
objectstringtree.
bucket_idstringThe bucket.
refstring | nullThe ref listed (null when there's no code yet).
filesobject[]{ path, type: "file", size } and { path, type: "dir" }, sorted by path.
truncatedbooleantrue for very large trees (over 100,000 entries).
Errors
| Status | Code | When |
|---|---|---|
401 | invalid_api_key / missing_account_id / account_mismatch | The key or Account ID is wrong. |
402 | quota_exceeded | This month's free tokens are used up. |
403 | insufficient_scope | The key lacks the permission. |
404 | not_found | No bucket with that id on your account. |
400 | bad_ref | ref isn't 40 hex characters. |
curl "https://api.codebuckets.clatterlabs.xyz/v1/buckets/BUCKET_ID/tree?ref=9b1f0c5e2a7d43e8b6c1f0a9d2e5b7c4a1f3e8d0" \
-H "Authorization: Bearer $CLATTER_API_KEY" \
-H "X-Clatter-Account: $CLATTER_ACCOUNT_ID"import os
import requests
headers = {
"Authorization": f"Bearer {os.environ['CLATTER_API_KEY']}",
"X-Clatter-Account": os.environ["CLATTER_ACCOUNT_ID"],
}
r = requests.get("https://api.codebuckets.clatterlabs.xyz/v1/buckets/BUCKET_ID/tree", params={"ref": "9b1f0c5e2a7d43e8b6c1f0a9d2e5b7c4a1f3e8d0"}, headers=headers)
print(r.json())const headers = {
Authorization: `Bearer ${process.env.CLATTER_API_KEY}`,
"X-Clatter-Account": process.env.CLATTER_ACCOUNT_ID,
};
const res = await fetch("https://api.codebuckets.clatterlabs.xyz/v1/buckets/BUCKET_ID/tree?ref=9b1f0c5e2a7d43e8b6c1f0a9d2e5b7c4a1f3e8d0", {
method: "GET",
headers,
});
console.log(await res.json());{
"object": "tree",
"bucket_id": "cbk_q7c1r9t2y6u0i3o8p5a4",
"ref": "9b1f0c5e2a7d43e8b6c1f0a9d2e5b7c4a1f3e8d0",
"files": [
{
"path": "README.md",
"type": "file",
"size": 1840
},
{
"path": "src",
"type": "dir"
},
{
"path": "src/index.ts",
"type": "file",
"size": 5121
}
],
"truncated": false
}