Code Buckets
Download an object
The whole file, decrypted.
Streams the original file back, decrypted, with Content-Disposition: attachment. Objects over 1 GB download chunk by chunk with Download a chunk.
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_…).
object_idstringrequiredThe object id (cbo_…).
Response
200 · application/json
(body)binaryThe file's bytes, Content-Length set.
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 object with that id on your account. |
409 | not_ready | The upload isn't complete. |
413 | use_chunks | Over 1 GB: download chunks; error.chunk_count tells you how many. |
curl "https://api.codebuckets.clatterlabs.xyz/v1/buckets/cbk_q7c1r9t2y6u0i3o8p5a4/objects/cbo_m2n8b4v6c1x9z3l7k5j0/content" \
-H "Authorization: Bearer $CLATTER_API_KEY" \
-H "X-Clatter-Account: $CLATTER_ACCOUNT_ID" \
-o storefront.zipimport 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/content", headers=headers)
r.raise_for_status()
open("storefront.zip", "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/content`, { headers });
if (!res.ok) throw new Error((await res.json()).error.message);
await (await import("node:fs/promises")).writeFile("storefront.zip", Buffer.from(await res.arrayBuffer()));Was this page helpful?