Clatter Labs
Console

Code Buckets

Download a chunk

One 16 MiB part of a stored file.

GETapi.codebuckets.clatterlabs.xyz/v1/buckets/{bucket_id}/objects/{object_id}/chunks/{index}buckets:read

Returns chunk index decrypted, with its SHA-256 in the X-Content-SHA256 header. Concatenate chunks 0 to chunk_count - 1 to rebuild the file. Doesn't count toward the key's per-minute limit.

Authorizations

Authorizationstringrequired

Your API key as a bearer token: Bearer clsk_.... Create keys in the Console with the Code Buckets permissions you need.

X-Clatter-Accountstringrequired

The 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_idstringrequired

The bucket id (cbk_…).

object_idstringrequired

The object id (cbo_…).

indexintegerrequired

0 to chunk_count - 1.

Response

200 · application/json

(body)binary

The chunk's bytes.

Errors

StatusCodeWhen
401invalid_api_key / missing_account_id / account_mismatchThe key or Account ID is wrong.
402quota_exceededThis month's free tokens are used up.
403insufficient_scopeThe key lacks the permission.
404not_foundNo object with that id on your account.
400bad_chunkIndex out of range.
curl "https://api.codebuckets.clatterlabs.xyz/v1/buckets/cbk_q7c1r9t2y6u0i3o8p5a4/objects/cbo_m2n8b4v6c1x9z3l7k5j0/chunks/0" \
  -H "Authorization: Bearer $CLATTER_API_KEY" \
  -H "X-Clatter-Account: $CLATTER_ACCOUNT_ID" \
  -o part-00000
import os, requests

BASE = "https://api.codebuckets.clatterlabs.xyz"
headers = {"Authorization": f"Bearer {os.environ['CLATTER_API_KEY']}", "X-Clatter-Account": os.environ["CLATTER_ACCOUNT_ID"]}

r = requests.get(f"{BASE}/v1/buckets/cbk_q7c1r9t2y6u0i3o8p5a4/objects/cbo_m2n8b4v6c1x9z3l7k5j0/chunks/0", headers=headers)
r.raise_for_status()
open("part-00000", "wb").write(r.content)
const BASE = "https://api.codebuckets.clatterlabs.xyz";
const headers = {
  Authorization: `Bearer ${process.env.CLATTER_API_KEY}`,
  "X-Clatter-Account": process.env.CLATTER_ACCOUNT_ID,
};
const res = await fetch(`${BASE}/v1/buckets/cbk_q7c1r9t2y6u0i3o8p5a4/objects/cbo_m2n8b4v6c1x9z3l7k5j0/chunks/0`, { headers });
if (!res.ok) throw new Error((await res.json()).error.message);
await (await import("node:fs/promises")).writeFile("part-00000", Buffer.from(await res.arrayBuffer()));