Documentation

Meridian Intel

Everything you need to upload, query, and understand results from your documents — grounded answers, every domain.

Introduction

What Meridian Intel does and how it's different.

Meridian Intel is a Regulatory Document Intelligence platform built for accuracy-critical document review. Its retrieval and grounding architecture uses document-focused retrieval and model-assisted generation to produce answers grounded entirely in what the document says — never beyond it. Upload a document, ask a question in plain language, and get an answer grounded entirely in what the document says — never beyond it.

Grounded-Answer Safeguard

If no relevant content is found in your document, the platform tells you directly rather than generating a guess. The AI model is never called when retrieval returns nothing.

Answers are extracted verbatim from your document by default — exact words, not paraphrases. Every fact is cited with its source page and chunk reference. If you need a simpler explanation, ask explicitly (e.g. "explain this in simpler terms") and the system will paraphrase while still grounding every claim in the document.

Built by Mazal Arc, Meridian Intel was designed first for pharmaceutical compliance review — Certificates of Quality, BSE/TSE declarations, Chain of Custody documentation — and now supports 14+ domains including legal, finance, research, and IT.

Quick Start

Three steps from zero to your first answer.

1
Sign in
Go to meridianintel.app/signin and sign in with Google SSO (one click), your work email and a 6-digit code, or a password. Enterprise teams on Enclave can use Company SSO (SAML / OIDC).
2
Select your domain field
Before uploading, use the field selector in the workspace input bar to choose your document type — pharma, legal, finance, or any of the 14+ supported fields. This controls PII scrubbing defaults and retrieval context. Defaults to General Purpose if not changed.
3
Upload your document
Click ↑ Upload in the workspace top bar. Select a PDF, DOCX, DOC, or TXT file. The platform chunks, scrubs PII, and indexes it using your selected field. Previously uploaded documents load instantly from History — no re-upload needed.
4
Ask your question
Type a natural language question in the input bar. The platform retrieves the most relevant sections verbatim and cites the exact page and chunk. Use the engine menu to switch between Mistral-7B (local), Gemini 2.5 Flash, or GPT-4o-mini. AUTO Shield cascades automatically.

Domain Fields

14+ supported domains across 5 categories. Unrecognized fields fall back to General Purpose without failing.

Science & Research

Pharmaceuticals & Biotech
Medical & Clinical
Clinical Trial Data
Literature Review

Business & Legal

Legal Contracts
NDA
Finance & SEC Filings
Investment Memos
HR & People Ops

Technology

Software & DevOps
IT Runbooks
Incident Reports
Architecture Docs

Custom

Don't see your field? Type a custom field name during upload. The chunking and retrieval engine works the same — only the PII scrubbing defaults differ from pre-configured fields.

Supported Formats

What you can upload today, and what's coming.

FormatExtraction methodStatus
.pdfpdfplumber text extractionAvailable
.txtPlain text ingestionAvailable
.docx / .docpython-docx + table extractionAvailable
Scanned PDFOCR via EasyOCRAvailable
.csvTabular chunkingv2.2
.png / .jpgVLM diagram analysisv2.2
Scanned Documents

If you upload a PDF with no extractable text (a scanned image), the platform detects this automatically and lets you know OCR support is coming rather than returning an empty or broken result.

Tier Guide

Five tiers, each with distinct retrieval precision and feature access.

TierChunk sizeResultsMax answerDaily queriesKey features
Ephemeral600 tokens3512 tokens10Free · Forever · General field only
Segment512 tokens51,024 tokens305 domains · Markdown responses · $29/mo
Lattice384 tokens62,048 tokens10010 domains · Semantic cache · $59/mo
Vector256 tokens83,072 tokens200All 14+ fields · PDF canvas · Eval scores · $89/mo
Enclave200 tokens104,096 tokensUnlimitedPer-user isolation · Audit trail · SSO · Custom pricing · Corporate tier

Why chunk size matters

Chunk size controls how finely your document is sliced during ingestion. Smaller chunks mean more precise retrieval — when you ask a specific question, the platform finds the exact paragraph or table row rather than a broad section. This matters most on dense regulatory or technical content where the difference between adjacent paragraphs can be significant.

