Code Buckets
Create a project
Make a project and get its Project ID.
Creates a project. The response carries its Project ID (cbp_…), which you use in every bucket call. An account can have up to 100 projects.
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.
Body
application/json
namestringrequiredUp to 80 characters.
descriptionstringUp to 500 characters.
Response
201 · application/json
objectstringAlways project.
idstringThe Project ID, like cbp_4k9x2m7q1n8v3c6z0b5w. Stable for the life of the project.
project_idstringSame as id, for convenience.
namestringThe project's name.
descriptionstring | nullYour description.
bucketsintegerHow many buckets the project has.
created_at / updated_atstringISO 8601 timestamps.
Errors
| Status | Code | When |
|---|---|---|
400 | bad_request | name is missing or too long. |
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. |
409 | limit_reached | You already have 100 projects. |
curl -X POST "https://api.codebuckets.clatterlabs.xyz/v1/projects" \
-H "Authorization: Bearer $CLATTER_API_KEY" \
-H "X-Clatter-Account: $CLATTER_ACCOUNT_ID" \
-H "Content-Type: application/json" \
-d '{
"name": "storefront",
"description": "Web shop and its assets"
}'import os
import requests
headers = {
"Authorization": f"Bearer {os.environ['CLATTER_API_KEY']}",
"X-Clatter-Account": os.environ["CLATTER_ACCOUNT_ID"],
}
r = requests.post(
"https://api.codebuckets.clatterlabs.xyz/v1/projects",
headers=headers,
json={
"name": "storefront",
"description": "Web shop and its assets"
},
)
print(r.json())const headers = {
Authorization: `Bearer ${process.env.CLATTER_API_KEY}`,
"X-Clatter-Account": process.env.CLATTER_ACCOUNT_ID,
"Content-Type": "application/json",
};
const res = await fetch("https://api.codebuckets.clatterlabs.xyz/v1/projects", {
method: "POST",
headers,
body: JSON.stringify({
"name": "storefront",
"description": "Web shop and its assets"
}),
});
console.log(await res.json());{
"object": "project",
"id": "cbp_4k9x2m7q1n8v3c6z0b5w",
"project_id": "cbp_4k9x2m7q1n8v3c6z0b5w",
"name": "storefront",
"description": "Web shop and its assets",
"buckets": 0,
"created_at": "2026-10-28T14:05:11.482Z",
"updated_at": "2026-10-28T14:05:11.482Z"
}