Document infrastructure for AI agents. Extract grounded data, verify evidence and screen entities through one REST API or the canonical hosted MCP server.
50 free credits a week. No card, no account needed to start.
The primitive
Classification, fields, tables and page coordinates arrive in one response. The same extraction runs over REST or the canonical MCP server.
The sample is fictional, runs no model and costs no credits. Real documents are processed statelessly and are not retained by extraction.
{ }
Run the sample to see a real API response with values grounded back to page coordinates.
Used by researchers and advisory teams
A plain REST API with no key required to start, and a hosted MCP server so an agent gets the same tools natively. No wrapper to write and no SDK to install.
Read the quickstartcurl -X POST https://www.stipple.sh/v1/verify-references \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/report.pdf"}'A number nobody can inspect is a decision nobody can defend — not to a customer, not to a regulator, not to the person you just declined.
The phrases that drove it, the arithmetic that failed, the URL that would not resolve. Enough to put in a file note.
A form, a table or an unreadable scan comes back as not applicable — never as a confident percentage.
The analysis tools are stateless. Files are assessed and not retained, and a result never carries your raw input.
A probability with the specific phrases that drove it, anchored in the text you sent. Style, not authorship — and it abstains on anything that is not prose.
Check some textEvery citation fetched and resolved. Each comes back as resolved, dead or unreachable, with the URL and the reason — because a bot wall and an invented source both fail, and only one of them is fraud.
Check a report{
"summary": { "headline": "12 of 14 references resolve" },
"references": [
{
"cited": "Okafor, 2021",
"status": "unresolved",
"error": "HTTP 404 · no DOI record found"
},
{
"cited": "Chen et al., 2023",
"status": "resolved",
"supports_claim": true
}
]
}Tampering, provenance and arithmetic that has to reconcile. You get the signals that fired and what each one was reading — a reason to look closer, not a verdict.
Verify a document{
"risk_band": "high",
"recommended_action": "review_before_action",
"signals": [
{
"id": "domain.payslip.reconciliation",
"severity": "high",
"explanation": "Net pay does not reconcile.",
"evidence": {
"claimed_net": 4250.0,
"calculated_net": 3750.0
}
}
]
}Fields and tables as structured values, each traced back to the page and the words it came from. Anything the document does not support comes back empty rather than guessed.
Extract from a document{
"fields": {
"commencement_date": {
"value": "2024-07-01",
"grounding": { "page": 2 }
},
"rent_review_mechanism": {
"value": "CPI + 1.0%",
"grounding": { "page": 7 }
}
},
"tables": [ { "title": "Schedule 2 — Rent", "rows": 14 } ]
}Add one header and every tool returns a deterministic, clearly-labelled fixture. Build and test the whole integration before you send a single real document.
See the sandboxcurl -X POST https://www.stipple.sh/v1/warrants \
-H "Stp-Sandbox: true" \
-F "file=@payslip.pdf"
# → { "sandbox": true, "risk_band": "high", ... }
# fixture · no engine work · no creditsEvery check is an MCP tool as well as an endpoint, so an agent calls it natively and gets the evidence back in the same turn. It can tell you why it stopped, not just that it did.
Connect an agentAgent: Three PDFs arrived. Genuine? Complete?
→ check_pack(scheme="lending_prequal", urls=[...])
complete: false · missing: ["bank_statement"]
→ verify_document(url="payslip.pdf")
risk_band: "high" · net pay off
Agent: Two problems — no bank statement, and the
payslip is off by $500. Flagging for review.Documents tallied against the AU 100-point scheme. Deterministic, and it shows the tally.
Each file classified into its slot, with the unfilled ones named rather than glossed over.
Sanctions and adverse media, corroboration-gated. A name-only match is possible, never confirmed.
Financial and legal document types, with the country and a confidence you can act on.
Open AU and NZ tenders ranked against what your site says you do, with the gaps named. Fit, not odds of winning.
More are being added. The next ones read opportunities and tenders rather than documents you were sent. Tell us what you need answered.
Payslips and statements whose numbers have to reconcile before money moves.
Repair invoices and quotes that need checking before a claim is paid.
Applications, credentials and identity packs arriving faster than anyone can read them.
Submissions that read machine-written, and citations that have to actually exist.
For anyone using AI for serious research, Stipple adds an important verification layer between “AI found this” and “I’m confident enough to use this.”
I was using ChatGPT Research to prepare academic material and had gathered a large number of citations and sources. The challenge was knowing whether every citation genuinely supported the claims being made.
I ran the research through Stipple’s Citation Verification and Source Attribution tools, and it immediately surfaced gaps I would have otherwise had to find manually — weak source matches, missing attribution, and claims that needed stronger evidence.
It gave me a much clearer view of what I could trust and what needed another look. What would have taken hours of manual checking became a much faster and more structured process.
Including the direction most vendors leave out, and the checks we have not benchmarked yet — which we say rather than estimate.