# Documents

> SDK methods for the Documents module, accessed via `soat.documents`. See the [Documents module docs](/docs/modules/documents) for permissions and data model, and each method's REST page for the full request/response schema.

# Documents

SDK methods for the Documents module, accessed via `soat.documents`. See the [Documents module docs](/docs/modules/documents) for permissions and data model, and each method's REST page for the full request/response schema.

### `soat.documents.listDocuments()`

List documents

- Method: `GET`
- Path: `/api/v1/documents`

```ts
await soat.documents.listDocuments({
  query: { /* + optional */ },
});
```

→ [Request & response schema](/docs/api/documents/list-documents)

### `soat.documents.createDocument()`

Create a document

- Method: `POST`
- Path: `/api/v1/documents`

```ts
await soat.documents.createDocument({
  body: { content, /* + optional */ },
});
```

→ [Request & response schema](/docs/api/documents/create-document)

### `soat.documents.ingestDocument()`

Ingest a file into a chunked document

- Method: `POST`
- Path: `/api/v1/documents/ingest`

```ts
await soat.documents.ingestDocument({
  query: { /* + optional */ },
  body: { file_id, /* + optional */ },
});
```

→ [Request & response schema](/docs/api/documents/ingest-document)

### `soat.documents.getDocument()`

Get a document by ID

- Method: `GET`
- Path: `/api/v1/documents/{document_id}`

```ts
await soat.documents.getDocument({
  path: { document_id },
});
```

→ [Request & response schema](/docs/api/documents/get-document)

### `soat.documents.deleteDocument()`

Delete a document

- Method: `DELETE`
- Path: `/api/v1/documents/{document_id}`

```ts
await soat.documents.deleteDocument({
  path: { document_id },
});
```

→ [Request & response schema](/docs/api/documents/delete-document)

### `soat.documents.updateDocument()`

Update a document

- Method: `PATCH`
- Path: `/api/v1/documents/{document_id}`

```ts
await soat.documents.updateDocument({
  path: { document_id },
  body: { /* + optional */ },
});
```

→ [Request & response schema](/docs/api/documents/update-document)

### `soat.documents.getDocumentStatus()`

Get document ingestion status

- Method: `GET`
- Path: `/api/v1/documents/{document_id}/status`

```ts
await soat.documents.getDocumentStatus({
  path: { document_id },
});
```

→ [Request & response schema](/docs/api/documents/get-document-status)

### `soat.documents.reingestDocument()`

Re-ingest an existing document

- Method: `POST`
- Path: `/api/v1/documents/{document_id}/ingest`

```ts
await soat.documents.reingestDocument({
  path: { document_id },
  query: { /* + optional */ },
  body: { /* + optional */ },
});
```

→ [Request & response schema](/docs/api/documents/reingest-document)

### `soat.documents.completeIngestionCallback()`

Deliver an async converter result

- Method: `POST`
- Path: `/api/v1/documents/{document_id}/ingestion-callback`

```ts
await soat.documents.completeIngestionCallback({
  path: { document_id },
  query: { token },
  body,
});
```

→ [Request & response schema](/docs/api/documents/complete-ingestion-callback)

### `soat.documents.getDocumentTags()`

Get document tags

- Method: `GET`
- Path: `/api/v1/documents/{document_id}/tags`

```ts
await soat.documents.getDocumentTags({
  path: { document_id },
});
```

→ [Request & response schema](/docs/api/documents/get-document-tags)

### `soat.documents.replaceDocumentTags()`

Replace document tags

- Method: `PUT`
- Path: `/api/v1/documents/{document_id}/tags`

```ts
await soat.documents.replaceDocumentTags({
  path: { document_id },
  body,
});
```

→ [Request & response schema](/docs/api/documents/replace-document-tags)

### `soat.documents.mergeDocumentTags()`

Merge document tags

- Method: `PATCH`
- Path: `/api/v1/documents/{document_id}/tags`

```ts
await soat.documents.mergeDocumentTags({
  path: { document_id },
  body,
});
```

→ [Request & response schema](/docs/api/documents/merge-document-tags)
