FOIA and public records requests
Comprehensive guide for obtaining government records through freedom of information laws.
Understanding FOIA landscape
Jurisdiction overview
| Level |
Law |
Scope |
| Federal |
Freedom of Information Act (5 U.S.C. § 552) |
Federal executive branch agencies |
| State |
Varies by state (e.g., OPRA in NJ, FOIL in NY) |
State and local agencies |
| Local |
Often covered by state law |
Municipal, county, school boards |
Key federal exemptions (FOIA)
## The 9 FOIA exemptions
1. **National security** - Classified information
2. **Internal personnel rules** - Agency housekeeping matters
3. **Statutory exemptions** - Other laws prohibit disclosure
4. **Trade secrets** - Confidential business information
5. **Inter/intra-agency memos** - Deliberative process privilege
6. **Personal privacy** - Personnel, medical files
7. **Law enforcement** - Could interfere with proceedings
8. **Financial institutions** - Bank examination reports
9. **Geological data** - Oil and gas well information
Note: Agencies must segregate and release non-exempt portions
Drafting effective requests
Request template (Federal FOIA)
[Your Name]
[Your Address]
[City, State ZIP]
[Email]
[Phone]
[Date]
FOIA Officer
[Agency Name]
[Agency Address]
RE: Freedom of Information Act Request
Dear FOIA Officer:
Pursuant to the Freedom of Information Act, 5 U.S.C. § 552, I request access to and copies of:
[DESCRIBE RECORDS SPECIFICALLY]
**Scope and timeframe:**
- Date range: [START DATE] to [END DATE]
- Offices/divisions: [SPECIFIC OFFICES if known]
- Keywords: [RELEVANT SEARCH TERMS]
**Format requested:**
I request records in electronic format (PDF, native format) delivered via email to [your email] or via an online portal.
**Fee waiver request:**
I request a waiver of all fees associated with this request. Disclosure is in the public interest because:
- [Explain how information contributes to public understanding]
- [Explain why you are positioned to disseminate information]
- [State if affiliated with news organization or research institution]
Alternatively, if fees cannot be waived, I am willing to pay up to $[AMOUNT] for processing. Please contact me before exceeding this amount.
**Expedited processing request (if applicable):**
I request expedited processing because:
- [Urgent need to inform the public about actual or alleged government activity]
- [Imminent threat to life or physical safety]
**Contact information:**
Please contact me at [email] or [phone] if you have questions or need clarification about this request.
I expect a response within 20 business days as required by law.
Sincerely,
[Your Name]
Request drafting best practices
## Effective request strategies
### Be specific but not too narrow
BAD: "All documents about climate change"
BAD: "The email from John Smith on March 15, 2024 at 2:47 PM"
GOOD: "Emails between [Office] and [External Party] regarding [Topic] from [Date Range]"
### Use agency terminology
- Research how agency categorizes information
- Use their document type names (memos, briefings, reports)
- Reference specific programs or initiatives by official name
- Include relevant file numbers if known
### Define your terms
- Specify what you mean by "communications" (emails, texts, calls?)
- Define "records" (include drafts? attachments?)
- Clarify "regarding" vs "mentioning" vs "primarily about"
### Request specific record types
- Emails and email attachments
- Calendar entries and meeting invites
- Text messages and messaging apps
- Memoranda and briefing papers
- Contracts and invoices
- Meeting minutes and notes
- Policies and procedures
- Correspondence (letters, faxes)
Tracking and managing requests
Request tracking system
from dataclasses import dataclass
from datetime import date, timedelta
from enum import Enum
from typing import Optional
class RequestStatus(Enum):
DRAFTED = "drafted"
SUBMITTED = "submitted"
ACKNOWLEDGED = "acknowledged"
PROCESSING = "processing"
PARTIAL_RESPONSE = "partial_response"
COMPLETED = "completed"
APPEALED = "appealed"
LITIGATION = "litigation"
CLOSED = "closed"
@dataclass
class FOIARequest:
id: str
agency: str
date_submitted: date
description: str
status: RequestStatus = RequestStatus.DRAFTED
# Tracking
tracking_number: Optional[str] = None
assigned_officer: Optional[str] = None
estimated_completion: Optional[date] = None
# Fees
fee_estimate: Optional[float] = None
fee_waiver_requested: bool = True
fee_waiver_granted: Optional[bool] = None
# Timeline
acknowledgment_date: Optional[date] = None
response_dates: list[date] = None
# Documents
pages_received: int = 0
pages_withheld: int = 0
exemptions_cited: list[str] = None
# Appeals
appeal_deadline: Optional[date] = None
appeal_filed: Optional[date] = None
@property
def statutory_deadline(self) -> date:
"""Federal FOIA: 20 business days from submission."""
# Simplified - should account for business days
return self.date_submitted + timedelta(days=28)
@property
def is_overdue(self) -> bool:
return date.today() > self.statutory_deadline and self.status in [
RequestStatus.SUBMITTED,
RequestStatus.ACKNOWLEDGED,
RequestStatus.PROCESSING
]
# Tracking spreadsheet structure
TRACKING_COLUMNS = [
'request_id',
'agency',
'date_submitted',
'tracking_number',
'description',
'status',
'statutory_deadline',
'actual_response_date',
'pages_received',
'exemptions_cited',
'fee_amount',
'appeal_deadline',
'notes'
]
Follow-up communication templates
## Status inquiry (after 20+ business days)
Subject: Status Inquiry - FOIA Request [Tracking Number]
Dear FOIA Officer:
I am writing to inquire about the status of my Freedom of Information Act request submitted on [DATE], assigned tracking number [NUMBER].
Under FOIA, agencies must respond within 20 business days. As of today, [X] business days have elapsed.
Please provide:
1. Current status of my request
2. Estimated completion date
3. Any fee estimates
4. Name of assigned processor
I can be reached at [contact info].
Sincerely,
[Name]
## Fee waiver appeal
Subject: Appeal of Fee Waiver Denial - Request [Number]
Dear FOIA Appeals Officer:
I appeal the denial of my fee waiver request dated [DATE] for request [NUMBER].
The denial was improper because:
1. **Public interest**: [Explain how disclosure serves public interest]
2. **Ability to disseminate**: [Describe your platform/audience]
- Publication: [name, circulation/readership]
- Previous FOIA-based reporting: [examples]
- Planned use of records: [specific plans]
3. **Commercial interest**: I have no commercial interest in these records. [Or: My commercial interest is minimal compared to public benefit because...]
4. **Comparison**: Similar requests have received fee waivers. See: [examples if available]
I request the fee waiver be granted or, alternatively, that fees be limited to [amount].
Sincerely,
[Name]
Handling responses
Response review checklist
## Initial response review
### Administrative check
- [ ] Response received by deadline?
- [ ] Tracking number matches
- [ ] Request description accurate
- [ ] All requested record types addressed
### Completeness assessment
- [ ] All date ranges covered?
- [ ] All offices/divisions searched?
- [ ] Search terms used listed?
- [ ] Any referrals to other agencies?
### Exemption analysis
For each exemption claimed:
- [ ] Specific exemption cited (e.g., "Exemption 6")
- [ ] Explanation provided for each withholding
- [ ] Foreseeable harm articulated?
- [ ] Segregable portions released?
### Document review
- [ ] Page count matches stated total
- [ ] Documents legible
- [ ] Redactions clearly marked
- [ ] Index provided (Vaughn index if applicable)
### Fee assessment
- [ ] Charges match estimate?
- [ ] Itemized breakdown provided?
- [ ] Fee category correct (media, educational, commercial, other)?
Redaction analysis
## Understanding redactions
### Types of redactions
- (b)(1) - National security [black bar with exemption]
- (b)(5) - Deliberative process [often overused]
- (b)(6) - Personal privacy [names, contact info]
- (b)(7)(A) - Law enforcement investigation
- (b)(7)(C) - Law enforcement privacy
### Challenging over-redaction
Questions to ask:
1. Is entire document withheld or just portions?
2. Are routine details redacted unnecessarily?
3. Is information already public elsewhere?
4. Is the exemption correctly applied?
5. Was foreseeable harm test applied?
### Building your case
- Compare with similar released documents
- Check if information is already public
- Note inconsistent redaction patterns
- Document segregability arguments
Appeals process
Federal FOIA appeal template
[Your Name]
[Address]
[Date]
Chief FOIA Officer / FOIA Appeals Office
[Agency Name]
[Address]
RE: Administrative Appeal of FOIA Request [Tracking Number]
Dear Appeals Officer:
Pursuant to 5 U.S.C. § 552(a)(6), I appeal the [partial denial / full denial / inadequate search / fee waiver denial] of my FOIA request dated [original date], tracking number [number].
**Original request:**
[Brief description of what you requested]
**Agency response:**
On [date], the agency [describe response - denied, partially released, etc.]
**Grounds for appeal:**
[Choose applicable grounds:]
**1. Improper exemption claim**
The agency improperly invoked Exemption [X] because:
- [Specific argument about why exemption doesn't apply]
- [Legal precedent if known]
- [Foreseeable harm not demonstrated]
**2. Inadequate search**
The agency failed to conduct an adequate search because:
- [Specific offices not searched]
- [Relevant record systems overlooked]
- [Search terms too narrow]
**3. Failure to segregate**
The agency failed to release non-exempt portions as required. Specifically:
- [Identify documents where segregation possible]
**4. Fee waiver improperly denied**
[See fee waiver appeal template above]
**Relief requested:**
I request that the agency:
1. Release all improperly withheld records
2. Conduct additional searches of [specific locations]
3. Provide a detailed justification for any continued withholdings
4. Grant my fee waiver request
I expect a response within 20 business days.
Sincerely,
[Name]
Appeal deadlines by jurisdiction
| Jurisdiction |
Appeal deadline |
Where to file |
| Federal FOIA |
90 days from response |
Agency appeals office |
| New Jersey OPRA |
45 days |
Government Records Council |
| New York FOIL |
30 days |
Agency appeals officer |
| California PRA |
No admin appeal |
Direct to court |
| [Add your state] |
[Deadline] |
[Location] |
Advanced strategies
Multi-agency requests
## Coordinated request strategy
When a topic spans multiple agencies:
1. **Map the agencies involved**
- Which agencies have jurisdiction?
- Which offices within agencies?
- Are there inter-agency communications?
2. **Sequence requests strategically**
- Start with agency most likely to release
- Use released documents to refine subsequent requests
- Reference other agencies' releases in appeals
3. **Cross-reference responses**
- Compare what different agencies release
- Note discrepancies in redactions
- Use one agency's release to challenge another's withholding
4. **Track coordination**
- Document all request/response dates
- Note referrals between agencies
- Build timeline of events from multiple sources
Document production management
## Large production workflow
For responses with 100+ pages:
### Organization system
/FOIA_[Agency]_[Topic]/
├── 01_Request_Materials/
│ ├── original_request.pdf
│ ├── acknowledgment.pdf
│ └── correspondence/
├── 02_Responses/
│ ├── response_2024-01-15/
│ ├── response_2024-02-20/
│ └── final_response/
├── 03_Analysis/
│ ├── document_index.xlsx
│ ├── redaction_log.xlsx
│ └── key_documents/
├── 04_Appeals/
│ └── appeal_2024-03-01.pdf
└── 05_Notes/
└── research_notes.md
### Document indexing
For each document, track:
- Bates number (if assigned)
- Date of document
- Author/recipient
- Document type
- Subject/summary
- Exemptions applied
- Relevance rating (1-5)
- Follow-up needed?
State-specific resources
Finding your state's law
## State public records resources
### Reporters Committee for Freedom of the Press
- Open Government Guide: rcfp.org/open-government-guide
- State-by-state analysis of public records laws
- Sample request letters by state
### National Freedom of Information Coalition
- nfoic.org/state-freedom-of-information-laws
- State FOI organization contacts
- Training and resources
### MuckRock
- muckrock.com
- File requests through platform
- Search previous requests/responses
- Agency response time data