# Get a project

> One project by its Project ID.

`GET https://api.codebuckets.clatterlabs.xyz/v1/projects/{project_id}` (key permission: `buckets:read`)

Returns the project with its bucket count.

## Authorizations

- `Authorization` (string, required): Your API key as a bearer token: `Bearer clsk_...`. Create keys in the [Console](https://console.clatterlabs.com/api-keys) with the Code Buckets permissions you need.
- `X-Clatter-Account` (string, required): 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

- `project_id` (string, required): The Project ID (`cbp_…`).

## Response

- `object` (string): Always `project`.
- `id` (string): The Project ID, like `cbp_4k9x2m7q1n8v3c6z0b5w`. Stable for the life of the project.
- `project_id` (string): Same as `id`, for convenience.
- `name` (string): The project's name.
- `description` (string | null): Your description.
- `buckets` (integer): How many buckets the project has.
- `created_at / updated_at` (string): ISO 8601 timestamps.

## Example request

```bash
curl "https://api.codebuckets.clatterlabs.xyz/v1/projects/PROJECT_ID" \
  -H "Authorization: Bearer $CLATTER_API_KEY" \
  -H "X-Clatter-Account: $CLATTER_ACCOUNT_ID"
```

## 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 project with that id on your account. |

## Example response

```json
{
  "object": "project",
  "id": "cbp_4k9x2m7q1n8v3c6z0b5w",
  "project_id": "cbp_4k9x2m7q1n8v3c6z0b5w",
  "name": "storefront",
  "description": "Web shop and its assets",
  "buckets": 1,
  "created_at": "2026-10-28T14:05:11.482Z",
  "updated_at": "2026-10-28T14:05:11.482Z"
}
```


