Backed by
Combinator
Interfaze vs Gemini
Every value, with where it is and how sure.
One API call returns your JSON fields plus the OCR underneath, with a bounding box and a confidence score for every word.
Trusted by builders at
Why teams choose Interfaze over Gemini
Values you can check on the page, OCR and extraction in one call, and a lead on the public olmOCR benchmark.
Interfaze vs Gemini on the same document
Same pages and same fields, sent to both APIs. Three selected pages, two of them upside down, where interfaze-1 read every field right and Gemini missed at least one. Gemini was asked for values only, so its pane has no boxes. Pick one to see the boxes, or the JSON each API returned.
Handwritten plan
Upside-down fax
Upside-down slide
Boxes on the page
Returned JSON
correct value
wrong value, boxed where the API read it
no box from the API: boxed where the value is
○
not returned
structured JSON

15/15 field checks passed
✓
test_market_date
Jan. 1967
0.96
✓
slogan
"Me and My Winstons"
0.94
✓
mediums
TV; Print; Merchandising; Sale- Promotions
0.82
✓
no_plans_years
1971- 1973
Read correctly.
✓
campaign_1973
"Theres a lot of Good"
Read correctly.
✓
test_markets
4 mini mkts and 1 full test market
Read correctly.
✓
bates_number
53727 7036
0.99
✓
first_heading
Winston 1969
0.97
✓
second_heading
Winston 1970
0.91
✓
fourth_heading
Winston - 1974
0.93
✓
item_3_1969
3. Combined brand group
0.98
✓
research_item_1
- awareness
Read correctly.
✓
national_month
April
0.95
✓
volume_item
1. Establish volume momentum
0.90
✓
last_bullet
- Camp Comm Study
0.90
structured JSON

14/15 field checks passed
✗
mediums
TV; Print; Merchandising; Sales Promotion · page says TV; Print; Merchandising; Sale Promotions
No box returned. The box marks where the value is on the page.
✓
test_market_date
Jan. 1967
Read correctly.
✓
slogan
"Me and My Winstons"
Read correctly.
✓
no_plans_years
1971- 1973
Read correctly.
✓
campaign_1973
"Theres a lot of Good"
Read correctly.
✓
test_markets
(4 mini mkts and 1 full test market)
Read correctly.
✓
bates_number
53727 7036
Read correctly.
✓
first_heading
Winston 1969
Read correctly.
✓
second_heading
Winston 1970
Read correctly.
✓
fourth_heading
Winston - 1974
Read correctly.
✓
item_3_1969
3. Combined brand group
Read correctly.
✓
research_item_1
- awareness
Read correctly.
✓
national_month
April
Read correctly.
✓
volume_item
1. Establish volume momentum
Read correctly.
✓
last_bullet
- Camp Comm Study
Read correctly.
One call instead of extract, then OCR
Gemini can estimate a box per field if you ask. Word boxes with confidence scores take a second OCR service and matching code; Interfaze returns both.
integration steps
1 call · 1 API
done first
3/3 steps · 2 APIs
done
Scanned form
Extract
OCR
Your code
Interfaze
One request
Fields + boxes
1 call · 1 API
first
3/3 steps · 2 APIs
done
Scanned form
Extract
OCR
Your code
Interfaze
Fields + boxes
Interfaze vs Gemini on olmOCR-bench
Scores from the public olmOCR benchmark. The overall ranking first, then the three tasks with the biggest gap.
Interfaze vs Gemini, feature by feature
Checked against both companies' docs.
Interfaze
Gemini
Bounding boxes with confidence scores
Every word and line with exact pixel bounds and a 0–1 confidence, in every response, no prompting needed
Bounding boxes with confidence scores
No OCR layer and no confidence scores; boxes only if you prompt for them, as model estimates on a 0–1000 grid
olmOCR and OCRBench v2 scores
1st on olmOCR (85.7%) and OCRBench v2 (70.7%)
olmOCR and OCRBench v2 scores
Behind on both: 82.3% on olmOCR (Gemini 3.8 Flash), 55.8% on OCRBench v2 (Gemini 3 Flash)
Open weights
interfaze-1.1-lite runs on your own 80 GB GPU
Open weights
Closed models, hosted by Google only; no weights to download
Zero data retention
Nothing kept after the request, on every plan, with one header
Zero data retention
Prompts and outputs kept 55 days for abuse monitoring unless you set up Google's zero-retention configuration
Structured JSON output
Your JSON schema in the same call as the OCR (OpenAI json_schema, Zod, Pydantic)
Structured JSON output
Your JSON schema through responseJsonSchema
Multimodal input
Documents, images, audio and video
Multimodal input
Documents, images, audio and video
Standard SDKs
OpenAI Chat Completions compatible: OpenAI SDK, Vercel AI SDK, LangChain
Standard SDKs
Google Gen AI SDKs, plus an OpenAI-compatible endpoint
How to migrate from Gemini to Interfaze
The same extraction in Interfaze and Gemini, side by side. Your existing schema works as is. Or let your coding agent make the switch.
Interfaze
OpenAI SDK
Vercel AI SDK
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.interfaze.ai/v1",
apiKey: process.env.INTERFAZE_API_KEY,
});
const res = await client.chat.completions.create({
model: "interfaze-1",
response_format: {
type: "json_schema",
json_schema: { name: "invoice", schema: INVOICE_SCHEMA },
},
messages: [{
role: "user",
content: [
{ type: "text", text: "Extract the fields" },
{ type: "file", file: { filename: "invoice.pdf",
file_data: pdfUrl } },
],
}],
});
const invoice = JSON.parse(res.choices[0].message.content);Gemini
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });
const res = await ai.models.generateContent({
model: "gemini-3.8-flash",
contents: [{
role: "user",
parts: [
{ inlineData: { mimeType: "application/pdf", data: pdfBase64 } },
{ text: "Extract the fields" },
],
}],
config: {
responseMimeType: "application/json",
responseJsonSchema: INVOICE_SCHEMA,
},
});
const invoice = JSON.parse(res.text);Interfaze vs Gemini: common questions
What people usually ask before switching from Gemini.
Send us your hardest PDF.
If we can't beat your current provider,
we'll give you $3,000 in credits.
Start for free. No credit card required.
















