Cross-file continuity
One number sequence runs through 47 files in the order you set. You never count by hand.
No upload, by architecture
No third-party scripts, no CDN fonts, no embeds. Cross-origin isolation blocks them at the browser level.
No page cap
The limit is your machine’s memory, not a plan tier. 2,000 pages in one run is the design target.
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. You do not need a better PDF editor. You need this batch stamped tonight, correctly, once.
Solo practitioners, small-firm administrators, bid and tender teams, and in-house counsel stamping CONFIDENTIAL across contract sets use it too. 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
It writes each finished PDF straight into a folder you pick, then releases the memory. Your originals are never touched. 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, switch to the Network panel, run a full batch. It stays empty. The only requests on this site are the initial page load and five counting pings 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.
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
- Password prompt for encrypted files; the password stays in memory
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}_{begBates}-{endBates}.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
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
- Irreversible operations need a verification design we have not built. Under evaluation, not shipped.
- 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
One file, up to 25 pages
Every feature is on: all three stamp layers, rotation handling, manifest export, everything. The point is to let you verify the output on your own file. If 25 pages is enough for your work, you were never going to need the paid version.
Open the toolUnlimited
$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.
Checkout is not open yet — the payment provider is still reviewing the account. Every feature is already available in the free tier.
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.
For reference
- Acrobat Pro: subscription, and it does not produce a load file
- Online PDF sites: free, and they require an upload
- Desktop Bates software: $99 and up, and usually Windows only
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.
It sends five things, and here they are: a page view, one ping when a batch finishes, one when the checkout page opens, one when a license key verifies, and one when stamping fails with an error type. Each is about thirty bytes. No cookie, no identifier, no filename, no page count. Block them with any blocker and the tool behaves identically. We would rather tell you than have you find them.
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. We do not run OCR and have no plans to.
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.
Concordance .dat and Opticon .opt are the next thing to be built, and they are the reason this is a production tool rather than a stamper. Version 1 ships the manifest CSV. If you need the load files, say so through the feedback form and it moves up.
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.