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.12.0
The latest PyPI release: v0.12.0.
Opt-in field citations
cite=True asks the model for per-field source spans. extract() still returns the schema instance; citations land on ExtractionResult.citations.
Grounding that can score
The ExtractBench runner now emits real field_citations (on by default; --no-cite to disable) so page- and word-level grounding can score.
Faster CI
Lint, test, and package start immediately. Tests run under pytest -n auto, and coverage is enforced in the same process.
Also in v0.12.0: docs PR builds no longer queue behind the pages concurrency group.
v0.11.0
shipped swarms, importable agents, extraction styles, and a batch-ready CLI.
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