Clatter Labs
Console

Code Buckets

Create a project

Make a project and get its Project ID.

POSTapi.codebuckets.clatterlabs.xyz/v1/projectsbuckets:write

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

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.

Body

application/json

namestringrequired

Up to 80 characters.

descriptionstring

Up to 500 characters.

Response

201 · application/json

objectstring

Always project.

idstring

The Project ID, like cbp_4k9x2m7q1n8v3c6z0b5w. Stable for the life of the project.

project_idstring

Same as id, for convenience.

namestring

The project's name.

descriptionstring | null

Your description.

bucketsinteger

How many buckets the project has.

created_at / updated_atstring

ISO 8601 timestamps.

Errors

StatusCodeWhen
400bad_requestname is missing or too long.
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.
409limit_reachedYou 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"
}