---
title: "SDK: issues"
description: "The issues 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: issues

{/* 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 `issues` 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/)).

## issuesArchive

Archive an issue: hidden from lists, restorable for 30 days, then removed; refused while its task holds a lease

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

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

## issuesAssign

Assign an issue to a person, agent or bot; agents and bots get the issue's one task

- Request: `POST` on `/v1/tenants/{tenantId}/projects/{projectId}/issues/{issueId}/assign`

```ts
issuesAssign(args: { tenantId: string; projectId: string; issueId: string; body: AssignIssueRequest }, options?: CallOptions): Promise<AssignResult>
```

## issuesCreate

Create an issue

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

```ts
issuesCreate(args: { tenantId: string; projectId: string; body: CreateIssueRequest }, options?: CallOptions): Promise<Issue>
```

## issuesEvents

The audit trail of an issue

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

```ts
issuesEvents(args: { tenantId: string; projectId: string; issueId: string }, options?: CallOptions): Promise<IssueEventList>
```

## issuesGet

Read an issue

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

```ts
issuesGet(args: { tenantId: string; projectId: string; issueId: string }, options?: CallOptions): Promise<Issue>
```

## issuesImport

Import issues from a Linear, Jira or GitHub Projects export

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

```ts
issuesImport(args: { tenantId: string; projectId: string; body: ImportRequest }, options?: CallOptions): Promise<ImportReport>
```

## issuesList

List a project's issues; archived=true lists the archived ones that can still be restored

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

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

## issuesPull

Pull issues from a connected Linear workspace or GitHub repository; read only at the tracker, idempotent by the tracker's own ID, with dryRun to check first

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

```ts
issuesPull(args: { tenantId: string; projectId: string; body: PullIssuesRequest }, options?: CallOptions): Promise<ImportReport>
```

## issuesRestore

Restore an archived issue within 30 days

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

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

## issuesUpdate

Change an issue's fields; status can never be set to done

- Request: `PATCH` on `/v1/tenants/{tenantId}/projects/{projectId}/issues/{issueId}`

```ts
issuesUpdate(args: { tenantId: string; projectId: string; issueId: string; body: UpdateIssueRequest }, options?: CallOptions): Promise<Issue>
```

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