## Unstructured

> The `unstructured` package from [Unstructured.IO](https://www.unstructured.io/) extracts clean text from raw source documents like PDFs and Word documents. This page covers how to use the [`unstructured`](https://github.com/Unstructured-IO/unstructured) ecosystem within LangChain.

## Installation and Setup[​](#installation-and-setup "Direct link to Installation and Setup")

If you are using a loader that runs locally, use the following steps to get `unstructured` and its dependencies running locally.

*   Install the Python SDK with `pip install unstructured`.
    *   You can install document specific dependencies with extras, i.e. `pip install "unstructured[docx]"`.
    *   To install the dependencies for all document types, use `pip install "unstructured[all-docs]"`.
*   Install the following system dependencies if they are not already available on your system. Depending on what document types you're parsing, you may not need all of these.
    *   `libmagic-dev` (filetype detection)
    *   `poppler-utils` (images and PDFs)
    *   `tesseract-ocr`(images and PDFs)
    *   `libreoffice` (MS Office docs)
    *   `pandoc` (EPUBs)

If you want to get up and running with less set up, you can simply run `pip install unstructured` and use `UnstructuredAPIFileLoader` or `UnstructuredAPIFileIOLoader`. That will process your document using the hosted Unstructured API.

The `Unstructured API` requires API keys to make requests. You can request an API key [here](https://unstructured.io/api-key-hosted) and start using it today! Checkout the README [here](https://github.com/Unstructured-IO/unstructured-api) here to get started making API calls. We'd love to hear your feedback, let us know how it goes in our [community slack](https://join.slack.com/t/unstructuredw-kbe4326/shared_invite/zt-1x7cgo0pg-PTptXWylzPQF9xZolzCnwQ). And stay tuned for improvements to both quality and performance! Check out the instructions [here](https://github.com/Unstructured-IO/unstructured-api#dizzy-instructions-for-using-the-docker-image) if you'd like to self-host the Unstructured API or run it locally.

## Data Loaders[​](#data-loaders "Direct link to Data Loaders")

The primary usage of the `Unstructured` is in data loaders.

### UnstructuredAPIFileIOLoader[​](#unstructuredapifileioloader "Direct link to UnstructuredAPIFileIOLoader")

See a [usage example](https://python.langchain.com/docs/integrations/document_loaders/unstructured_file/#unstructured-api).

```
from langchain_community.document_loaders import UnstructuredAPIFileIOLoader
```

### UnstructuredAPIFileLoader[​](#unstructuredapifileloader "Direct link to UnstructuredAPIFileLoader")

See a [usage example](https://python.langchain.com/docs/integrations/document_loaders/unstructured_file/#unstructured-api).

```
from langchain_community.document_loaders import UnstructuredAPIFileLoader
```

### UnstructuredCHMLoader[​](#unstructuredchmloader "Direct link to UnstructuredCHMLoader")

`CHM` means `Microsoft Compiled HTML Help`.

See a usage example in the API documentation.

```
from langchain_community.document_loaders import UnstructuredCHMLoader
```

### UnstructuredCSVLoader[​](#unstructuredcsvloader "Direct link to UnstructuredCSVLoader")

A `comma-separated values` (`CSV`) file is a delimited text file that uses a comma to separate values. Each line of the file is a data record. Each record consists of one or more fields, separated by commas.

See a [usage example](https://python.langchain.com/docs/integrations/document_loaders/csv/#unstructuredcsvloader).

```
from langchain_community.document_loaders import UnstructuredCSVLoader
```

### UnstructuredEmailLoader[​](#unstructuredemailloader "Direct link to UnstructuredEmailLoader")

See a [usage example](https://python.langchain.com/docs/integrations/document_loaders/email/).

```
from langchain_community.document_loaders import UnstructuredEmailLoader
```

### UnstructuredEPubLoader[​](#unstructuredepubloader "Direct link to UnstructuredEPubLoader")

[EPUB](https://en.wikipedia.org/wiki/EPUB) is an `e-book file format` that uses the “.epub” file extension. The term is short for electronic publication and is sometimes styled `ePub`. `EPUB` is supported by many e-readers, and compatible software is available for most smartphones, tablets, and computers.

See a [usage example](https://python.langchain.com/docs/integrations/document_loaders/epub/).

```
from langchain_community.document_loaders import UnstructuredEPubLoader
```

### UnstructuredExcelLoader[​](#unstructuredexcelloader "Direct link to UnstructuredExcelLoader")

See a [usage example](https://python.langchain.com/docs/integrations/document_loaders/microsoft_excel/).

```
from langchain_community.document_loaders import UnstructuredExcelLoader
```

### UnstructuredFileIOLoader[​](#unstructuredfileioloader "Direct link to UnstructuredFileIOLoader")

See a [usage example](https://python.langchain.com/docs/integrations/document_loaders/google_drive/#passing-in-optional-file-loaders).

```
from langchain_community.document_loaders import UnstructuredFileIOLoader
```

### UnstructuredFileLoader[​](#unstructuredfileloader "Direct link to UnstructuredFileLoader")

See a [usage example](https://python.langchain.com/docs/integrations/document_loaders/unstructured_file/).

```
from langchain_community.document_loaders import UnstructuredFileLoader
```

### UnstructuredHTMLLoader[​](#unstructuredhtmlloader "Direct link to UnstructuredHTMLLoader")

See a [usage example](https://python.langchain.com/docs/modules/data_connection/document_loaders/html/).

```
from langchain_community.document_loaders import UnstructuredHTMLLoader
```

### UnstructuredImageLoader[​](#unstructuredimageloader "Direct link to UnstructuredImageLoader")

See a [usage example](https://python.langchain.com/docs/integrations/document_loaders/image/).

```
from langchain_community.document_loaders import UnstructuredImageLoader
```

### UnstructuredMarkdownLoader[​](#unstructuredmarkdownloader "Direct link to UnstructuredMarkdownLoader")

See a [usage example](https://python.langchain.com/docs/integrations/vectorstores/starrocks/).

```
from langchain_community.document_loaders import UnstructuredMarkdownLoader
```

### UnstructuredODTLoader[​](#unstructuredodtloader "Direct link to UnstructuredODTLoader")

The `Open Document Format for Office Applications (ODF)`, also known as `OpenDocument`, is an open file format for word processing documents, spreadsheets, presentations and graphics and using ZIP-compressed XML files. It was developed with the aim of providing an open, XML-based file format specification for office applications.

See a [usage example](https://python.langchain.com/docs/integrations/document_loaders/odt/).

```
from langchain_community.document_loaders import UnstructuredODTLoader
```

### UnstructuredOrgModeLoader[​](#unstructuredorgmodeloader "Direct link to UnstructuredOrgModeLoader")

An [Org Mode](https://en.wikipedia.org/wiki/Org-mode) document is a document editing, formatting, and organizing mode, designed for notes, planning, and authoring within the free software text editor Emacs.

See a [usage example](https://python.langchain.com/docs/integrations/document_loaders/org_mode/).

```
from langchain_community.document_loaders import UnstructuredOrgModeLoader
```

### UnstructuredPDFLoader[​](#unstructuredpdfloader "Direct link to UnstructuredPDFLoader")

See a [usage example](https://python.langchain.com/docs/modules/data_connection/document_loaders/pdf/#using-unstructured).

```
from langchain_community.document_loaders import UnstructuredPDFLoader
```

### UnstructuredPowerPointLoader[​](#unstructuredpowerpointloader "Direct link to UnstructuredPowerPointLoader")

See a [usage example](https://python.langchain.com/docs/integrations/document_loaders/microsoft_powerpoint/).

```
from langchain_community.document_loaders import UnstructuredPowerPointLoader
```

### UnstructuredRSTLoader[​](#unstructuredrstloader "Direct link to UnstructuredRSTLoader")

A `reStructured Text` (`RST`) file is a file format for textual data used primarily in the Python programming language community for technical documentation.

See a [usage example](https://python.langchain.com/docs/integrations/document_loaders/rst/).

```
from langchain_community.document_loaders import UnstructuredRSTLoader
```

### UnstructuredRTFLoader[​](#unstructuredrtfloader "Direct link to UnstructuredRTFLoader")

See a usage example in the API documentation.

```
from langchain_community.document_loaders import UnstructuredRTFLoader
```

### UnstructuredTSVLoader[​](#unstructuredtsvloader "Direct link to UnstructuredTSVLoader")

A `tab-separated values` (`TSV`) file is a simple, text-based file format for storing tabular data. Records are separated by newlines, and values within a record are separated by tab characters.

See a [usage example](https://python.langchain.com/docs/integrations/document_loaders/tsv/).

```
from langchain_community.document_loaders import UnstructuredTSVLoader
```

### UnstructuredURLLoader[​](#unstructuredurlloader "Direct link to UnstructuredURLLoader")

See a [usage example](https://python.langchain.com/docs/integrations/document_loaders/url/).

```
from langchain_community.document_loaders import UnstructuredURLLoader
```

### UnstructuredWordDocumentLoader[​](#unstructuredworddocumentloader "Direct link to UnstructuredWordDocumentLoader")

See a [usage example](https://python.langchain.com/docs/integrations/document_loaders/microsoft_word/#using-unstructured).

```
from langchain_community.document_loaders import UnstructuredWordDocumentLoader
```

### UnstructuredXMLLoader[​](#unstructuredxmlloader "Direct link to UnstructuredXMLLoader")

See a [usage example](https://python.langchain.com/docs/integrations/document_loaders/xml/).

```
from langchain_community.document_loaders import UnstructuredXMLLoader
```