---
title: "Files hooks"
description: "React hooks for files. Standard CRUD (`useListFiles`, `useRetrieveFile`,
`useCreateFile`, `useUpdateFile`, `useDeleteFile`, `useRestoreFile`) is
generated; see ./files.gen. Hooks for the multipart upload lifecycle
(sign parts, complete, abort), the presigned download URL, and the
convert-from-URL family are hand-written below."
section: "Libraries"
group: "React hooks"
order: 420
---

## Hooks

### `useAbortFileUpload` `composite`

Abort an in-progress multipart upload.

```ts
useAbortFileUpload(options?: MutationOpts<SuccessResponse, AbortFileUploadParams>)
```

**Types:** [SuccessResponse](/types/success-response) · [AbortFileUploadParams](/types/abort-file-upload-params)

```ts
const abort = useAbortFileUpload();
abort.mutate({ id: "fil_abc123" });
```

### `useCompleteFileUpload` `composite`

Complete a multipart upload. Transitions the file row to `ready`.

```ts
useCompleteFileUpload(options?: MutationOpts<File, CompleteFileUploadParams>)
```

**Types:** [File](/types/file) · [CompleteFileUploadParams](/types/complete-file-upload-params)

```ts
const complete = useCompleteFileUpload();
complete.mutate({ id: "fil_abc123", parts: [{ partNumber: 1, etag: "..." }] });
```

### `useConvertFileToMarkdown` `composite`

Convert an existing file (PDF / DOCX / PPTX / XLSX / image / HTML / …)
to markdown via Cloudflare Workers AI. Creates a new `text/markdown`
file; invalidates file queries on success.

```ts
useConvertFileToMarkdown(options?: MutationOpts<File, ToMarkdownParams>)
```

**Types:** [File](/types/file) · [ToMarkdownParams](/types/to-markdown-params)

```ts
const toMd = useConvertFileToMarkdown();
toMd.mutate({ id: "fil_abc123" });
```

### `useCreateFile` `mutation`

Initiate a multipart upload — creates a file row in `uploading` state.

```ts
useCreateFile(options?: MutationOpts<CreateFileResponse, CreateFileParams>)
```

**Types:** [CreateFileResponse](/types/create-file-response) · [CreateFileParams](/types/create-file-params)

### `useCreateHtmlFromUrl` `mutation`

Capture the post-render HTML of a URL via Cloudflare Browser
Rendering. Creates a `text/html` file; invalidates file queries on
success.

```ts
useCreateHtmlFromUrl(options?: MutationOpts<File, HtmlFromUrlParams>)
```

**Types:** [File](/types/file) · [HtmlFromUrlParams](/types/html-from-url-params)

```ts
const html = useCreateHtmlFromUrl();
html.mutate({ workspaceId: "wsp_abc123", url: "https://example.com" });
```

### `useCreateMarkdownFromUrl` `mutation`

Render a URL and extract its content as markdown via Cloudflare
Browser Rendering. Creates a `text/markdown` file; invalidates file
queries on success.

```ts
useCreateMarkdownFromUrl(options?: MutationOpts<File, MarkdownFromUrlParams>)
```

**Types:** [File](/types/file) · [MarkdownFromUrlParams](/types/markdown-from-url-params)

```ts
const md = useCreateMarkdownFromUrl();
md.mutate({ workspaceId: "wsp_abc123", url: "https://example.com" });
```

### `useCreatePdfFromUrl` `mutation`

Render a URL as a PDF via Cloudflare Browser Rendering. Creates a file
row; invalidates file queries on success.

```ts
useCreatePdfFromUrl(options?: MutationOpts<File, PdfFromUrlParams>)
```

**Types:** [File](/types/file) · [PdfFromUrlParams](/types/pdf-from-url-params)

```ts
const pdf = useCreatePdfFromUrl();
pdf.mutate({ workspaceId: "wsp_abc123", url: "https://example.com" });
```

### `useCreateScreenshotFromUrl` `mutation`

Capture a screenshot of a URL via Cloudflare Browser Rendering. Creates
a file row; invalidates file queries on success. Screenshots are plain
files — not automatically promoted to the `image` entity.

```ts
useCreateScreenshotFromUrl(options?: MutationOpts<File, ScreenshotFromUrlParams>)
```

**Types:** [File](/types/file) · [ScreenshotFromUrlParams](/types/screenshot-from-url-params)

```ts
const shot = useCreateScreenshotFromUrl();
shot.mutate({ workspaceId: "wsp_abc123", url: "https://example.com" });
```

### `useDeleteFile` `mutation`

Soft-delete a file.

```ts
useDeleteFile(options?: MutationOpts<SuccessResponse, string>)
```

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

### `useDownloadFile` `composite`

Fetch a presigned download URL for a file. This is a query (not a
mutation) because the URL is idempotent for the caller — React Query
will cache it per file id. Disable with `enabled: false` and call
`refetch()` on demand if you want explicit "click to download" behavior.

```ts
useDownloadFile(id: string, options?: QueryOpts<FileDownloadResponse>)
```

**Types:** [FileDownloadResponse](/types/file-download-response)

```ts
const { data } = useDownloadFile("fil_abc123");
return <a href={data?.url}>Download</a>;
```

### `useListFiles` `query`

List files with pagination.

```ts
useListFiles(params?: Omit<ListFilesParams, | > & { filter?: FileFilter; orderBy?: FileOrderBy[]; } & FileShorthands, options?: QueryOpts<Page<File>>)
```

**Types:** [ListFilesParams](/types/list-files-params) · [FileFilter](/types/file-filter) · [FileOrderBy](/types/file-order-by) · [FileShorthands](/types/file-shorthands) · [Page](/types/page) · [File](/types/file)

### `usePurgeFile` `composite`

Permanently delete a soft-deleted file.

```ts
usePurgeFile(options?: MutationOpts<SuccessResponse, PurgeFileParams>)
```

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

### `useRestoreFile` `composite`

Restore a soft-deleted file.

```ts
useRestoreFile(options?: MutationOpts<File, string>)
```

**Types:** [File](/types/file)

### `useRetrieveFile` `query`

Get a file by ID.

```ts
useRetrieveFile(id: string, options?: QueryOpts<File>)
```

**Types:** [File](/types/file)

### `useSignFileUploadParts` `composite`

Sign additional part URLs for an in-progress upload.

```ts
useSignFileUploadParts(options?: MutationOpts<SignFileUploadPartsResponse, SignFileUploadPartsParams>)
```

**Types:** [SignFileUploadPartsResponse](/types/sign-file-upload-parts-response) · [SignFileUploadPartsParams](/types/sign-file-upload-parts-params)

```ts
const sign = useSignFileUploadParts();
sign.mutate({ id: "fil_abc123", partNumbers: [2, 3] });
```

### `useUpdateFile` `mutation`

Update a file (rename / move to another directory).

```ts
useUpdateFile(options?: MutationOpts<File, UpdateFileParams>)
```

**Types:** [File](/types/file) · [UpdateFileParams](/types/update-file-params)
