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.14.0
The latest PyPI release: v0.14.0.
Citation.as_dict
Citation.as_dict() returns a JSON-stable {field, quote, page, bbox} payload. Boxes stay parser-backed; they are never invented.
--cite in JSON output
openextract --cite requests per-field citations via the same cite=True library path. JSON and JSONL include a citations array.
SwarmResult.citations
When cite=True, swarms keep reduced per-field spans that support output. Per-agent citations stay on each ExtractionResult.
Also in v0.14.0: cite=True example (extract_with_citations.py) and citation docs (guide + agents), ExtractBench smoke notes that 0.13.1+ includes grounding, and a Metadata-Version 2.5 publish fix.
v0.13.1
shipped ExtractBench page/word grounding.
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