Documents in.Answers your agents can act on.

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

Turn a document into evidence an agent can use.

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

Integrate

One call, from anything.

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 quickstart
bash
curl -X POST https://www.stipple.sh/v1/verify-references \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/report.pdf"}'
Our stance

Never a bare score.

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.

Evidence travels with the answer

The phrases that drove it, the arithmetic that failed, the URL that would not resolve. Enough to put in a file note.

It abstains

A form, a table or an unreadable scan comes back as not applicable — never as a confident percentage.

Nothing is kept

The analysis tools are stateless. Files are assessed and not retained, and a result never carries your raw input.

Outcome

Was this written by a machine?

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 text
PASTE OR UPLOADAI text check
Free with Google sign-in94.7% detection · measured ↗Abstains rather than guesses
Try:
Outcome

Do these sources exist?

Every 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
json
{
  "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
    }
  ]
}
Outcome

Has this document been altered?

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
json
{
  "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
      }
    }
  ]
}
Outcome

What do these pages actually say?

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
json
{
  "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 } ]
}
Test mode

Wire it up before you spend anything.

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 sandbox
bash
curl -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 credits
For agents

Your agent asks. Stipple answers.

Every 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 agent
text
Agent: 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.
Who uses it

Teams deciding on what a stranger sent in.

Lenders

Payslips and statements whose numbers have to reconcile before money moves.

Insurers

Repair invoices and quotes that need checking before a claim is paid.

HR & recruitment

Applications, credentials and identity packs arriving faster than anyone can read them.

Editors & publishers

Submissions that read machine-written, and citations that have to actually exist.

All use cases

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.

Adjunct Professor, UNSW
Measured, not asserted

Every figure has a method behind it.

Including the direction most vendors leave out, and the checks we have not benchmarked yet — which we say rather than estimate.

Send it. See why.

50 free credits a week. No card.