GraphRAG-ready
document parsing,
blazingly fast.

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

Parser in Action

sample_nist_csf.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 Live

terminal
$ curl -X POST https://api.bragi-io.com/v1/parse/pdf \
    -H "Authorization: Bearer bragi_prod_..." \
    -H "Content-Type: application/pdf" \
    --data-binary @paper.pdf \
    -o bgraph.json

Hosted parsing API — live, and free during launch. Premium adds tables, images and equations at $0.01 per page.

🦀 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 — free during launch, with premium tables, images and equations when a document needs them.

Live
🧬

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
View Pricing

Start parsing today

The hosted API is live, and standard parsing is free during launch. When a document needs its tables, images and equations, premium is $0.01 per page — 50% off for launch.

Get a Free API Key

More products are on the way — embeddings, cross-document references, entity extraction.