Redaction · Metadata · Numbering gaps · Nothing uploaded
Check the production before you serve it.
A black bar with live text still under it. An author field naming a different client. A scanned page nobody read. A gap in the sequence. An index that does not match the ranges you assigned. All five are invisible on screen and all five are recoverable by the receiving side. BatesKit renders every page of the whole set on your device and reports each finding with a page number, writing nothing. It also does the numbering — continuous Bates across files, confidentiality legends, exhibit labels, and the manifest CSV and load files that make the set citable. Anyone can put a number on a page. What gets challenged is what you did not check.
Free for up to 20 files and 60 pages, with every feature enabled. $19 once for unlimited.
Real text layer, positioned against the page CropBox and its /Rotate value — and the manifest row that ends on the same number.
Five checks before you send
Recoverable text under black bars, metadata leaks, numbering gaps and duplicates, scans with no text layer, and your index against the ranges you assigned. Read-only: the checks write nothing and never modify your files.
Numbering that survives the set
One sequence runs through 47 files in the order you set, positioned against each page’s own CropBox and /Rotate value so it lands where a reviewer looks. You never count by hand.
An auditable record, not just a stamp
Every run writes a manifest CSV — BegBates, EndBates, page count, SHA-256 per document — plus the load files a review platform reads: Summation .dat and Opticon .opt. That is what makes the set citable rather than merely numbered.
Who this is for
It is seven in the evening. Production is due tomorrow morning. Forty-seven PDFs need continuous Bates numbers, and some of them are privileged — which rules out the free online PDF sites — and the firm never bought you Acrobat. The numbering is the part you can see went wrong. The black bar with live text under it, and the author field naming another client, are not: they look finished on screen and open in seconds on the other side. So before anything ships, the same batch runs five read-only checks — metadata leaks, black bars that are not redaction, privileged or sensitive content, a production QA report for gaps and duplicates, and your index reconciled against the assigned ranges. All on this machine, nothing uploaded. You do not need a better PDF editor. You need this batch stamped, checked, and sent tonight, correctly, once.
Solo practitioners, small-firm administrators, bid and tender teams, and in-house counsel stamping CONFIDENTIAL across contract sets use it too — then run the metadata and redaction checks before sending. It was built for the first case.

