> ## Documentation Index
> Fetch the complete documentation index at: https://docs.spitzli.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Registry REST API

> Query customer, project and audit inventory with the existing OAuth resource.

> [!NOTE]
>
> This page covers customer/project inventory. For the separate plugin release registry, see [Spitzli Cloud plugins](https://docs.spitzli.cloud/developers/plugins.md).

The registry API accepts OAuth bearer tokens for the Spitzli Cloud MCP resource and the corresponding registry scopes. Browser cookies are not registry API authorization.

## Discover the contract

`GET /api/registry` returns supported operations, collections and JSON schemas. Use that response before constructing writes.

```bash theme={null}
curl --fail-with-body \
  -H "Authorization: Bearer $WEBDOCK_ACCESS_TOKEN" \
  'https://studio.webdock.dev/api/registry'
```

## Collections and operations

| Method | Path | Purpose |
| - | - | - |
| GET | `/api/registry/{collection}` | List records |
| GET | `/api/registry/{collection}/{id}` | Read one record |
| POST | `/api/registry/customers` | Create a customer |
| POST | `/api/registry/projects` | Create a project |
| PUT | `/api/registry/{collection}/{id}` | Update a writable record |
| PATCH | `/api/registry/customers/{id}` | Archive or restore a customer |
| PATCH | `/api/registry/projects/{id}` | Archive or restore a project |

Current native collections are `customers`, `projects` and read-only `audit-events`. Older `cms-instances` examples belong to the retained TypeScript contract and are not part of this native discovery response. Creating a project does not deploy a website.

## Filtering and pagination

Lists support validated `search`, `page`, `limit`, `status` and `sort` parameters. The maximum list limit is 50. Use the discovery schema for collection-specific filters; unsupported filters are rejected.

```bash theme={null}
curl --fail-with-body \
  -H "Authorization: Bearer $WEBDOCK_ACCESS_TOKEN" \
  'https://studio.webdock.dev/api/registry/projects?status=active&sort=name&limit=20'
```

Keep IDs as strings. Unknown fields, unsupported filters and duplicate query parameters are rejected. JSON request bodies are limited to 64 KiB.

> [!WARNING]
>
> Registry creates are not idempotent. After an ambiguous timeout, inspect existing records before retrying. Registry archive/restore does not implement infrastructure deletion.

Source: native Registry resource adapter (`crates/control-plane/src/resource_registry.rs`) and query contract (`crates/registry/src/query.rs`).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.