Skip to content
Early Access 300+ developers joined Built for production — Schema validation • Confidence scoring • Signed webhooks

Your inbox becomes an API

Stop maintaining brittle extraction pipelines. MailFrame turns raw email into typed, schema-validated JSON — delivered reliably to your webhook. One API call. One schema. Zero regex. (PDF, image & inbox forwarding planned.)

Receipt
MailFrame
JSON
Webhook
The Problem

Ingesting documents today is a maintenance nightmare

Every team building document ingestion ends up maintaining the same fragile infrastructure.

Regex Spaghetti

Hand-crafted regex patterns that break the moment Stripe changes their email template. You maintain parsers, not products.

Brittle GPT Wrappers

A Python script that calls GPT with a prompt. No validation, no retries, no monitoring. Breaks silently in production.

Zapier Chains

Multi-step Zaps held together with duct tape. No error handling, no observability, no SLA. Good for prototypes, dangerous in production.

Manual Retries

Failed parse? Manually re-run. No DLQ, no replay, no alerting. Incident response is a developer SSH-ing into a box.

How It Works

POST today, forward soon

Direct POST /v1/parse is how you parse today. Inbox forwarding is on the roadmap — both produce the same typed, validated JSON.

Server-to-server

Direct API

Send raw email (MIME) plus JSON Schema via POST /v1/parse and get typed JSON back synchronously.

import { MailFrame } from "...";
const mf = new MailFrame({ apiKey: "..." });
const result = await mf.parse({
  raw_mime: "From: receipt@stripe.com\n...",
  schema_id: "stripe-receipt",
});
console.log(result.data);
Response
{
  "receipt_id": "pi_abc123",
  "amount_cents": 2999,
  "currency": "usd",
  "paid_at": "2026-05-21T17:30:00Z",
  "customer_email": "user@example.com",
  "card_last4": "4242",
  "card_brand": "visa"
}
Roadmap · Forward-and-forget

Inbox Direct (planned)

On the roadmap: a unique parse@mailframe.ai inbox. Forward any email and MailFrame will extract and deliver JSON to your webhook — here's the planned flow. Until it ships, POST the raw MIME to /v1/parse.

# 1. Get your inbox address
#    parse@mailframe.ai

# 2. Create filter in Gmail
 Match: from:stripe.com
 Do this: Forward to parse@mailframe.ai

# 3. MailFrame parses the email
#    JSON delivered to your webhook
Webhook payload
{
  "receipt_id": "pi_abc123",
  "amount_cents": 2999,
  "currency": "usd",
  "paid_at": "2026-05-21T17:30:00Z",
  "customer_email": "user@example.com",
  "card_last4": "4242",
  "card_brand": "visa"
}
Live Demo

Paste an email.Get JSON.

Try it yourself — runs in your browser, no signup. Paste any receipt, invoice, or order email below.

Input — Raw Email
287 chars
Output — Structured JSON

Press "Extract JSON" to see results

This preview runs entirely in your browser. It uses simple pattern-matching and never sends your text anywhere — so it only reports fields it can actually find. The production MailFrame API does more: LLM extraction against your own JSON schema, confidence-based model routing, and signed webhook delivery.

Why MailFrame

Built for production, not prototypes

MailFrame DIY + GPT Zapier OCR Tools
Schema enforcement
Confidence scoring
Signed webhooks + retries Limited
Model routing & escalation
Input formats Email (PDF/image planned) API only Email only PDF/Image
Pricing model Per parse op Per LLM token Per task Per page

MailFrame is built for developers who need ingestion that doesn't silently break at 2 AM.

Extraction Trace

Resilience inproduction

Extraction is easy. Handling model timeouts, schema mismatches, and malformed input at scale is where infrastructure matters.

Raw input
From: receipts@stripe.com
Subject: Receipt from Stripe - pi_abc123
Date: Thu, 21 May 2026 10:30:00 -0700
To: user@example.com

Thanks for your payment of $29.99 to Acme SaaS Inc.

Receipt ID: pi_abc123xzy
Amount: $29.99
Card: Visa ending in 4242
Typed output
Webhook + metadata

Pipeline execution

Ingest
API
Queue
River
Parse
MIME extraction
Route
Flash-Lite
Validate
Schema OK
Deliver
Webhook 200
Model routing
Flash-Lite → Flash → Pro
Auto-escalation on low confidence
Provider fallback
Gemini → OpenAI (planned)
Planned — on the roadmap
Retry policy
3 attempts, exp. backoff
DLQ + replay planned
Webhook delivery
HMAC-SHA256 signed
Exponential-backoff retries
Template cache
Skips the model
Lowers cost on shared templates
Schema validation
Draft 2020-12
Every field typed & checked
Every parse produces an inspectable trace — model used, per-field confidence, validation errors, webhook delivery attempts, retry history.
Limited beta

Apply for Early
Developer Access

We're onboarding developers in batches to ensure quality. Submit your application and we'll follow up within a week.

No spam. No sharing your data. Rolling out weekly.