Three steps, then it runs
Choose the files
Drop files or a whole folder. Natural sort puts file2 before file10. Reorder by dragging, keyboard included. The list order is the numbering order, always visible.
Configure the stamp
Prefix, digits, start number, step. Nine-cell placement plus exact offsets in pt, inches, or millimetres. Live preview renders through the same pipeline that writes the output.
Write to an output folder, then run the checks
It writes each finished PDF straight into a folder you pick, then releases the memory. Your originals are never touched. Flip to Check mode to run metadata, redaction, and production QA over the same batch — read-only, nothing written — and export the findings report. A manifest CSV lists BegBates, EndBates, page count, and SHA-256 per document.
Verify the claim yourself
Privacy here is a property you can check, not a promise you have to take. Two ways, both take under a minute.
Watch the network
Open DevTools and inspect Network while processing. PDF content is never sent. Public sample files and app assets may be downloaded, alongside the anonymous counters described in the FAQ.
Turn off your Wi-Fi
Disconnect completely, then run the whole job — load, preview, stamp, write, manifest. It works offline because there is no server side to the processing.
We do not encrypt your documents. We never receive them. Those are different claims and only the second one is ours to make.
What it does
Grouped by the part of the job it belongs to, not by marketing tier.
Verification
- Metadata leak check: author, custom fields, dates, XMP, embedded files
- Redaction check: recoverable text under black bars, unapplied annotations
- Production QA: numbering gaps, duplicates, mixed geometry, scans, filenames
- Download the findings as JSON or CSV for your QC record
- Read-only — checks write nothing and never modify your files
Numbering
- Prefix and suffix, 3 to 10 digit padding, custom start and step
- Continuous across files, or reset per file
- Reserve ranges: roll to the next thousand at each document boundary
- Paste an already-used range and it refuses to start on an overlap
- Digit overflow widens the field and warns before the run, never silently
- Blank pages consume numbers, as production convention requires
Stamping
- Real, searchable text layer using PDF standard-14 fonts — zero embedded bytes
- Positioned against CropBox, not MediaBox, so tight scans stay inside the page
- Per-page /Rotate transform: 0, 90, 180, 270
- Mixed page sizes measured page by page, never inferred from page one
- Optional opaque backing box so the number never sits on top of body text
- Confidentiality legends and per-document exhibit labels as separate layers
- Page ranges: all, first only, explicit ranges, exclusions
- Print-safety warning inside 0.25in of the trim edge
Input and checks
- Drop files, drop a folder, or pick a directory; subfolders are rebuilt on output
- Prescan reports page count, mixed sizes, rotation, missing text layer, encryption, damage
- Duplicate detection by SHA-256, flagged and never auto-removed
- Existing Bates-like numbers are detected and shown so you can move yours
- Encrypted files are named and skipped, never half-stamped; decrypt them first
Output
- Writes into a directory you choose, file by file, releasing memory as it goes
- Streaming ZIP fallback on Safari and Firefox, with the lower ceiling stated up front
- Filename template, default {name}_{beg}-{end}.pdf
- Manifest CSV: relative path, filename, pages, BegBates, EndBates, output SHA-256
- Separate failure list naming every file that did not process and why
- Optional metadata scrub and form-field flattening
The rotated-page problem
A page carrying /Rotate 90 has its coordinate origin somewhere the reader never sees. Tools that stamp at "lower right of the coordinate system" put the number on the visual left edge, sideways. Every page here is transformed by its own /Rotate value, so the number lands in the lower right of what a human looks at.
✕ Coordinate lower-right
✓ Visual lower-right
Run your next production through it before you decide
The free tier is not a demo of one file. Twenty files and sixty pages is enough to see continuous numbering across a set, the manifest, the load files, and the gap report. Nothing leaves the tab, so there is nothing to sign first.

