Any document in.
Clean text out.
Point Extractor at a URL or hand it a file — PDF, Word, PowerPoint, Excel, HTML, Markdown, an image — and get back markdown, plain text, or JSON in the exact shape you asked for. One call, one document, and nothing to pay when there was nothing to extract.
- .docx
- .pptx
- .xlsx
- .html
- .md
- .txt
- .csv
- .png
- .jpg
The hard part isn't reading a page. It's knowing what to throw away.
Every source arrives wrapped in things nobody wants to read — and a model that reads them anyway pays for them in tokens and quotes them back at you. Extractor separates the document from its packaging and returns only the part that was ever the point.
- −Navigation & chromemenus, breadcrumbs, headers, tab bars
- −Interruptionscookie banners, newsletter modals, ads
- −Boilerplatefooters, legal blocks, share widgets
- ✓The documentheadings, paragraphs, lists, tables, code
Ask for the shape you actually need.
The same extraction can come back as markdown for a model, flat text for an index, or JSON matching a schema you supply. It is one parameter, not three products — and the price does not change.
Headings, lists and tables intact — what you feed a model.
# Q3 Board Report## RevenueRevenue reached $4.2M, up 31% YoY.## Headcount142 employees across 3 offices.
Audio and video go somewhere else.
Speech is billed by the minute, not by the document. Rather than half-support it at the wrong price, Extractor returns a 400 and names the tool that does it properly.
Four doors, one meter.
Extractor was built for something that reads documents at 3am with nobody watching. Every rail runs the same engine and draws the same wallet, and a call is refused before it can overdraw — an agent can spend your credits, never more than you have.
One POST, one document
Send a URL as JSON or a file as multipart. Authenticate with a xtr_live_ key in the Authorization header — or as ?api_key= when your client can't set headers.
curl -X POST https://extract.ounie.com/api/extract \
-H "Authorization: Bearer xtr_live_..." \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/report","format":"markdown"}'A tool your model can reach for
Streamable HTTP at /api/mcp. Works with Claude, Cursor, ChatGPT and the Ounie AI Team — that last one can't set static headers, so the key rides the URL.
{
"extractor": {
"url": "https://extract.ounie.com/api/mcp?api_key=xtr_live_..."
}
}No account at all
An agent with a wallet and no Ounie login pays $0.024 in USDC on Base per document. The first response is a 402 with terms; sign it and retry. Payment is verified first and only settled once the text is out, so an empty document costs nothing.
curl -X POST https://extract.ounie.com/api/x402/extract \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/report"}'
# → 402 { accepts: [ { network: "base", payTo: "0x…" } ] }And a place for humans
The dashboard runs the same endpoint your agents do, keeps every document you have extracted, and shows what each one cost. Reading anything you already ran is free, forever.
- · Mint and revoke keys (5 active max)
- · Full extraction history with per-run cost
- · Download any result as .md, .txt or .json
2 credits a document. That is the whole price list.
A credit is one cent. There is no plan, no minimum and no monthly fee — you draw the same Ounie wallet every other Ounie app draws. Credits are reserved before the work starts and settled on what the document actually turned out to be.
Every 50 pages adds 2credits. Pages with no text layer don't count toward a block.
Up to 50 pages is one document. Past that it is 2 credits per 50-page block — counted on pages that actually carried text, so a 200-page scan with a text layer on 30 pages bills one block, not four.
If a scan has no text layer or a page answers with an empty shell, the reserve refunds in full and no ledger row is written. We would rather return nothing than bill you for it.
Every extraction stays in your history. Fetching it again, exporting it, or downloading it as markdown costs nothing — you paid for that document once.
Out of credits? Top up on ounie.com. Audio and video are billed per minute, not per document — those go to Transcriber.
Before you send the first document
What can it actually read?
Why not audio and video?
What happens to my documents?
How accurate is the JSON mode?
missing_fields— we would rather hand you a gap you can see than a number that looks right and isn't.Do I need a subscription?
Can an agent run this without an account?
Point it at something messy.
A URL, a PDF, a deck someone emailed you. Two credits, a couple of seconds, and text you can actually use.
No subscription — pay in Ounie credits