Ephemeral (600 tokens) works well for general questions on any document. Enclave (200 tokens) is calibrated for pharma batch records, legal clauses, and financial figures where pinpoint accuracy is non-negotiable.

Why answer length matters

Max answer tokens controls how long the AI's response can be. A 512-token cap (Ephemeral) is roughly 1–2 paragraphs — enough for a direct answer. A 4,096-token cap (Enclave) supports detailed summaries, multi-point analysis, and comprehensive regulatory reviews without truncation.

Understanding Results

How to read what the platform gives you back.

Eval Scores

Faithfulness0.00 – 1.00

How much of the answer's vocabulary is grounded in the retrieved document text. A score near 1.0 means the answer uses exact words and phrases from the document. Verbatim extraction mode typically achieves 0.90+ faithfulness.

Answer Relevance0.00 – 1.00

How much of your query's key terms appear in the answer. Measures whether the answer addressed your actual question. Uses stemming so "work" matches "works" and "working".

Context Recall0.00 – 1.00

What fraction of the retrieved context was used in the answer. Lower scores are normal when the retrieved chunks contain more content than needed — the answer extracts only the relevant parts.

Zero-Hit Responses

When the platform tells you it found nothing relevant, this is a feature, not a failure. It means retrieval came back empty and the AI model was never called — preventing a fabricated answer. Try rephrasing your question or confirm the document contains the information you're looking for.

Source Citations

Every answer shows the page and section reference it was drawn from (e.g. p.1 s2), visible in the audit panel alongside the exact retrieved text.

Landing Page Assistant

The AI assistant on the Meridian Intel landing page — what it knows and how it works.

The chat widget at meridianintel.app is powered by Claude Sonnet (Anthropic) via a secure server-side proxy. Your conversation is never sent directly to Anthropic from your browser, and no API keys are exposed client-side.

What it knows

The assistant is given a detailed system prompt covering:

  • All five tiers — pricing, trial availability, features, and limits
  • Supported domain fields and PII scrubbing behavior
  • How grounded-answer retrieval works
  • Inference engines (Mistral, Gemini, GPT-4o-mini, AUTO Shield)
  • Sign-up and access flow
  • Enclave enterprise features and contact details

It will not answer questions unrelated to Meridian Intel, and will redirect off-topic queries politely.

Rate limiting

The chat endpoint is rate-limited to 20 requests per hour per IP address to prevent abuse. If you hit the limit, wait an hour or contact support@meridianintel.app.

Escalation

If the assistant can't answer your question, it will offer to create a support ticket or connect you with the sales team at sales@meridianintel.app. For Enclave enterprise enquiries, visit meridianintel.app/enclave.

API Reference

Programmatic access for Vector and Enclave tier users. All endpoints require an API key passed as a Bearer token.

Requesting a Key

API keys are available on Vector and Enclave tiers. Go to Settings → Identity Hub → API Key and click Request API Key. Your key is shown once — copy it immediately. Keys use the format sk_live_ followed by 32 hex characters. Never share your API key or commit it to source control. Revoke compromised keys immediately from Settings.

Base URL

https://meridianintel.app

Authentication

Pass your API key in the Authorization header on every request.

Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

POST /ingest

Upload and index a document. Returns a doc_id used in all subsequent queries against that document. Counts toward your tier's applicable document limit.

# curl
curl -X POST https://meridianintel.app/ingest   -H "Authorization: Bearer sk_live_xxxx"   -F "file=@batch_record.pdf"   -F "field=certificate_of_quality"   -F "tier=vector"   -F "user_id=usr_xxxxxxxx"
# Python
import requests

with open("batch_record.pdf", "rb") as f:
    resp = requests.post(
        "https://meridianintel.app/ingest",
        headers={"Authorization": "Bearer sk_live_xxxx"},
        files={"file": f},
        data={
            "field":   "certificate_of_quality",
            "tier":    "vector",
            "user_id": "usr_xxxxxxxx",
        }
    )
doc_id = resp.json()["doc_id"]

Response