What it will not do
Written here rather than buried at the end of the FAQ.
- No OCR
- A scanned page gets a searchable number and a body that is still an image. We do not touch your content, so we cannot make it searchable.
- No redaction — only the check
- BatesKit verifies that black bars are not hiding recoverable text, but it does not redact. Removing content is irreversible; the check exists so you catch leaks before producing, and you redact in the tool you already trust.
- A single file over roughly 300MB will fail
- The PDF writer holds one document in memory at a time. That is a browser memory limit, not a policy. Oversized files are flagged red during prescan.
- If you already have Acrobat Pro, do not buy this
- Acrobat’s batch sequence does the numbering. Buy this when the subscription is not there, or the machine is a Mac, or the file cannot be uploaded.
- No accounts, no cloud, no collaboration
- There is nowhere to store your documents because there is no storage.
Pricing
Two options. No third tier put there to make the middle one look reasonable.
Free
$0
Up to 20 files, 60 pages total
Every feature is on, and the tier is deliberately multi-file: continuous numbering across a set, the manifest CSV with a SHA-256 per document, the Summation .dat and Opticon .opt load files, and the gap-and-duplicate QA report only mean anything on more than one document. Run a real production through it before you decide.
Open the toolFor reference
- Acrobat Pro: subscription, and it does not produce a load file
- Free browser Bates tools: fine for one file — no cross-file sequence, no manifest, no load file, no QA
- Desktop Bates software: $99 and up, and usually Windows only
Unlimited
$19
One payment, no renewal
Unlimited files and pages. A signed license key verified offline in your browser against a public key shipped in the page. No account, no email required, no machine binding, no activation count.
Works with the network off. If this site disappears and the domain lapses, the key you bought still verifies, because verification never involved a server.
Refundable within 14 days, no reason needed. Write to support and it is done. Sold by Waffo Pancake, our merchant of record; sales tax or VAT is shown at checkout. Your key arrives within seconds from support@bateskit.com, in a separate email from the receipt.
Questions
Yes, and you can confirm it without trusting us. Open DevTools, go to the Network panel, and run a batch: no request carries your data. Then disconnect from the network entirely and run it again; it works. The PDFs are parsed and rewritten by JavaScript inside your own tab.
Anonymous counts cover page views, sample loading and successful sample output, starting a real-file batch or check, opening checkout, verifying a license and errors. No cookies, identifiers, filenames, page counts or document content are sent. Blocking these requests does not change the tool.
Yes. Every stamp is a real text object drawn with a PDF standard-14 font, so Ctrl+F finds it and e-discovery review platforms index it. Bitmap stamps are not acceptable for production work and we do not offer them.
They get numbered normally and the number is searchable. The body text is not, because it was never text. If you need the scan checked for privileged or sensitive content, a local OCR runs entirely in your tab when you ask for it — the image never leaves the device.
Metadata flags author, custom fields, dates, XMP, and embedded files that leak client information. Redaction finds text recoverable under black bars, white-out and invisible-ink covers, and redaction annotations that were never applied. Content flags privileged language, SSNs, emails, and phone numbers in the body — with local OCR when a scan needs it. Production QA reports gaps or duplicates in the numbering, mixed page geometry, and scans with no text layer. Index reconciliation checks your index or privilege log against the assigned ranges, and stamps are re-opened and verified before they are written. All five are read-only — nothing is written and nothing leaves this device. Findings export as JSON or CSV for your QC record.
The design target is 50 files and 2,000 pages in one run without running out of memory, with peak usage around your largest single file plus 200MB. One file larger than roughly 300MB will fail; the PDF writer needs the whole document in memory. Prescan flags those before you start.
Never. Output always goes to a different directory that you pick. Stamping a PDF cannot be undone, which is exactly why the tool refuses to write over your input.
Each page is measured on its own. Position is computed from the CropBox, not the MediaBox, so tightly cropped scans do not get stamped off-page, and the /Rotate value is applied so the number appears in the visual lower right rather than the coordinate one. Mixed Letter, Legal, A4, and drawing sizes in a single batch are handled page by page.
Chrome and Edge get the best path: it writes each finished file directly into your chosen folder through the File System Access API and frees the memory immediately. Safari and Firefox do not have that API, so they fall back to a streaming ZIP download, which holds more in memory and therefore has a lower ceiling. A banner says so when you are on one of them.
Save a named profile with the stamp layers and numbering rules. Profiles live in your browser’s local storage and export to JSON, so you can keep one per matter or hand one to a colleague.
Progress is written to IndexedDB: filenames, page counts, and allocated ranges only, never file contents. On your next visit it offers to resume, skipping what finished and continuing the sequence. You will have to grant folder access again, which is a browser rule we cannot work around.
You get a key. It is an Ed25519 signature over your license data, and the matching public key is compiled into this page. Verification is a signature check performed locally, so it works offline and forever. Paste it once, it stays in local storage. Clear that storage and paste it again.
Yes. Every run can write a Summation-style .dat (one row per document: BegBates, EndBates, path, page count, source name) and an Opticon .opt (one row per page, keyed on that page’s own Bates number, with the document-break flag and page count on the first row). Both land beside the stamped PDFs, or inside the ZIP. One caveat, stated up front: Opticon was specified for one single-page image per row, and here every row of a document points at the same multi-page PDF — the normal way the format is used for PDF productions, but a loader that insists on one image file per row will reject it.
A subscription would mean a server, accounts, and a promise that we stay in business. This is one developer and a static site. One payment for a signed key you can verify without us is the arrangement we can actually keep.
No. Whether a numbering scheme satisfies a particular court, protective order, or production agreement is yours to confirm. This tool does not know your case. Stamping is written into the PDF and cannot be reversed, which is why your originals are never overwritten.
Tell us what is missing or broken
A counter can say that stamping failed three times. Only you can say what you were holding when it did.