PACER vs CourtListener: Accessing US Court Records Without Paying $0.10 Per Page
PACER charges $0.10 per page for federal court documents. CourtListener is free for opinions and some dockets. Here is what each covers, what they do not, and when to use both.
The actor referenced in this article is live on Apify. Pay only for results delivered.
TL;DR: PACER is the official federal court filing system at $0.10/page. CourtListener is a free archive of 10M+ opinions with a REST API. PACER covers everything (including the actual filed PDFs for motions, briefs, and exhibits); CourtListener covers opinions and some dockets for free. For legal research and building RAG pipelines over case law, CourtListener is sufficient. For active litigation or accessing specific filed documents, you need PACER.
If you need US federal court data, you will encounter these two systems within the first hour of research. They solve different problems, have very different cost structures, and for many use cases, work best in combination.
What PACER Is
PACER stands for Public Access to Court Electronic Records. It is the official system operated by the US federal judiciary for accessing court documents in all 94 federal district courts, all 13 circuit courts of appeals, and the Supreme Court.
Every document filed in federal court since the mid-1990s is theoretically accessible through PACER. This includes:
- All case dockets (the list of every filing in a case)
- Filed documents: complaints, motions, briefs, exhibits, orders, judgments
- Appellate briefs and opinions
- Bankruptcy filings and related documents
- Case scheduling orders and minute entries
PACER requires registration (free) and charges $0.10 per page for most content. A “page” in PACER terms is 54 KB of data, which corresponds roughly to one printed page of text. The charge applies to documents, docket sheets, and search results.
The waiver: PACER waives charges if your quarterly bill is under $30. For individual researchers doing occasional lookups, this means PACER is often effectively free. For anyone building automated pipelines or pulling significant data volumes, the fees accumulate quickly.
What CourtListener Is
CourtListener is operated by the Free Law Project, a nonprofit focused on opening access to legal information. It was founded in 2009 and has been systematically downloading and indexing PACER data for over a decade.
CourtListener’s core value proposition is that it provides free access to the bulk of what most legal researchers need: court opinions and, increasingly, docket data. It has three main components:
- RECAP Archive: A crowd-sourced archive of PACER documents. When anyone with the RECAP browser extension accesses a PACER document, it is automatically uploaded to CourtListener. The archive contains over 1 billion pages of documents across millions of cases.
- Opinion archive: Over 10 million court opinions scraped from PACER, court websites, and bulk data downloads, with full-text indexing and search.
- Oral argument archive: Over 4,000 hours of oral argument audio from federal circuit courts.
CourtListener provides a free REST API with no authentication required for most endpoints. You can search opinions by keyword, jurisdiction, date range, and citation. You can look up dockets by case number. You can access full opinion text in plain text or HTML format.
Coverage Comparison
| Data type | PACER | CourtListener |
|---|---|---|
| Court opinions (published) | Yes (paid) | Yes (free, 10M+) |
| Court opinions (unpublished) | Yes (paid) | Partial |
| Full case dockets | Yes (paid) | Growing (via RECAP) |
| Filed motions and briefs | Yes (paid) | Partial (RECAP crowd-sourced) |
| Exhibits and attachments | Yes (paid) | Rare |
| Sealed documents | Yes (with access) | No |
| Oral argument audio | No | Yes (free, 4,000+ hours) |
| Full-text search across opinions | Limited | Yes, comprehensive |
| API access | No | Yes (free REST API) |
| Bulk data download | No | Yes (via API or data dumps) |
| Historical coverage (pre-1990s) | Partial | Partial (varies by court) |
| Bankruptcy filings | Yes (paid) | Partial |
The most important rows in this table: PACER has everything but charges per page. CourtListener has opinions (the most valuable research asset) for free, has partial docket coverage depending on whether RECAP users have accessed that case, and does not have the actual filed documents (motions, briefs, exhibits) unless they were uploaded to RECAP.
The Real Cost of PACER
The $0.10 per page number sounds small. In practice, legal documents are long and dockets can contain hundreds of entries.
Worked examples:
A case docket itself is a paginated list of all filings. A complex commercial litigation case might have 500 docket entries across 10 pages of docket output. Accessing the docket costs $1.00. Then each document you open adds cost.
- Accessing a full docket: $0.50 to $3.00 depending on number of entries
- Opening a 15-page motion: $1.50
- Opening a 50-page brief: $5.00
- Opening a 200-page exhibit: $20.00
- Searching for cases by party name: $0.10 per search result page
A research session investigating one case in detail: $5.00 to $30.00. A research project covering 100 cases: $500 to $3,000. A monitoring system checking dockets for new filings across 1,000 cases monthly: $500 to $5,000 per month.
The $30 quarterly waiver threshold means the fees matter for any programmatic use. One automated docket monitoring job will exceed $30 quickly.
CourtListener’s Limitations
CourtListener is free and useful, but understanding what it does not cover prevents surprises.
Docket coverage is incomplete. CourtListener has dockets for cases where RECAP users have accessed the case on PACER. If no one has accessed a case through RECAP, it will not appear in CourtListener’s docket database. Coverage is concentrated in high-profile or high-interest cases. Obscure district court cases in smaller jurisdictions may have zero RECAP coverage.
Filed documents (motions, briefs, exhibits) are crowd-sourced. A CourtListener docket may show that a motion was filed, but if no RECAP user downloaded that motion from PACER, the document itself is not available. You see that it exists; you cannot read it without going to PACER.
Unpublished opinions are less complete. Published opinions (those designated for citation) are comprehensively covered. Unpublished opinions (which make up the majority of federal court output) are patchier. Coverage varies significantly by circuit and district.
Court coverage varies. Some courts have better historical coverage than others. The Ninth Circuit and D.C. Circuit tend to have strong coverage. Smaller district courts in less-litigated jurisdictions may have gaps.
The CourtListener REST API
The API is genuinely useful for building legal data pipelines. It requires no authentication for most read operations.
import requests
def search_opinions(query, court=None, after_date=None, before_date=None):
"""Search CourtListener opinions by keyword."""
params = {
'q': query,
'type': 'o', # opinions
'order_by': 'score desc',
}
if court:
params['court'] = court
if after_date:
params['filed_after'] = after_date
if before_date:
params['filed_before'] = before_date
response = requests.get(
'https://www.courtlistener.com/api/rest/v3/search/',
params=params,
headers={'User-Agent': 'LegalResearchPipeline/1.0'}
)
return response.json()
# Search for opinions mentioning "tortious interference" in the 9th Circuit
results = search_opinions(
query='tortious interference',
court='ca9',
after_date='2020-01-01'
)
for result in results['results']:
print(result['caseName'], result['dateFiled'], result['absoluteUrl'])
def get_docket(docket_id):
"""Fetch a specific docket by CourtListener docket ID."""
response = requests.get(
f'https://www.courtlistener.com/api/rest/v3/dockets/{docket_id}/',
headers={'User-Agent': 'LegalResearchPipeline/1.0'}
)
return response.json()
def search_dockets(case_name=None, docket_number=None, court=None):
"""Search for dockets by case name or number."""
params = {}
if case_name:
params['case_name'] = case_name
if docket_number:
params['docket_number'] = docket_number
if court:
params['court'] = court
response = requests.get(
'https://www.courtlistener.com/api/rest/v3/dockets/',
params=params,
headers={'User-Agent': 'LegalResearchPipeline/1.0'}
)
return response.json()
The API rate limit is 5,000 requests per day for unauthenticated users. Authenticated users (free registration) get higher limits. For building a legal RAG pipeline over opinions, this is more than sufficient.
When You Need PACER
PACER is necessary when:
- Active litigation: If you are a party to a case or monitoring one actively, you need the actual filed documents, not just the fact that they were filed. Orders, rulings, scheduling changes all require reading the full document.
- Accessing specific filed PDFs: Motions, briefs, exhibits, and declarations are not available through CourtListener unless a RECAP user has uploaded them. If you need the actual text of a specific brief or exhibit, PACER is the only reliable source.
- Sealed or restricted documents: CourtListener cannot access sealed documents. Attorneys with proper access need PACER directly.
- Real-time docket monitoring: CourtListener’s docket coverage depends on RECAP crowdsourcing. PACER shows new filings immediately. For time-sensitive monitoring, PACER is authoritative.
- Bankruptcy: CourtListener’s bankruptcy coverage is incomplete. PACER’s BANKR system covers all bankruptcy cases comprehensively.
- Small or obscure cases: Cases that have not attracted RECAP user access will not be in CourtListener at all.
When CourtListener Is Sufficient
CourtListener handles the majority of legal research use cases at zero cost:
- Precedent research: Finding how courts have ruled on specific legal questions across millions of opinions. The full-text search is comprehensive and free.
- Building a legal RAG pipeline: For an LLM that needs to answer questions about legal standards, CourtListener’s opinion corpus is an excellent source. The opinions are clean text and accessible in bulk.
- Citation network analysis: CourtListener tracks citations between opinions. You can find what cases cite a given precedent and trace the development of legal doctrine.
- Monitoring case outcomes: If you need to know when a case settled, was dismissed, or resulted in a judgment, CourtListener’s docket data (where available via RECAP) shows the final entries.
- Academic and policy research: Most legal scholarship does not require the filed briefs and motions. Opinion text is sufficient.
- Oral argument research: CourtListener’s audio archive is unique and not available through PACER.
The Hybrid Approach
For most serious legal research pipelines, the efficient approach is to use both:
- Use CourtListener to identify relevant cases through full-text opinion search
- Use CourtListener’s docket data to understand the case structure
- Go to PACER only for specific documents you cannot get from CourtListener
This keeps PACER costs minimal. A research project that uses CourtListener for initial identification and PACER only for specific documents of interest might spend $5-20 on PACER rather than $200-500 for a fully PACER-dependent workflow.
For a managed actor that extracts CourtListener data into structured JSON without writing API integration code, the CourtListener Court Records scraper handles pagination, field normalization, and bulk extraction on pay-per-result billing.
Recommendation
Use CourtListener when:
- You are doing precedent research, case law analysis, or building a legal RAG pipeline
- You need bulk access to opinion text across many cases and jurisdictions
- You are monitoring cases for outcome changes and RECAP has your cases covered
- Budget is constrained and the free tier’s coverage is adequate for your research scope
- You want API access without registration or credential management
Use PACER when:
- You need the actual filed documents: motions, briefs, exhibits, declarations
- You are a party to or counsel in active litigation
- You need real-time docket updates rather than RECAP-dependent coverage
- Your cases are obscure, new, or in jurisdictions with poor RECAP coverage
- You need bankruptcy filings or sealed document access
Use both when:
- You are building a comprehensive legal intelligence system
- Start with CourtListener for discovery and opinion research, fall through to PACER for the documents you actually need to read
The practical starting point for any federal court data project is CourtListener. The API is free, the coverage for opinions is comprehensive, and the cost is zero. PACER becomes necessary at the edges: when you need specific filed documents, when you are dealing with a case that is not well-covered by RECAP, or when you need real-time monitoring rather than archived data.
Try the scraper referenced in this article — live on Apify, pay only for results.
Open courtlistener-court-records on Apify →Firecrawl vs RAG Crawler: Pricing, Output Quality, and When to Use Each
Firecrawl charges per page on a subscription. RAG Crawler charges per page crawled on pay-per-result. Here is a direct comparison of output, pricing, and failure handling.
pytrends vs Google Trends API in 2025: Which Actually Works on Cloud Servers?
pytrends works from residential IPs but fails consistently on cloud servers. Here is a direct comparison of reliability, data coverage, and cost for production use cases.
Reddit Official API vs Reddit Scraper in 2025: Costs, Limits, and What You Actually Get
Reddit changed its API pricing in 2023 to $0.24 per 1,000 calls. Here is what that means for data collection workloads, and how scraping compares on cost and data coverage.