One engine for everything
Feed documents, URLs, code, images, and audio into one API and get clean Markdown, entities, code structure, and embeddings back — no stitching libraries together.
One engine for everything
Feed documents, URLs, code, images, and audio into one API and get clean Markdown, entities, code structure, and embeddings back — no stitching libraries together.
Extract from any document type
PDFs, Office files, images, email, archives, and academic papers all come out as clean Markdown or one of five other formats, with no per-format setup.
Text from images and audio, automatically
Scanned pages and spoken audio become searchable text with confidence scores and language detection, falling back across OCR and transcription backends when one struggles.
Get structured data without custom prompting
Pull entities and JSON that matches your schema straight from any document, using a local or hosted LLM — no prompt engineering.
Understand code across 306 languages
Extract functions, classes, imports, and symbols from source, then turn any content into embeddings for search and RAG.
Use your language, native performance
Call Xberg from Python, TypeScript, Rust, Go, Java, C#, Ruby, PHP, Elixir, and more — plus a CLI, REST API, MCP server, Docker, and WASM.
| Language | Package | Docs |
|---|---|---|
| Python | pip install xberg |
API Reference |
| TypeScript / Node | npm install @xberg-io/xberg |
API Reference |
| WebAssembly | npm install @xberg-io/xberg-wasm |
API Reference |
| Rust | cargo add xberg |
API Reference |
| Go | go get github.com/xberg-io/xberg/packages/go |
API Reference |
| Java / Kotlin JVM | Maven Central io.xberg:xberg |
API Reference |
| Kotlin (Android) | Maven Central io.xberg:xberg-android |
API Reference |
| C# | dotnet add package Xberg |
API Reference |
| Ruby | gem install xberg |
API Reference |
| PHP | composer require xberg-io/xberg |
API Reference |
| Elixir | {:xberg, "~> 1.0"} |
API Reference |
| Dart / Flutter | dart pub add xberg |
API Reference |
| Swift | Swift Package Manager | API Reference |
| Zig | zig fetch --save from GitHub |
API Reference |
| C (FFI) | Shared library + header | API Reference |
| CLI | brew install xberg-io/tap/xberg |
CLI Guide |
| Docker | ghcr.io/xberg-io/xberg |
Docker Guide |
from xberg import ExtractInput, extract
output = await extract(ExtractInput(kind="uri", uri="document.pdf"))print(output.results[0].content)import { ExtractInputKind, extract } from "@xberg-io/xberg";
const output = await extract({ kind: ExtractInputKind.Uri, uri: "document.pdf",});console.log(output.results[0].content);use xberg::{extract, ExtractInput, ExtractionConfig};
let config = ExtractionConfig::default();let output = extract(ExtractInput::from_uri("document.pdf"), &config).await?;println!("{}", output.results[0].content);