---
title: "client.apps"
description: "Apps API resource. CRUD / deploy / domain / version-file ops are
generated; only the preview-session lifecycle stays hand-written."
section: "Libraries"
group: "SDK resources"
order: 201
---

Accessed via `client.apps`.

## Methods

### `create`

Create a new app.

```ts
create(params: CreateAppParams): Promise<App>
```

**Types:** [CreateAppParams](/types/create-app-params) · [App](/types/app)

### `createVersionFile`

Create a file in a specific app version.

```ts
createVersionFile(params: CreateAppVersionFileParams): Promise<SuccessResponse>
```

**Types:** [CreateAppVersionFileParams](/types/create-app-version-file-params) · [SuccessResponse](/types/success-response)

### `delete`

Soft-delete an app.

```ts
delete(params: DeleteAppParams): Promise<SuccessResponse>
```

**Types:** [DeleteAppParams](/types/delete-app-params) · [SuccessResponse](/types/success-response)

### `deleteVersionFile`

Delete a file from a specific app version.

```ts
deleteVersionFile(params: DeleteAppVersionFileParams): Promise<SuccessResponse>
```

**Types:** [DeleteAppVersionFileParams](/types/delete-app-version-file-params) · [SuccessResponse](/types/success-response)

### `deploy`

Deploy the app's default version (legacy shortcut).

```ts
deploy(params: DeployAppParams): Promise<Deploy>
```

**Types:** [DeployAppParams](/types/deploy-app-params) · [Deploy](/types/deploy)

### `getDomain`

Get the custom domain attached to an app, or null.

```ts
getDomain(params: GetAppDomainParams): Promise<AppDomain | null>
```

**Types:** [GetAppDomainParams](/types/get-app-domain-params) · [AppDomain](/types/app-domain)

### `getPreview`

Get the current state of a preview session.

```ts
getPreview(params: { sessionId: string }): Promise<unknown>
```

### `keepalivePreview`

Heartbeat a preview session. Call every ~30s while the preview is visible.

```ts
keepalivePreview(params: { sessionId: string; }): Promise<{ id: string; status: string }>
```

### `list`

List apps with pagination and optional filtering.

```ts
list(params?: Omit<ListAppsParams, "filter" | "orderBy"> & { filter?: AppFilter; orderBy?: AppOrderBy[]; } & AppShorthands): Promise<Page<App>>
```

**Types:** [ListAppsParams](/types/list-apps-params) · [AppFilter](/types/app-filter) · [AppOrderBy](/types/app-order-by) · [AppShorthands](/types/app-shorthands) · [Page](/types/page) · [App](/types/app)

### `listVersionFiles`

List files in a specific app version.

```ts
listVersionFiles(params: ListAppVersionFilesParams): Promise<AppFileListResponse>
```

**Types:** [ListAppVersionFilesParams](/types/list-app-version-files-params) · [AppFileListResponse](/types/app-file-list-response)

### `purge`

Permanently delete a soft-deleted app.

```ts
purge(params: PurgeAppParams): Promise<SuccessResponse>
```

**Types:** [PurgeAppParams](/types/purge-app-params) · [SuccessResponse](/types/success-response)

### `readVersionFile`

Read a file's content from a specific app version.

```ts
readVersionFile(params: ReadAppVersionFileParams): Promise<AppFileContentResponse>
```

**Types:** [ReadAppVersionFileParams](/types/read-app-version-file-params) · [AppFileContentResponse](/types/app-file-content-response)

### `removeDomain`

Detach the app's custom domain.

```ts
removeDomain(params: RemoveAppDomainParams): Promise<SuccessResponse>
```

**Types:** [RemoveAppDomainParams](/types/remove-app-domain-params) · [SuccessResponse](/types/success-response)

### `restore`

Restore a soft-deleted app.

```ts
restore(params: RestoreAppParams): Promise<App>
```

**Types:** [RestoreAppParams](/types/restore-app-params) · [App](/types/app)

### `retrieve`

Get a single app by ID.

```ts
retrieve(params: RetrieveAppParams): Promise<App>
```

**Types:** [RetrieveAppParams](/types/retrieve-app-params) · [App](/types/app)

### `setDomain`

Attach (or replace) the app's custom domain.

```ts
setDomain(params: SetAppDomainParams): Promise<AppDomain>
```

**Types:** [SetAppDomainParams](/types/set-app-domain-params) · [AppDomain](/types/app-domain)

### `startPreview`

Start (or wake) a live preview session for the given version.
Idempotent — returns the existing session if one is active.
`POST /api/app-preview-sessions`

```ts
startPreview(params: { appVersionId: string }): Promise<unknown>
```

### `stopPreview`

Stop a preview session and tear down the sandbox.

```ts
stopPreview(params: { sessionId: string }): Promise<SuccessResponse>
```

**Types:** [SuccessResponse](/types/success-response)

### `update`

Update an app (name, description, handle, publicAccess, defaultVersionId, config).

```ts
update(params: UpdateAppParams): Promise<App>
```

**Types:** [UpdateAppParams](/types/update-app-params) · [App](/types/app)

### `updateVersionFile`

Update a file in a specific app version.

```ts
updateVersionFile(params: UpdateAppVersionFileParams): Promise<SuccessResponse>
```

**Types:** [UpdateAppVersionFileParams](/types/update-app-version-file-params) · [SuccessResponse](/types/success-response)
