Skip to content

Unstructured

Python library that partitions many document types into typed elements (titles, text, tables) for RAG and ETL pipelines.

Reviewed by Sheela · Updated

View on GitHub Open source

Our rating

3.8/5

Still the widest net for odd file formats, but its makers now publish the numbers showing why you would pay them instead.

What it is

Unstructured breaks documents into typed elements such as Title, NarrativeText and Table. It handles a long tail of formats, including PDF, Office files, HTML, images and email, which makes it a common first step in document ETL pipelines.

It offers a fast strategy and a slower hi_res strategy that runs layout detection and OCR. Element types let you chunk on real section boundaries and filter what gets embedded. Full format support needs system packages: poppler and tesseract for PDFs and images, LibreOffice for Office files.

The company also sells a hosted platform and Transform API built on its newer models, which its own benchmark scores well above the open-source library on tables.

Our review

Unstructured covers more document formats than most rivals and is maintained at a brisk pace, with 0.27.34 released on 22 October 2026, but its own README makes the case against relying on it for hard PDFs. The company's benchmark puts the open-source library at 0.426 on table cell content against 0.866 for its paid Transform API, and 0.715 against 0.878 on text accuracy. Those are vendor numbers, but it is unusual for a maintainer to publish them about its own free tool.

Its strength is breadth with structure. One partition call handles PDFs, Word, PowerPoint, HTML, email and images and returns labelled elements, so chunking can follow real headings and tables can be routed separately. Independent comparisons in 2026, from Kanopy Labs and Toolhalla, put Docling ahead on table structure and describe Unstructured as heavy to install and slow on Office files.

Security deserves attention because the library parses untrusted files. Three advisories were published in 2026: a critical path traversal through a malicious MSG attachment that allowed arbitrary file writes, a critical server-side request forgery in URL-based partitioning, and a medium stored XSS in HTML output. Pipelines ingesting user uploads should pin a patched release and isolate the worker.

The library also pings packages.unstructured.io each time it loads, sending its version, OS, Python version, architecture and whether a GPU is present, until DO_NOT_TRACK or SCARF_NO_ANALYTICS is set. It is a small disclosure, but air-gapped deployments will want the flag set before the first run.

Where it earns its place

  • A data engineer at an insurer ingesting claims mailboxes

    Turn MSG emails, attachments and scanned PDFs into chunks for a RAG index

    partition handles each format and labels elements, so tables and narrative text are embedded separately. Parsing untrusted attachments means pinning a release past the 2026 MSG path-traversal fix and running workers in containers.

  • A platform engineer at a 100-person consultancy

    Index a shared drive of mixed Word, PowerPoint and PDF files

    The Docker image bundles LibreOffice, poppler and tesseract, avoiding a long system install. Self-hosting costs CPU time, and hi_res OCR is the slow path.

  • A head of data at a fintech weighing build versus buy

    Decide whether to self-host the library or pay for the platform

    At $0.015 a page after 10,000 free, one million pages a month costs about $15,000 on Pay-As-You-Go; the vendor's benchmark claims roughly twice the table accuracy, and VPC deployment is Business-plan only.

Before you commit

Setup
pip install "unstructured[all-docs]" on Python 3.11 to 3.13, plus poppler, tesseract and LibreOffice for PDFs, images and Office files; the Docker image ships with these.
Integrations
Python library and Docker image; the hosted platform adds source and destination connectors and an API, and is sold on AWS and Azure Marketplaces.
Data and privacy
Apache 2.0. The library sends a load-time ping with version, OS, Python, architecture and GPU presence unless DO_NOT_TRACK or SCARF_NO_ANALYTICS is set. 2026 advisories: critical MSG path traversal, critical SSRF in URL partitioning, medium stored XSS. The hosted platform claims SOC 2 Type 2, ISO 27001 and HIPAA.
Cost at scale
Self-hosted, cost is CPU for fast mode and more compute for hi_res OCR; hardware sizing is not published. Hosted: 10,000 free pages, then $0.015 a page; Business adds VPC, dedicated or bare-metal deployment at custom pricing.
Limits
183 open issues. Table extraction trails Docling in independent tests, and the strongest models are reserved for the paid Transform API. GitHub labels the repo HTML because of bundled test files.

What's good

  • Very broad file format support
  • Typed elements help chunking and filtering
  • Frequent releases
  • Clear upgrade path to a hosted API

What's not

  • Vendor's own benchmark shows weak table extraction
  • Heavy install with system dependencies
  • Two critical advisories in 2026
  • Load-time telemetry ping by default

Best for

Teams building ETL pipelines that ingest many document formats for RAG.

Alternatives

Unstructured: common questions

Is Unstructured worth it?
Still the widest net for odd file formats, but its makers now publish the numbers showing why you would pay them instead. We rate it 3.8 out of 5.
How much does Unstructured cost?
Library free under Apache 2.0. Hosted platform: 10,000 free pages, then $0.015 a page; Business plan with VPC or dedicated deployment priced on request.
What are the downsides of Unstructured?
Vendor's own benchmark shows weak table extraction; heavy install with system dependencies; two critical advisories in 2026; load-time telemetry ping by default.
Who is Unstructured best for?
Teams building ETL pipelines that ingest many document formats for RAG.
How much does Unstructured cost for a team or in production?
Self-hosted, cost is CPU for fast mode and more compute for hi_res OCR; hardware sizing is not published. Hosted: 10,000 free pages, then $0.015 a page; Business adds VPC, dedicated or bare-metal deployment at custom pricing.
Is Unstructured safe for company data?
Apache 2.0. The library sends a load-time ping with version, OS, Python, architecture and GPU presence unless DO_NOT_TRACK or SCARF_NO_ANALYTICS is set. 2026 advisories: critical MSG path traversal, critical SSRF in URL partitioning, medium stored XSS. The hosted platform claims SOC 2 Type 2, ISO 27001 and HIPAA.
What are the best Unstructured alternatives?
The closest alternatives we have reviewed are Docling, LlamaIndex and Firecrawl.

Answers checked Oct 23, 2026.