---
title: "SDK: projects"
description: "The projects methods of the Overlane TypeScript SDK, with their signatures. Generated from the SDK types."
---

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

# SDK: projects

{/* Generated by apps/docs/scripts/generate.mjs (SDK pages from the TypeScript types in packages/sdk). Do not edit; run `pnpm --filter @overlane/docs gen`. */}

The `projects` area has 10 methods on the client. Each takes one object of path, query and body arguments and an optional `CallOptions`, and returns a promise of the response body. A refused call rejects with `OverlaneApiError` (see the [SDK index](/sdk/)).

## projectsArchive

Archive a project and its open tasks

- Request: `POST` on `/v1/tenants/{tenantId}/projects/{projectId}/archive`

```ts
projectsArchive(args: { tenantId: string; projectId: string; body?: Record<string, unknown> }, options?: CallOptions): Promise<ProjectRecord>
```

## projectsContext

The context packet for a project

- Request: `GET` on `/v1/tenants/{tenantId}/projects/{projectId}/context`

```ts
projectsContext(args: { tenantId: string; projectId: string; query?: { commit?: string } }, options?: CallOptions): Promise<ContextPacket>
```

## projectsCreate

Create a project (idempotent on repository)

- Request: `POST` on `/v1/tenants/{tenantId}/projects`

```ts
projectsCreate(args: { tenantId: string; body: CreateProjectRequest }, options?: CallOptions): Promise<ProjectRecord>
```

## projectsDelete

Delete a project: it is archived and can be restored for 30 days, then removed; refused while a task has a lease or recorded evidence

- Request: `DELETE` on `/v1/tenants/{tenantId}/projects/{projectId}`

```ts
projectsDelete(args: { tenantId: string; projectId: string }, options?: CallOptions): Promise<ProjectRecord>
```

## projectsGet

Read a project

- Request: `GET` on `/v1/tenants/{tenantId}/projects/{projectId}`

```ts
projectsGet(args: { tenantId: string; projectId: string }, options?: CallOptions): Promise<ProjectRecord>
```

## projectsList

List the team's projects; archived=true lists the archived ones that can still be restored

- Request: `GET` on `/v1/tenants/{tenantId}/projects`

```ts
projectsList(args: { tenantId: string; query?: { archived?: string } }, options?: CallOptions): Promise<ProjectListResponse>
```

## projectsMerge

Merge a second project for the same code into this one

- Request: `POST` on `/v1/tenants/{tenantId}/projects/{projectId}/merge`

```ts
projectsMerge(args: { tenantId: string; projectId: string; body: MergeProjectRequest }, options?: CallOptions): Promise<ProjectRecord>
```

## projectsMergePreview

Count what merging another project into this one would move; changes nothing

- Request: `GET` on `/v1/tenants/{tenantId}/projects/{projectId}/merge`

```ts
projectsMergePreview(args: { tenantId: string; projectId: string; query?: { from?: string } }, options?: CallOptions): Promise<MergePreview>
```

## projectsRestore

Restore an archived project and the tasks archived with it, within 30 days

- Request: `POST` on `/v1/tenants/{tenantId}/projects/{projectId}/restore`

```ts
projectsRestore(args: { tenantId: string; projectId: string; body?: Record<string, unknown> }, options?: CallOptions): Promise<ProjectRecord>
```

## projectsUpdate

Rename a project, or change its code layer, its code map as context or repository sign-in

- Request: `PATCH` on `/v1/tenants/{tenantId}/projects/{projectId}`
- Needs an approval for agents: class `policy_change`

```ts
projectsUpdate(args: { tenantId: string; projectId: string; body: UpdateProjectRequest }, options?: CallOptions): Promise<ProjectRecord>
```

Source: https://docs.overlane.app/sdk/projects/index.mdx