{
  "success":     true,
  "doc_id":      "d4f8a2c1",
  "filename":    "batch_record.pdf",
  "chunk_count": 42,
  "page_count":  8,
  "field":       "certificate_of_quality"
}

POST /query

Send a question against an ingested document. Returns a grounded answer with source chunks, faithfulness score, and latency. Counts toward your tier's daily query limit.

# curl
curl -X POST https://meridianintel.app/query   -H "Authorization: Bearer sk_live_xxxx"   -H "Content-Type: application/json"   -d '{
    "query":   "Is this batch EU GMP compliant?",
    "doc_id":  "d4f8a2c1",
    "field":   "certificate_of_quality",
    "tier":    "vector",
    "user_id": "usr_xxxxxxxx",
    "engine":  "auto",
    "max_tokens": 1024
  }'
# Python
import requests

resp = requests.post(
    "https://meridianintel.app/query",
    headers={
        "Authorization": "Bearer sk_live_xxxx",
        "Content-Type":   "application/json",
    },
    json={
        "query":      "Is this batch EU GMP compliant?",
        "doc_id":     "d4f8a2c1",
        "field":      "certificate_of_quality",
        "tier":       "vector",
        "user_id":    "usr_xxxxxxxx",
        "engine":     "auto",
        "max_tokens": 1024,
    }
)
data = resp.json()
print(data["answer"])
print("Faithfulness:", data["faithfulness"])

Request fields

FieldTypeRequiredDescription
querystringYesYour question, max 2,000 characters
doc_idstringYesDocument ID returned by /ingest
fieldstringNoDomain field — defaults to general. See field list below.
tierstringYesYour account tier: vector or enclave
user_idstringYesYour usr_xxxxxxxx ID (visible in Settings)
enginestringNoauto (default), mistral, gemini, openai
max_tokensintegerNoMax answer length. Capped at tier limit (Vector: 3072, Enclave: 4096)

Response

{
  "answer":           "The batch certificate confirms EU GMP compliance...",
  "faithfulness":     0.96,
  "answer_relevance": 0.91,
  "context_recall":   0.88,
  "engine":           "Gemini 2.5 Flash",
  "cache_hit":        false,
  "used_fallback":    false,
  "zero_hit":         false,
  "latency_ms":       1842,
  "prompt_tokens":    1204,
  "completion_tokens":318,
  "source_chunks": [
    {
      "text":        "Certificate of Quality — Batch 15102934...",
      "page":        1,
      "chunk_index": 0,
      "distance":    0.0821,
      "ref":         "p.1 s0"
    }
  ],
  "field":  "certificate_of_quality",
  "tier":   "vector"
}

GET /query/export-csv

Download your full query history as a CSV file. Includes query text, answer, faithfulness score, document name, domain field, and UTC timestamp. Useful for audit trails, compliance documentation, and matter files. PII scrubbing rules configured for your account are applied to answer content before export — ensuring exported data matches your platform privacy settings.

# curl
curl -G https://meridianintel.app/query/export-csv   -H "Authorization: Bearer sk_live_xxxx"   --data-urlencode "user_id=usr_xxxxxxxx"   --data-urlencode "tier=vector"   -o query-history.csv
# Python
import requests

resp = requests.get(
    "https://meridianintel.app/query/export-csv",
    headers={"Authorization": "Bearer sk_live_xxxx"},
    params={"user_id": "usr_xxxxxxxx", "tier": "vector"},
)
with open("query-history.csv", "w") as f:
    f.write(resp.text)

Error codes

CodeMeaning
400Bad request — missing required field or malformed JSON
401Missing or invalid API key
402Trial expired — upgrade to continue
403Feature not available on your tier
413File too large for your tier limit
429Daily or hourly query limit reached
500Server error — retry after a moment
503Gateway timeout — query took too long, try a shorter document

Domain fields

The field parameter controls chunking strategy and PII scrubbing defaults. Use the closest match to your document type.

