# ovok_sdk.resources.documents

Canonical page: https://docs.ovok.com/python-sdk/reference/resources/documents

Stored documents: uploads, metadata and download links.

## DocumentsResource [#documentsresource]

```python
DocumentsResource(http: HttpClient, base_url: str)
```

List, upload, replace and delete stored documents, and build download URLs.

Created by `Ovok`; access it as `ovok.documents`.

### list() [#list]

```python
list(params: QueryParams | None = None) -> Resource
```

List documents.

**Parameters**

| Name | Type | Default | Description |
| --- | --- | --- | --- |
| `params` | `QueryParams \| None` | `None` | Optional query parameters passed to the API. |

**Returns**

- `Resource`: The API's list response.

### create_upload() [#create_upload]

```python
create_upload(body: Resource) -> Resource
```

Create a document and start its upload.

**Parameters**

| Name | Type | Default | Description |
| --- | --- | --- | --- |
| `body` | `Resource` |  | The document metadata as the API takes it. |

**Returns**

- `Resource`: The created document, including where to upload the file.

### replace_upload() [#replace_upload]

```python
replace_upload(document_id: str, body: Resource) -> Resource
```

Start an upload that replaces a document's file.

**Parameters**

| Name | Type | Default | Description |
| --- | --- | --- | --- |
| `document_id` | `str` |  | The document ID. |
| `body` | `Resource` |  | The new file's metadata. |

**Returns**

- `Resource`: The document, including where to upload the new file.

### update_metadata() [#update_metadata]

```python
update_metadata(document_id: str, body: Resource) -> Resource
```

Update a document's metadata without touching its file.

**Parameters**

| Name | Type | Default | Description |
| --- | --- | --- | --- |
| `document_id` | `str` |  | The document ID. |
| `body` | `Resource` |  | The metadata fields to change. |

**Returns**

- `Resource`: The updated document.

### delete() [#delete]

```python
delete(document_id: str) -> Resource
```

Delete a document.

**Parameters**

| Name | Type | Default | Description |
| --- | --- | --- | --- |
| `document_id` | `str` |  | The document ID. |

**Returns**

- `Resource`: The API's delete response.

### download_url() [#download_url]

```python
download_url(document_id: str, params: QueryParams | None = None) -> str
```

Build the download URL of a document; no request is sent.

**Parameters**

| Name | Type | Default | Description |
| --- | --- | --- | --- |
| `document_id` | `str` |  | The document ID. |
| `params` | `QueryParams \| None` | `None` | Optional query parameters to append. |

**Returns**

- `str`: The absolute download URL.

### public_download_url() [#public_download_url]

```python
public_download_url(public_token: str, params: QueryParams | None = None) -> str
```

Build the public download URL for a shared document; no request is sent.

**Parameters**

| Name | Type | Default | Description |
| --- | --- | --- | --- |
| `public_token` | `str` |  | The document's public share token. |
| `params` | `QueryParams \| None` | `None` | Optional query parameters to append. |

**Returns**

- `str`: The absolute download URL, usable without authentication.
