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

# Projects Methods

> HoneyHive TypeScript Control Plane SDK Projects namespace reference

#### create

> **create**(`request`: [`CreateProjectRequest`](/v2/control-plane-sdk-reference/typescript/ref/projects/CreateProjectRequest)): `Promise`\<[`CreateProjectResponse`](/v2/control-plane-sdk-reference/typescript/ref/projects/CreateProjectResponse)>

Create a project

Create a project in a workspace. The parent workspace is identified by the `workspace_id`
path parameter alone; the `x-hh-workspace-id` header does not participate. A workspace's id
is listed on the API keys page of its workspace settings in the HoneyHive app.

The optional `project_creator` field names the user (by email) who receives the
project-creator membership on the new project. The named user must already be a member of
the workspace. When omitted, the project is created without any membership. The field is
only accepted on API-key-initiated requests. User-initiated creation always makes the
calling user the creator, so sending the field returns a 400.

The roles that membership carries come from your organization's role configuration. An
organization that grants no role on project creation is a supported case: the request
still succeeds and the named user receives no access. A 200 response is not by itself
confirmation that the named user was granted anything.

A `project_creator` who is already signed in does not see the new project immediately. A
session captures its scope tree and permission grants when it is created, so a membership
granted afterwards is not reflected in it. Creating the project marks that user's sessions
for refresh, and the refresh takes effect on their next request to the control plane, so
an idle browser tab may need a page reload.

#### delete

> **delete**(`request`: [`DeleteProjectRequest`](/v2/control-plane-sdk-reference/typescript/ref/projects/DeleteProjectRequest)): `Promise`\<[`DeleteProjectResponse`](/v2/control-plane-sdk-reference/typescript/ref/projects/DeleteProjectResponse)>

Delete a project

Delete a project. The project is soft-deleted (archived) and no longer appears in reads;
the response returns the archived project. The project is identified by the `project_id`
path parameter alone; the `x-hh-project-id` header does not participate.

#### get

> **get**(`request`: [`GetProjectRequest`](/v2/control-plane-sdk-reference/typescript/ref/projects/GetProjectRequest)): `Promise`\<[`GetProjectResponse`](/v2/control-plane-sdk-reference/typescript/ref/projects/GetProjectResponse)>

Get a project

Retrieve a single project by id. The project is identified by the `project_id` path
parameter alone; the `x-hh-project-id` header does not participate.

#### update

> **update**(`request`: [`UpdateProjectRequest`](/v2/control-plane-sdk-reference/typescript/ref/projects/UpdateProjectRequest)): `Promise`\<[`UpdateProjectResponse`](/v2/control-plane-sdk-reference/typescript/ref/projects/UpdateProjectResponse)>

Update a project

Update a project's display name and/or description. The project is identified by the
`project_id` path parameter alone; the `x-hh-project-id` header does not participate.
Only fields included in the request body are modified.


## Related topics

- [Alerts Methods](/v2/control-plane-sdk-reference/typescript/ref/alerts/index.md)
- [Workspaces Methods](/v2/control-plane-sdk-reference/typescript/ref/workspaces/index.md)
- [Experiments Methods](/v2/sdk-reference/typescript/ref/experiments/index.md)
