Zero-server document parsing

Parse PDFs & Word files in the browser. Not on someone’s server.

qovox-parser is a drop-in JavaScript SDK that turns PDF and DOCX files into clean Markdown and structured JSON on your user’s device. Files never leave the page, and there is no per-page cloud bill.

  • 100% client-side
  • No file uploads
  • Flat monthly license
app.js
import { QovoxParser } from 'qovox-parser';

const parser = await QovoxParser.init({
  licenseKey: 'QVX-XXXX-XXXX-XXXX-XXXX',
});

// runs on the user's device, nothing is uploaded
const doc = await parser.parse(file);

console.log(doc.markdown);   // "# Quarterly Report ..."
console.log(doc.blocks);     // [{ type: 'heading', ... }]
network: 0 bytes of your documents1 license check / hour
Live demo

Drop a file. Watch it parse locally.

This demo runs the fallback engine that ships with the SDK: pure JavaScript, no network calls. Open your browser’s network tab and see for yourself.

Your file is read with the browser’s File API and never uploaded. Network requests during parsing: —
Parsed output appears here.
Try one of the samples to start.
Why qovox-parser

The parser that never phones home with your documents

Move parsing from your cloud bill to your users’ CPUs, and keep sensitive files where they already are.

Zero-Server

Parsing happens in a Web Worker on the visitor’s device. No upload endpoint, no queue, no storage bucket to secure.

100% Privacy

Contracts, patient records, financials: the bytes never cross the network, which makes GDPR, HIPAA and SOC 2 reviews far simpler.

Unmatched Speed

No round trip, no cold start. Typical documents parse in tens of milliseconds, and results stream in as pages complete.

Cost Savings

Pay one flat license instead of ~$1.50–$65 per thousand pages to a cloud API. The more you parse, the more you save.

Structured output

Headings, paragraphs, lists and tables as typed JSON blocks, plus ready-to-use Markdown for LLM pipelines and search indexes.

Domain-locked licenses

Each key is bound to the domains you choose, so a leaked key is useless anywhere else. Revoke any key instantly.

Drop-in for any framework

Vanilla JS, React, Vue, Svelte or plain HTML. One init() call and a parse(file) method.

How it works

From npm install to parsed in five minutes

01

Get a license key

Create an account, generate a key and list the domains allowed to use it (for example app.company.com).

02

Install the SDK

npm i qovox-parser or one script tag, then QovoxParser.init({ licenseKey }).

03

Parse locally

Call parse(file) with any File. Documents are processed in the browser; only a tiny license check goes over the network.

Cost savings calculator

Cloud parsing vs. one flat license

Enter your volume. Prices are typical list prices for illustration only; check your vendor’s current pricing.

Slider covers 1,000 to 10,000,000 pages (logarithmic).

Cloud cost / month$0
qovox-parser / month$49
You save / month$0
You save / year$0
Pricing

Flat pricing. Unlimited pages.

No metering and no per-document fees. Start on the Free plan instantly, no card required.

Free

Build and ship your first document feature.

$0/ month
  • 1 active license key
  • Up to 2 allowed domains
  • PDF + DOCX to JSON & Markdown
  • Unlimited documents and pages
  • Instant, no card, no time limit
Start free

Enterprise

For teams shipping to many domains and customers.

$89/ month
  • Up to 50 active license keys
  • Up to 100 allowed domains per key, wildcards included
  • Extended offline grace period (7 days)
  • Usage analytics and audit trail
  • Priority support with a response SLA

Prices in USD. Pro and Enterprise are activated by our team for now; no payment is taken online. Compare plans

FAQ

Good questions

Are my users’ documents really never uploaded?

Correct. Parsing runs in the browser. The only network traffic from the SDK is a small license check (your license key, the page’s domain and the SDK version) roughly once an hour. No document content, file names or extracted text is ever sent.

Which file types are supported?

PDF files with a text layer and DOCX documents (headings, paragraphs, lists, tables, hyperlinks and basic formatting). Scanned PDFs have no text layer and need OCR, which is outside this demo.

How does the license check work?

On init() the SDK sends your key to our license API. The API checks that the key is active and that the calling domain is on your allow-list, then returns a short-lived signed token. If the key is revoked or the domain is wrong, init() rejects with LICENSE_INVALID, DOMAIN_NOT_ALLOWED or LICENSE_EXPIRED.

What happens if the license server is unreachable?

The SDK keeps working for a grace period using the last valid token (12 hours on Free, 24 hours on Pro, 7 days on Enterprise). After that, init() fails until the check succeeds again.

Can someone copy my license key from the page source?

They can see it, but it will not work on another site: keys only validate from the domains you allow, and the browser sets the request’s Origin header, which page scripts cannot forge. You can revoke or rotate a key at any time.

How fast is it?

It depends on the document and device. Text-based PDFs and DOCX files of a few dozen pages typically finish in well under a second on a modern laptop. The live demo above shows the real time for your file.

How much will I save compared with a cloud API?

Use the calculator above. Cloud parsing is billed per page, so savings grow with volume; at very low volumes a pay-per-page API can be cheaper than a flat license, and the calculator will tell you so.

Can I cancel?

Yes, any time. Free needs no cancelling, and a paid plan keeps working until the end of the period you already paid for.

Stop paying per page.

Create a license key in a minute and parse your first document today.

Start free