ValueUse for
generalGeneral purpose — default for all tiers
certificate_of_qualityPharma batch release, CoQ documents
clinical_trialClinical study reports, protocols
regulatory_submissionFDA/EMA submissions, INDs, NDAs
legal_contractContracts, agreements, MSAs
financial_reportAnnual reports, 10-K, earnings
audit_reportInternal/external audit findings
sopStandard operating procedures
policy_documentCompany policy, compliance frameworks
research_paperAcademic papers, literature review
Tier limits on API

API usage counts toward your tier's daily query and document limits. Cloud engines require Segment or above — Ephemeral is restricted to Mistral-7B. Daily query limits: Ephemeral 10 · Segment 30 · Lattice 100 · Vector 200 · Enclave unlimited.

Security & Privacy

How your data is protected.

Authentication

Three sign-in methods are available, all resolving to the same account:

  • Password — email and password set at registration. Minimum 12 characters, one number, one symbol. 5 failed attempts trigger a 5-hour lockout; one more failure permanently disables the account (contact support to restore).
  • Email code — 6-digit one-time code sent to your registered address, valid for 10 minutes.
  • Google SSO — OAuth 2.0 client-side GIS flow, ID token verified server-side.

Enterprise teams on Enclave tier can additionally use Company SSO with SAML 2.0 or OIDC. Sessions auto-lock after inactivity — 5 minutes for Enclave, 15 minutes for all other tiers — with a 2-minute warning before logout. Passwords expire after 90 days and you will be prompted to update on next login.

New accounts are created at meridianintel.app/signup. Forgot your password? Use the reset link on the sign-in screen — a signed reset link is emailed and expires in 15 minutes.

PII Scrubbing

Nine categories of personally identifiable information are scrubbed before any content reaches an AI model — email, phone, SSN, credit card, IP address, passport, date of birth, address, and names. Pharmaceutical fields use adjusted defaults so lot numbers and catalog IDs aren't incorrectly flagged.

Inference

Primary inference runs on a locally-hosted Mistral-7B model. Your document content does not reach OpenAI, Anthropic, or any third party during normal operation. The AUTO Shield cascade falls back to Gemini 2.5 Flash, then OpenAI gpt-4o-mini, only when local inference is unavailable — and only PII-scrubbed text is ever sent to any cloud provider.

local_only Mode

Enclave-tier users and compliance-sensitive deployments can enable local_only engine mode. In this mode, the platform never contacts any cloud provider under any condition — if local inference cannot complete, the platform returns an honest failure message rather than silently falling back to a cloud API. This provides a verifiable, auditable zero-cloud assurance for government, legal, and regulated-industry use cases.

Data Isolation

Enclave tier users receive a fully isolated per-user vector store collection. Other tiers use a shared collection namespace with strict user-ID and document-ID tagging — retrieval is scoped to the specific document you uploaded, with zero cross-document contamination verified across real multi-document test scenarios.

Full details are in our Privacy Policy and Terms of Service.

FAQ

Common questions. For anything else, use the chat widget on the homepage or email us.

Does Meridian Intel train on my documents?

No. Neither Mazal Arc nor any third-party AI provider uses your uploaded documents or queries to train or fine-tune models.

What happens if I ask something the document doesn't answer?

The platform returns a clear "no relevant content found" response rather than guessing. This is the grounded-answer safeguard in action.

Can I delete my documents?

Yes, at any time via the platform interface or by emailing support@meridianintel.app. Document and query data is removed from active storage immediately on request.

What's the difference between the inference engines?

Mistral-7B runs locally on our infrastructure with zero data leaving our servers. Gemini 2.5 Flash and OpenAI gpt-4o-mini are cloud options, sending only PII-scrubbed content. You can manually select any engine from the overflow menu — selecting an engine disables the AUTO Shield cascade and routes directly to that engine. Toggle AUTO Shield back on to re-enable the Mistral → Gemini → OpenAI cascade. In local_only mode, cloud fallback is disabled entirely — Mistral runs exclusively, and the platform returns an honest failure rather than routing to any cloud API.

What is the local_only engine mode?

A zero-cloud inference assurance for compliance-sensitive use cases. When enabled, your document content never leaves your infrastructure under any condition. Latency is higher than AUTO mode (dependent on your hardware), but the assurance is complete and verifiable — no exceptions, no silent fallbacks.