$git clone https://github.com/Zipstack/unstractUnstract uses LLMs to extract structured JSON from documents — PDFs, images, scans, you name it. Define what you want to extract using natural language prompts, and deploy as an API or ETL pipeline.
| 1 | <div align="center"> |
| 2 | <img src="docs/assets/unstract_u_logo.png" style="height: 120px"> |
| 3 | <h1>Unstract</h1> |
| 4 | <h2>Turn Unstructured Documents into Structured Data</h2> |
| 5 | <p> |
| 6 | <a href="https://docs.unstract.com">Documentation</a> | |
| 7 | <a href="https://unstract.com/pricing/">Enterprise</a> |
| 8 | </p> |
| 9 | <p> |
| 10 | <a href="LICENSE"><img src="https://img.shields.io/github/license/Zipstack/unstract" alt="License"></a> |
| 11 | <a href="https://docs.unstract.com/unstract/unstract_platform/quick_start"><img src="https://img.shields.io/badge/tutorials-docs-brightgreen" alt="Tutorials"></a> |
| 12 | <a href="https://status.unstract.com"><img src="https://img.shields.io/badge/uptime-status-brightgreen" alt="Uptime Status"></a> |
| 13 | <a href="https://hub.docker.com/u/unstract"><img src="https://img.shields.io/docker/pulls/unstract/backend" alt="Docker Pulls"></a> |
| 14 | <a href="https://deepwiki.com/Zipstack/unstract"><img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki"></a> |
| 15 | <a href="https://cla-assistant.io/Zipstack/unstract"><img src="https://cla-assistant.io/readme/badge/Zipstack/unstract" alt="CLA assistant"></a> |
| 16 | </p> |
| 17 | <p> |
| 18 | <img src="https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2FZipstack%2Funstract%2Frefs%2Fheads%2Fmain%2Fpyproject.toml" alt="Python Version from PEP 621 TOML"> |
| 19 | <a href="https://github.com/astral-sh/uv"><img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json" alt="uv"></a> |
| 20 | <a href="https://vite.dev/"><img src="https://img.shields.io/badge/Vite-6.x-646CFF?logo=vite&logoColor=white" alt="Vite"></a> |
| 21 | <a href="https://bun.sh/"><img src="https://img.shields.io/badge/Bun-1.x-000000?logo=bun&logoColor=white" alt="Bun"></a> |
| 22 | <a href="https://biomejs.dev/"><img src="https://img.shields.io/badge/Biome-2.x-60A5FA?logo=biome&logoColor=white" alt="Biome"></a> |
| 23 | </p> |
| 24 | <p> |
| 25 | <a href="https://results.pre-commit.ci/latest/github/Zipstack/unstract/main"><img src="https://results.pre-commit.ci/badge/github/Zipstack/unstract/main.svg" alt="pre-commit.ci status"></a> |
| 26 | <a href="https://sonarcloud.io/summary/new_code?id=Zipstack_unstract"><img src="https://sonarcloud.io/api/project_badges/measure?project=Zipstack_unstract&metric=alert_status" alt="Quality Gate Status"></a> |
| 27 | <a href="https://sonarcloud.io/summary/new_code?id=Zipstack_unstract"><img src="https://sonarcloud.io/api/project_badges/measure?project=Zipstack_unstract&metric=code_smells" alt="Code Smells"></a> |
| 28 | <a href="https://sonarcloud.io/summary/new_code?id=Zipstack_unstract"><img src="https://sonarcloud.io/api/project_badges/measure?project=Zipstack_unstract&metric=duplicated_lines_density" alt="Duplicated Lines (%)"></a> |
| 29 | </p> |
| 30 | </div> |
| 31 | |
| 32 | ## What is Unstract? |
| 33 | |
| 34 | Unstract uses LLMs to extract structured JSON from documents — PDFs, images, scans, you name it. Define what you want to extract using natural language prompts, and deploy as an API or ETL pipeline. |
| 35 | |
| 36 | Built for teams in **finance**, **insurance**, **healthcare**, **KYC/compliance**, and much more. |
| 37 | |
| 38 | ## Current State vs. Unstract |
| 39 | |
| 40 | | Task | Without Unstract | With Unstract | |
| 41 | |------|------------------|---------------| |
| 42 | | Schema definition | Write regex, build templates per vendor | Write a prompt once, handles variations | |
| 43 | | New document type | Days of development | Minutes in Prompt Studio | |
| 44 | | LLM integration | Build your own pipeline | Plug in any provider (OpenAI, Anthropic, Bedrock, Ollama) | |
| 45 | | Deployment | Custom infrastructure | `./run-platform.sh` or managed cloud | |
| 46 | | Output | Unstructured text blobs | Clean JSON, ready for your database | |
| 47 | |
| 48 | > ⭐ If Unstract helps you, star this repo! |
| 49 | > |
| 50 | >  |
| 51 | |
| 52 | ## ✨ Key Features |
| 53 | |
| 54 | **Prompt Studio** — Define document extraction schemas with natural language. [Docs →](https://docs.unstract.com/unstract/unstract_platform/features/prompt_studio/prompt_studio_intro/) |
| 55 | |
| 56 | ![Prompt Studio](docs/assets/prompt_studi |