Structured Extraction
Typed output from any media.
Extract structured data from documents, images, audio, and video using LLMs and Pydantic schemas.
$ uv add openextract
$ openextract report.pdf \
--schema mypkg:Invoice \
--model xai:grok-4.3
{ "total": 1240.00, "currency": "USD", ... }
Zero Config
One function call, or a reusable session. Bring a schema, media, and a model string.
Multi-Media
Documents, images, audio, and video with smart routing.
Any LLM
OpenAI, Anthropic, Google, Bedrock, xAI, Groq, Mistral, OpenRouter, Ollama, and more via pydantic-ai.
Type Safe
Pydantic schemas ensure validated, typed output every time.
How it works
Schema in, typed data out
Define a BaseModel, call extract(), get validated output.
Define a schema
Describe the shape you want with a Pydantic model.
Point at any media
Documents, images, audio, or video via path, URL, bytes, or a session.
Get typed output
Validated against your schema. No parsing, no regex.
from pydantic import BaseModel
from openextract import extract
class Report(BaseModel):
title: str
findings: list[str]
severity: int
result = extract(
schema=Report,
model="xai:grok-4.3",
input_file="https://example.com/report.pdf",
instructions="Extract findings",
)
What’s new
In v0.11.0
The latest PyPI release: v0.11.0.
Swarms and agents
extract_swarm runs several agents over one input and reduces their outputs; define_agent packages a specialist you can import, compose, or serve over HTTP.
Direct, search, or code
Send media in one shot, grep a text document with file tools, or let the model write Python against it.
Batch-ready CLI
Incremental --output jsonl, --manifest per-input media types, progress on stderr, and --swarm / --agent from the shell.
Also in v0.11.0: reusable Extractor sessions, typed input/result contracts, 50 MiB input caps, ExtractBench for any model.
v0.10.0
shipped non-blocking async I/O and transient-only retries.
Documentation
Guides and contracts
Start with the guide. Coding agents should use the agent contract or llms.txt.
Guide
Install, inputs, styles, sessions, batch, errors, and CLI — the how-to.
For agents
Which API to generate, input pitfalls, exceptions, and TestModel fixtures.
API reference
Public functions, sessions, input/result contracts, and common arguments.
CLI contracts
Stdout, stderr, exit codes, retries, styles, and batch partial failures.
Providers
Capability matrix, extras, credentials, and verified vs expected media support.
Troubleshooting
Missing extras, URL fetch, schema failures, retries, and batch API choice.
Works with any media
PDF, DOCX, PNG, JPG, MP3, MP4, and 20+ formats