GraphRAG-ready
document parsing,
blazingly fast.

Semantic structure. Bounding boxes. Graph output.
Built for retrieval-augmented generation.

Parser in Action

Essential-GraphRAG.pdf
5
Section
Paragraph
bragi.parse()
Demo
Document Graph 439 nodes • 876 edges
Document Section Paragraph
179 pages
439 nodes
1.0s parse time

What You Get

Semantic Boundaries

Not arbitrary chunks. We detect real structure—headings, sections, paragraphs—based on visual and semantic cues.

Bounding Boxes

Every node maps to exact PDF coordinates. Pixel-perfect location for every piece of extracted content.

Hierarchical Structure

Parent-child relationships preserved. Navigate depth levels. Collapse branches. Query at any granularity.

## Abstract
```bgraph-section
{id":"71b35c22...","node_type":"Section","location":{...},"token_count":2}
```

The dominant sequence transduction models are based on complex recurrent or convolutional neural networks that include an encoder and a decoder. The best performing models also connect the encoder and decoder through an attention mechanism.
```bgraph-paragraph
{id":"86776b5a...","node_type":"Paragraph","location":{...},"token_count":275}
```
{
  "id":           "71b35c22-d050-500a-8422-732d0ad92d51",
  "node_type":     "Section",
  "content":      { "text": "Abstract" },
  "location": {
    "semantic":  { "path": "2.4", "depth": 2,
                 "breadcrumbs": ["Attention Is All You Need", "Abstract"] },
    "physical":  { "page": 1,
                 "bounding_box": { "x": 283.8, "y": 386.4,
                                 "width": 44.5, "height": 10.6 } }
  },
  "token_count":  2,
  "parent":       "ad9a03df-b4b7-50fd-b73b-6ac5f171d462",
  "children":     ["86776b5a-6df3-5799-a94c-33ef15f1c496"]
}

Two formats, one graph — identical by SHA-256. Strip bgraph.md metadata for clean Markdown any LLM can read directly.

For Developers

🐍 Python Open Source

terminal
$ pip install bragi-io
main.py
import bragi

# Local - free, no limits
bgraph: BragiGraph = bragi.parse_pdf("paper.pdf")

# Cloud - same API, infinite scale
bragi.configure(api_key="bragi_prod_...")
bgraph: BragiGraph = bragi.parse_pdf("paper.pdf")

Use your existing pipelines. Upgrade when you need scale.

☁️ API Coming Soon

terminal
$ curl -X POST https://api.bragi-io.com/v1/parse/pdf \
    -H "Authorization: Bearer bragi_prod_..." \
    -F "file=@paper.pdf" \
    -o bgraph.json

Hosted parsing API — launching soon.

🦀 Rust CLI Blazingly Fast

terminal
$ cargo install bragi-io
$ bragi-cli -i paper.pdf -o bgraph.json

Native performance. Built with Rust.

Ready to Scale?

The parser is open source. When you need more:

☁️

Cloud Processing

No infrastructure to manage. Just API calls. Process thousands of documents without spinning up servers.

Coming Soon
🧬

Embeddings

Hierarchical vectors optimized for RAG. Send your graph, get embeddings at every depth level.

Coming Soon
🔗

Cross-Document References

Connect graphs across your document corpus. Find relationships between papers, contracts, manuals.

Coming Soon
📄

Hierarchical Summaries

Recursive LLM summaries following your document's own structure. Paragraph → section → document. Query at the right granularity, then drill down.

Coming Soon
🏷️

Entity Extraction

Named entities, relationships, and key concepts pulled from your document graph. Structured output ready for knowledge graph construction.

Coming Soon

Be first when we launch

The hosted API is almost ready. Sign up and we'll send 1,000 free credits your way — that's 1,000 pages of parsing, on us.