PDF Bates Numbering — Free Legal Discovery Stamping
Stamp legal-style Bates numbers (PREFIX-000001, PREFIX-000002…) onto every page of a PDF. Configure the prefix, start number, position, font and size for discovery-ready output.
Drop your PDF file hereTap to select a file
Supports PDF, up to 200MB
What to do next
Related tools
Add Page Numbers to PDF
Add page numbers to every page of your PDF.
pdfRedact PDF
Automatically detect and redact sensitive data (SSN, email, phone numbers) from a PDF with black boxes.
pdfMerge PDF
Combine multiple PDF files into one document.
pdfFlatten PDF
Flatten form fields, annotations, and layers in a PDF to make content non-editable and static.
pdfProtect PDF
Add password protection to a PDF file.
pdfSign PDF
Draw, type, or upload a signature onto your PDF.
pdfAbout PDF Bates Numbering
Bates numbering is the legal profession's barcode. Every page in a discovery production gets a unique sequential identifier (ACME-000001, ACME-000002…) so any single page can be referenced unambiguously across thousands of related documents in a deposition, a motion, or an exhibit binder. Doing it wrong has consequences — a missing or duplicated number can derail the chain of custody during a hearing — so the tools that do it well charge accordingly. The PDF Bates Numbering tool gives you the same output for free, generated entirely inside your browser tab with the open-source pdf-lib JavaScript library.
The defaults match the convention used by US federal courts: bottom-right position, 10 pt Helvetica, black, 6-digit zero-padded number, no separator inside the number itself. Drop a PDF in, set the prefix and start number, and download. For non-standard shops, every detail is configurable: position (six options for each corner and the centre of each edge), font size, colour, margin from the page edge, separator character between prefix and number, and zero-padding width. The page range field accepts the lawyer-friendly notation "1-end" or "3-7,10,12-15" so you can stamp only part of a document if a previous batch covered the rest.
Three behaviours separate this from a "draw page numbers" tool. First, the prefix-plus-number string is treated as a single atomic value — no space, no formatting drift, byte-identical across runs. Second, the start number is honest: if you tell it 574, the first stamped page is exactly ACME-000574, not "page 574 of N". Third, the tool reports the first and last Bates numbers it stamped so you have a clean audit trail to paste into the production index. Together these are what make the output usable in a real privilege log without manual touch-up.
A practical workflow: keep a running index file (a CSV is fine) with one row per production batch listing the prefix, start number, end number, and source file. When a new batch arrives, look up the previous batch's last number, increment by one for the new start, run the tool, copy the reported first/last numbers back into the index, and you have a continuous sequence across the entire matter. The tool never modifies the rest of the page — the Bates number is added as a new content layer — so if you need an immutable production copy you can chain through Flatten PDF afterwards.
How it works
- 1Drop a PDF onto the upload area. Files up to 200 MB are accepted.
- 2Set the prefix (e.g. "ACME"), start number (e.g. 1 for the very first batch, or the next unused number from a previous batch), and zero-padding width (default 6).
- 3Pick the position (default bottom-right), font size, colour, and margin from the page edge.
- 4Optional: limit the page range with "1-end" or "3-7,10,12-15" notation if a previous batch already stamped some pages.
- 5Click Stamp. pdf-lib writes the Bates string onto each page in one pass and the metrics show the exact first/last numbers stamped.
- 6Download. Chain through Flatten PDF if you need an immutable production copy where the Bates layer cannot be re-edited.
Common use cases
- Stamp a 500-page contract production with sequential ACME-000001 numbering for a patent litigation discovery
- Continue numbering from where the previous batch ended on a rolling production from an opposing counsel
- Add internal exhibit numbers (EX-A-0001…) to a hearing binder before a depositions session
- Number a real-estate transaction packet (purchase agreement + addenda + disclosures) for the closing file
- Stamp a corporate compliance audit trail so each page can be referenced in the audit report
- Mark research-grant supporting documents with sequential identifiers for an institutional review board submission
FAQ
What is a Bates number?
A unique sequential identifier stamped on every page of a document set used in legal discovery. The standard format is a short prefix plus a zero-padded number — for example, ACME-000001 to ACME-000573. Each page in the entire production gets its own unique number.
How does this differ from regular page numbering?
Regular page numbering restarts at 1 for each document and does not include a project prefix. Bates numbering is unique across an entire production set, so a single page can be referenced unambiguously across thousands of documents.
Can I continue from a previous batch?
Yes — set the start number to the next unused value from your previous batch. The tool produces a sequential range starting from there.
Where on the page does the number appear?
Pick from bottom-right (the default for most US courts), bottom-left, bottom-centre, top-right, top-left or top-centre. The font, font size and colour are all configurable.
Does it modify the rest of the page?
No. The Bates number is added as a new content layer on each page; the original content stream is untouched. If you need an immutable production copy, flatten the result with Flatten PDF afterwards.
Can I continue from a batch I numbered last week?
Yes. Read the last Bates number from your previous batch (the tool reports it in the metrics, so you have an exact value), add one, and use that as the start number for the new batch. The output will pick up exactly where you left off.
What font does it use?
Helvetica, embedded directly from the standard 14 fonts pdf-lib ships. That choice has no licensing implications and renders identically in every PDF viewer. If you need a different font (e.g. for a non-Latin prefix), the tool will gain a font-upload option in a future update.
Will the Bates numbers cover existing content on the page?
They are placed in the page margin (24 points from the corner by default), so on a typical letter-size or A4 document with normal margins they sit in empty white space below the body content. If your source document has unusually narrow margins, increase the margin setting or pick a different position.
How is this different from regular page numbering?
Regular page numbering is internal to one document — page 1 of 23 in this PDF, page 1 of 47 in that one. Bates numbering is unique across an entire production set spanning many documents, with a project-specific prefix that ties every page back to the matter it belongs to. They also have very different formatting conventions (Bates is always zero-padded, regular page numbers usually are not).
Can I stamp a different prefix on different page ranges?
Run the tool twice on the same file. First pass stamps pages 1-50 with prefix ACME-A; second pass stamps pages 51-100 with ACME-B. Each pass takes the previous output as input. The tool does not modify the existing Bates layer, so the two stamps coexist on different pages without interfering.
Does it preserve the rest of the PDF’s content?
Yes — the source content stream is untouched. The Bates number is added on a new content layer, similar to how standard PDF editors add annotations. If the document had bookmarks, form fields, links, or signatures, all of them survive intact.
Is this output accepted by US courts?
The format produced (PREFIX-NNNNNN, configurable position, embedded standard font) is the same as what most legal-document production tools produce, all of which are routinely used by major US law firms. The tool is the production engine; courtroom acceptance depends on local rules and your firm’s production protocol, which the tool cannot enforce on your behalf.