Everything your company knows,searchable by your agents.
Contracts, spreadsheets, calls and repos become a private knowledge base an agent investigates page by page and cites.
POST /ask-sourcesthinking_level: accuratelist_sourcesquery="marumbi msa" → 3 candidate filesgrep_in_sourcespattern="termination|notice" → 11 matchesget_pages_markdownmarumbi-msa.pdf pages=[14]verifyamendment-2.pdf supersedes §8.2The agent investigates before it answers.
One embedding query returns whatever is nearest and hopes it's right. The Graphor DocumentAI runs a real tool loop: it narrows the files, searches semantically and by regex, opens the pages it needs, sends the charts to a vision model, and reconciles what disagrees.
get_dataset_info · list_sources_with_metadata01 / 06Narrow
Before searching anything, the agent filters the dataset down to the files that could plausibly hold the answer, using file names, document annotations and metadata.
You decide how hard it looks.
Every request carries an effort level, and the level is a real budget: how much searching the agent may do before it has to answer from the evidence it already has. Cheap lookups stay cheap. Hard questions get the depth they need.
fastBounded lookup
Narrow to the likely file, read the relevant pages, answer. For questions where you already know roughly where the answer lives.
balancedThe default
Room to confirm a finding against a second source before answering, without turning every question into an investigation.
accurateMulti-part questions
For questions that span many files and several sub-answers, where partial evidence is worse than no answer at all.
maxInvestigation
Reconciling documents that contradict each other, or auditing a whole corpus for what is missing.
Depth doesn't cost coherence: observational memory and inline compaction keep the evidence trail intact, so a long investigation still remembers what it found at the start.
Where a standard RAG stack breaks.
Most teams get 80% of a retrieval system working in a week, then spend six months on the rest. This is the part that takes six months.
Five ways to read the same document.
Let Auto route each page to the method that can read it, or pick one of the four by hand. Every run is versioned: compare methods on the same file and switch the active version without re-uploading anything.
Auto
per-page routingAuto classifies every page first, then routes each range to the cheapest method that can actually read it. One setting for documents that are mostly plain text with a few pages that are not.
Fast
rule-basedRule-based partitioning with minimal overhead. The right default for clean, text-first documents you already control.
Balanced
layout + OCRLayout-aware parsing with OCR. Handles scanned pages and multi-column PDFs, where the reading order on screen is not the order of the text on disk.
Accurate
fine-tuned modelsFine-tuned layout models for specialized documents. Built for dense financial, legal and form-heavy files where one misread cell is a wrong answer.
Agentic
highest accuracyAn agentic pipeline that looks at the page the way a person would, with visual embeddings over the rendered page. For documents where the meaning lives in the layout, not the text.
One 20-page document1–678–1516–1718–20billed: 17 Fast · 1 Accurate · 2 Agentic0 pages billed as Auto25+ file formats
PDF, Office, HTML, CSV/XLSX, images, audio and video, all through one ingest call.
Web and crawl
Ingest a URL and optionally follow its links to capture a whole documentation tree.
GitHub repos
Point at a repository and its code and docs become searchable alongside your documents.
Calls and video
Audio and video are transcribed, so what was said in a meeting is queryable like a document.
Ask for prose.Or ask for a table.
Define the fields you want and Graphor returns them as structured JSON across a whole batch, with the page each value came from. Same agent, different output shape, and it can hand back a CSV or markdown file when you ask it to export.
invoice_numbertextThe unique invoice identifierissue_datetextInvoice date in YYYY-MM-DDtotal_amountnumberTotal amount dueline_itemsarrayDescription, quantity and unit price per rowsigned_bytextName on the signature block, if presentInstructions stay plain language:"use YYYY-MM-DD for dates, USD for amounts."
extract → 47 documentspage-level provenanceinvoice_number: "INV-2318"p.1issue_date: "2026-05-14"p.1total_amount: 48120.00p.3line_items: [ 14 items ]p.2–3po_number: "PO-8841"p.1signed_by: "M. Okonkwo"p.447 rows · 0 fields unresolved→ invoices-q2.csvOne call from folder to cited answer.
Everything in the product is an endpoint: ingest, reprocess, list, get elements, retrieve chunks, extract, ask. Python and TypeScript SDKs, plus a 12-tool MCP server so your coding agent queries your knowledge base directly.
pip install graphor
from graphor import Graphor
client = Graphor() # reads GRAPHOR_API_KEY
with open("marumbi-msa.pdf", "rb") as f:
build = client.sources.ingest_file(file=f, partition_method="auto")
file_id = wait_until_ready(client, build.build_id) # get_build_status()
res = client.sources.ask(
question="Which contracts auto-renew before September?",
file_ids=[file_id],
)
print(res.answer)
for c in res.citations:
print(f"{c.file_name} p.{c.page_number}")Bring your own model
Claude, GPT, Gemini and Cerebras agents share one tool schema. Enterprise accounts can run the agent on their own Anthropic key.
Citations by default
Every answer returns the file, page and passage behind each claim, so a bad answer is something you can trace back instead of guess at.
Versioned builds
Re-parse a source with a different method and compare. Only the active build serves retrieval, and switching is instant.
What teams already ask it.
"Which of these 400 contracts auto-renew before September, and what notice does each require?"
"Does the investor deck contradict the audited statements anywhere?"
"How is rate limiting implemented, and where is it documented?"
"Which claims in this batch are missing the required medical report?"
"Extract every invoice above its PO amount into a CSV I can send to finance."
"What did customers say about onboarding last quarter?"
Your documents are not our training data.
Contractual no-training commitments down the whole provider chain, tenant isolation at every layer, and a Trust Center that states the posture plainly, including what isn't certified yet.
No training on your content
Contractual no-training commitments with every model provider in the chain, passed through in the DPA.
Tenant isolation
Isolation enforced at the application, database, storage and API-token layers, not by convention.
Retention you control
Documented retention per data category, with deletion mechanisms that satisfy LGPD art. 18 and GDPR art. 15–22.
Data residency
Stated regions for every component of the production environment, with the transfer regime spelled out.
72-hour breach SLA
A written incident-response process with an escalation matrix and a post-mortem commitment.
Honest compliance status
Inherited subprocessor certifications listed alongside the compensating controls where a formal certification does not exist yet.
Subprocessor list, DPA template and residency detail in theTrust Center.
Point us at your worst folder.
Bring a document that currently takes forty pages of reading and a question nobody can answer quickly. In thirty minutes you see the agent working on it, not on a generic demo.