# FOIA Documents OCR: Searching Agency Productions

- Author: Schema Law (https://www.schemalaw.com/)
- Published: 2026-03-22T07:21:49Z
- Updated: 2026-10-11T19:22:20Z
- Category: Practice areas
- Canonical: https://www.schemalaw.com/blog/foia-documents-ocr

> How to run OCR on FOIA documents an agency released as image PDFs, what the statute says about format, and how to search around redaction boxes.

FOIA documents released as image-only PDFs cannot be searched until you run OCR on them. Upload the release, let the software read each page into text, and export a searchable PDF. You can then search for names, dates and file numbers, keeping in mind that anything under a redaction box returns nothing at all.

The conversion is the easy part. The harder questions are what you can ask the agency for in the first place, how to read the exemption labels printed beside each deletion, and how far to trust a search that comes back empty.

Exemption stamps sit in the margin, and a search can skip them if you only look at the body text. Treat the converted release as the public records production it is, and mark it in your index when the same pages are also the administrative record. Read any cover letter that cites a sunshine law or an open meeting law, and confirm each exemption code on the image before you treat a hit as the whole sentence.

## Why do FOIA releases arrive as image PDFs?

A FOIA release can arrive as image PDFs for three mechanical reasons: the records were paper to begin with, the redaction process turned each page into a picture, or pages were printed and scanned somewhere during review. From the file alone you usually cannot tell which, and for searching it makes no difference.

**Paper originals.** Older case files, handwritten logs and signed forms exist only on paper. Scanning them produces pictures of pages with no characters behind them.

**Redaction.** A redaction is only safe if the hidden words are removed from the file, not merely covered. One way to be certain of that is to flatten each page into an image after the boxes are drawn. That destroys the recoverable text under the boxes, and the text everywhere else on the page along with it.

**Print and scan.** A record that began as an email or a spreadsheet may have been printed for review, marked up by hand, and scanned back in. The result looks like a photocopy of a screen.

Releases are also mixed. A cover letter typed last week may sit in front of four hundred scanned pages, and a search that finds words on page one says nothing about the rest. Check several pages spread through each file before deciding what needs conversion. The post on [why you can't copy text from a PDF](https://www.schemalaw.com/blog/why-cant-i-copy-text-from-a-pdf) gives a quick test for telling a picture from real text.

## Are agencies required to release searchable records?

The Freedom of Information Act does not use a simple "must be searchable" rule in its format provision. It ties format to what the requester asked for and to what the agency can readily reproduce. So the practical point is to state the format you want in the request itself.

The relevant text is [5 U.S.C. 552(a)(3)(B)](https://www.law.cornell.edu/uscode/text/5/552):

> In making any record available to a person under this paragraph, an agency shall provide the record in any form or format requested by the person if the record is readily reproducible by the agency in that form or format. Each agency shall make reasonable efforts to maintain its records in forms or formats that are reproducible for purposes of this section.

The next subparagraph, (a)(3)(C), adds that an agency "shall make reasonable efforts to search for the records in electronic form or format, except when such efforts would significantly interfere with the operation of the agency's automated information system."

The government's own [FOIA.gov frequently asked questions](https://www.foia.gov/faq.html) put it in plain terms: you can "specify the format in which you wish to receive the records (for example, printed or electronic form)." The same page notes that FOIA does not require agencies to create new records.

Neither subparagraph mentions OCR or text layers. Whether a text-searchable PDF is "readily reproducible" for a particular agency and a particular record is a question about that agency's systems and about how the provision has been applied, and this post does not answer it. If the point matters to your request, read the agency's own FOIA regulations and take advice.

What you can do without any legal argument:

- **Ask at the start.** Say in the request that you want records in electronic form, and name the format you prefer.
- **Ask again after a release.** The FOIA.gov page describes FOIA Contacts and FOIA Public Liaisons who work with requesters to answer questions and resolve concerns. A short, specific note may get you a better copy.
- **Convert it yourself meanwhile.** Nothing about asking stops you from running OCR on what you already hold.

## Making a FOIA release searchable

To make a FOIA release searchable, keep the files exactly as received, convert working copies, and export searchable PDFs that carry the release's own file names. Before any of that, count the pages and compare the count with the agency's letter.

1. **Save the release as received.** Put the files and the response letter in a folder you do not edit. Any later dispute about what was released is settled from that folder.
2. **Record the basics.** Note the request number, the release date, whether more releases are expected, and any page counts the letter states.
3. **Count what you got.** Add up the pages in the files. If the total differs from the letter, find out why before you start reading.
4. **Find the pages that need OCR.** Try selecting a word on several pages of each file. Only image pages need conversion.
5. **Split oversized files.** In Schema Law an upload can be up to 20 MB, and the page limit per document depends on the plan: 250 pages on Solo and 1,000 on Team. Split a larger release at natural breaks and keep the original page range in each name, such as `2026-F-0412 release 2 pp 0251-0500.pdf`. The post on [batch OCR for discovery documents](https://www.schemalaw.com/blog/batch-ocr-discovery-documents) covers splitting and reassembly.
6. **Upload and review.** Look through the parsed pages for any that came out empty or garbled.
7. **Export.** Take a searchable PDF for reading and plain text for any full-text search tool you use.
8. **Log the bad pages.** List pages too faint or damaged to read, so no one assumes they were searched. The post on [OCR for low quality PDF scans](https://www.schemalaw.com/blog/ocr-low-quality-pdf) has a checklist for deciding what to do with them.

Two details of the exports are worth knowing. For a PDF upload, Schema Law's searchable PDF is your original file with a hidden text layer added, so the page images, boxes and labels are unchanged. The layer is laid down page by page in reading order, not word by word beneath the image, so treat a search hit as telling you which page to read. In the plain text export, pages are separated by a form feed character, so a tool that reads the file can tell where each page ends.

The [page limits for each plan](https://www.schemalaw.com/pricing) decide how a large release has to be divided, so check them before you split anything.

## Redaction boxes and exemption codes

OCR reads nothing under a redaction box, but it can read the exemption label printed beside or inside it. Those labels are worth indexing, because they tell you which exemption the agency relied on for each deletion, page by page.

The labels come from the statute. The closing paragraph of [5 U.S.C. 552(b)](https://www.law.cornell.edu/uscode/text/5/552) requires that any reasonably segregable portion of a record be provided after the exempt parts are deleted. It then says the amount of information deleted, and the exemption under which the deletion is made, "shall be indicated on the released portion of the record" unless doing so would harm an interest the exemption protects, and, "if technically feasible", at the place in the record where the deletion is made.

A label such as "(b)(6)" therefore points to a paragraph of subsection (b). In the statute's words, shortened:

| Label | What the paragraph covers |
| --- | --- |
| (b)(1) | Matters properly classified under an Executive order in the interest of national defense or foreign policy |
| (b)(3) | Matters specifically exempted from disclosure by another statute |
| (b)(4) | Trade secrets and commercial or financial information obtained from a person and privileged or confidential |
| (b)(5) | Inter-agency or intra-agency memorandums or letters that would not be available by law to a party in litigation with the agency |
| (b)(6) | Personnel, medical and similar files whose disclosure would be a clearly unwarranted invasion of personal privacy |
| (b)(7) | Records compiled for law enforcement purposes, to the extent one of six listed harms, (A) to (F), applies |

Read the full text before relying on any of these summaries. Paragraphs (2), (8) and (9) are not shown.

What conversion does with the boxes:

- **Solid black boxes** produce no text. The words on either side may be joined into one line, so a sentence can read as complete when part of it is missing.
- **Outlined boxes with a label inside** usually yield the label as text.
- **Small labels** are easy to misread. Expect `(b)(6)` to come back sometimes as `(b) (6)`, `(b)(G)` or `b6`, and `(b)(7)(C)` as `(b)(7)(c)` or `(b)(1)(C)`. Search for several forms.

A redaction index is the practical product. Export the release to Excel, where the workbook's "Text" sheet has one row per block of text and a column for its page number. Filter that sheet for rows containing `(b)(` and you have a first list of pages that carry labels. Then go through those pages by eye and record the page, the label and roughly how much is covered: a name, a line, a paragraph, the whole page. The filter finds only labels that were recognized, so page through the release once to catch the rest.

Never quote across a box as though the sentence were continuous. Show the deletion in the quotation.

## Searching a release for names and dates

Search a FOIA release with several forms of every term, and treat an empty result as "not found in the readable text". The name you are looking for may be misspelled in the record, misread by recognition, or sitting under a privacy redaction.

Build a term list before you start. For a fictional request about a contracting officer named Margaret O'Leary and contract HX-2291:

| Looking for | Search terms |
| --- | --- |
| The person | `O'Leary`, `OLeary`, `O Leary`, `Leary`, `Margaret`, `M. O'Leary`, her email username |
| The contract | `HX-2291`, `HX2291`, `HX 2291`, `2291` |
| A date | `March 4, 2024`, `3/4/2024`, `03/04/24`, `4 Mar`, `2024-03-04` |
| Her office | Full name, acronym, room or mail code |

Some habits make the search more reliable:

- **Use email headers as anchors.** Lines beginning "From:", "To:", "Sent:" and "Subject:" are short, typed and regular. Searching "Subject:" lists every email in the release.
- **Search for the neighbours of a redacted name.** If names are deleted, search for titles, office names and signature-block phrases that sit beside them.
- **Expect duplicates.** An email chain reproduces earlier messages each time someone replies. Twelve hits may be one message quoted twelve times.
- **Sort by date after you search.** A release is rarely in date order. Record each relevant page with its date in a spreadsheet and sort it.
- **Sample the misses.** Pick twenty pages at random and read them. If you find your term on a page the search skipped, the text is weaker than you thought and more reading is needed.

Keep a short record of what you searched, in which files, on which date. If the release is supplemented later, you can rerun the same list. The post on [why OCR output is full of errors](https://www.schemalaw.com/blog/why-is-ocr-output-full-of-errors) explains which characters are most often confused, which helps in choosing variants.

## State public records responses

State and local records are outside FOIA. FOIA.gov describes it as the right to request records "from any federal agency". A request to a city, county, school district or state department is made under that state's own public records law, with its own name, deadlines, exemptions and format rules.

Florida's statute is one example of a format rule. [Section 119.01(2)(f), Florida Statutes](https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0100-0199/0119/Sections/0119.01.html), says that an agency keeping a public record in an electronic record-keeping system "must provide a copy of the record in the medium requested if the agency maintains the record in that medium". Other states word the point differently or not at all. Read the statute for the state you are dealing with before you cite a right to any format.

For conversion, the differences are practical:

- **Smaller offices, rougher copies.** A response may be scanned at a front counter, faxed, or photographed. The post on [how to OCR a faxed document](https://www.schemalaw.com/blog/how-to-ocr-a-faxed-document) covers the worst of these.
- **Different labels.** Deletions are justified under the state's law, so do not expect federal-style "(b)(6)" labels. Search for the state statute's section numbers instead.
- **Police records.** A large share of local requests are for incident reports, which have their own layout problems. The post on [OCR for police reports](https://www.schemalaw.com/blog/ocr-police-reports) goes through them.
- **Handwriting.** Sign-in sheets, inspection notes and logs kept by hand will convert poorly. Plan to read them.

Local responses tend to be short. A three-page response fits Schema Law's free plan, which takes one document a day and exports every format the paid plans do. That is a fair way to see how a typical page from that office converts before committing to a long request. The [three steps on the homepage](https://www.schemalaw.com/#how-it-works) show the process from upload to export.

## Try it on a real document

Upload a scanned PDF and export it as Word, a searchable PDF or plain text on the free plan. Your documents are never used to train an AI model. [Start free](https://www.schemalaw.com/api/auth/google)
