CourtListener Attorney Profiles Scraper - Judges & Counsel
Pricing
from $3.62 / 1,000 results
CourtListener Attorney Profiles Scraper - Judges & Counsel
Scrape attorney and judge profiles from CourtListener's judicial database by name, court, law school, appointer and party. Export to CSV, JSON, Excel or XML.
Pricing
from $3.62 / 1,000 results
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share

๐ค CourtListener Attorney Profiles Scraper
๐ Export attorney and judge profiles from CourtListener in seconds. Search 15,119 legal professionals by name, court, law school, appointing president, party or birthplace, and get one 42-field row per person with every seat they have held, who appointed them, and when they were nominated and confirmed.
Pull structured profiles of judges, justices, magistrates, clerks and the lawyers who became them out of CourtListener's judicial people database. The Free Law Project builds it from the Federal Judicial Center biographical directory, state court records and the Judicial Conference, and publishes it through an open API with no login and no API key required. Every profile exports to CSV, JSON, Excel, or XML.
The database holds 15,119 people across 3,359 courts, from the Supreme Court of the United States down to county superior courts: 3,752 people at the California Superior Court alone and 534 at the New York Supreme Court. 3,717 of them were appointed by a President and 3,577 by a Governor. Harvard shows up on 692 profiles and Yale on 395. Barack Obama appointed 324 of the people in it. This Actor turns that into a flat table you can filter, join and diff.
| ๐ฏ Target Audience | ๐ก Primary Use Cases |
|---|---|
| Litigators and appellate counsel | Judge research before a filing: seat history, appointer, tenure, prior courts |
| Legal analytics and legal tech | A clean judiciary table with stable IDs to join against dockets and opinions |
| Law schools and academics | Judicial diversity, career paths and appointment patterns over two centuries |
| Journalists and watchdogs | Who sits where, who appointed them, and when the seat turns over |
| Recruiters and legal marketers | Clerkship and career histories for the federal and state bench |
๐ What the CourtListener Attorney Profiles Scraper does
๐ก Why it matters: the biographical data on the American bench is scattered across the FJC directory, state court sites and Wikipedia, and CourtListener's own API returns each person's schools, ratings and seats as separate URIs you have to fetch one by one. This Actor reads the search index instead, where the whole profile already arrives in a single response, and flattens it into one row per person.
Set your filters, click Start, and the Actor queries CourtListener's public search API live, following the cursor until it has the rows you asked for. Filtering happens server side, so you pay for matches rather than for filtering afterwards.
- ๐ค The person. Name, profile URL, CourtListener person ID, Federal Judicial Center ID, gender, race, religion, aliases, date and place of birth, date of death and whether the person is still living.
- ๐ The current seat. Position type, job title, court, court ID and citation string, who appointed them, how the seat was filled, and the start and end dates of the term.
- ๐ The whole career. Career start and end, how many positions the person has held, and every court, position type, job title, appointer and selection method they have ever had, in one semicolon separated cell each.
- ๐ Every position, in full. The
positionsarray carries each seat separately with its nomination date, the date it was referred to the Judiciary Committee, the committee action date, the confirmation date, the retirement date, the supervising judge for clerkships, and the reason the term ended. - ๐ Credentials and politics. Every school on the record, ABA ratings such as
Well Qualified, and political affiliations as both labels and CourtListener codes. - ๐ Direct lookups. Paste CourtListener profile URLs into the URL list and the Actor resolves them by person ID, twenty five per request, instead of searching.
- ๐ท๏ธ No blanks. Values the source can carry but did not fill read
Not Disclosed; values that do not apply to that record readN/A; booleans readYesorNo.
๐ฌ Full Demo (๐ง Coming soon)
A short walkthrough video is in production.
๐ Output
Each row is one person in the CourtListener judicial database. Fields, in dataset order:
| Field | Description |
|---|---|
๐ค name | Full name as CourtListener records it |
๐ url | Profile page on courtlistener.com |
๐ personId | CourtListener person ID, stable across runs |
๐ fjcId | Federal Judicial Center biographical directory ID |
โ
isActive | Yes when a seat is open and the person is living |
๐งโโ๏ธ currentPositionType / ๐ผ currentJobTitle | Justice, Judge, Magistrate, Clerk, and the free-text title when the source has one |
๐ currentCourt / ๐ท currentCourtId / ๐ currentCourtCitation | Court name, CourtListener court ID (for example scotus), reporter-style abbreviation |
๐ currentAppointer / ๐ณ currentSelectionMethod | Who appointed them and how the seat was filled |
๐
currentTermStart / ๐ currentTermEnd | Term dates for that seat (N/A while serving) |
๐ careerStart / ๐ careerEnd / ๐ข positionCount | First recorded start date, last termination date, and how many seats are on file |
๐ข courts / ๐ท courtIds | Every court in the career, semicolon separated |
๐ positionTypes / ๐ผ jobTitles | Every position type and job title held |
๐ appointers / ๐ณ selectionMethods | Every appointing authority and selection method on the record |
๐ politicalAffiliations / ๐ฃ politicalAffiliationIds | Party labels and CourtListener party codes |
โญ abaRatings | American Bar Association ratings, for example Well Qualified |
๐ schools | Every school attached to the profile |
๐ง gender / ๐ races / ๐ religion | Demographic fields as the source records them |
๐ dateOfBirth / ๐ birthCity / ๐บ birthState / ๐ค birthStateId | Date and place of birth |
โฐ๏ธ dateOfDeath / ๐ฏ isDeceased | Date of death (N/A for the living) and a Yes or No flag |
๐ aliases / ๐ aliasIds | Other names the same person is filed under |
๐ positions | Array of every seat with its full nomination, confirmation and termination detail |
๐ lastUpdated | When CourtListener last touched the record |
๐ scrapedAt | ISO timestamp of the collection |
โ error | null on success; error rows carry only this field and are never charged |
Three real records from a verification run (courts ["scotus"], selectionMethod a_pres, Max Items 5). The positions array is shown in full for the first record and trimmed to its first entry in the others:
[{"name": "Amy Coney Barrett","url": "https://www.courtlistener.com/person/8543/amy-coney-barrett/","personId": 8543,"fjcId": "3979311","isActive": "Yes","currentPositionType": "Justice","currentJobTitle": "Not Disclosed","currentCourt": "Supreme Court","currentCourtId": "scotus","currentCourtCitation": "SCOTUS","currentAppointer": "Trump, Donald John","currentSelectionMethod": "Appointment (President)","currentTermStart": "2020-10-27","currentTermEnd": "N/A","careerStart": "2020-10-27","careerEnd": "N/A","positionCount": 1,"courts": "Supreme Court","courtIds": "scotus","positionTypes": "Justice","jobTitles": "Not Disclosed","appointers": "Trump, Donald John","selectionMethods": "Appointment (President)","politicalAffiliations": "Republican","politicalAffiliationIds": "r","abaRatings": "Well Qualified","schools": "Rhodes College; University of Notre Dame","gender": "Female","races": "White","religion": "Catholic","dateOfBirth": "1972-01-01","birthCity": "New Orleans","birthState": "Louisiana","birthStateId": "LA","dateOfDeath": "N/A","isDeceased": "No","aliases": "Not Disclosed","aliasIds": "Not Disclosed","positions": [{"positionType": "Justice","jobTitle": "Not Disclosed","court": "Supreme Court","courtId": "scotus","courtCitation": "SCOTUS","organizationName": "Not Disclosed","dateStart": "2020-10-27","dateTermination": "N/A","dateGranularityStart": "%Y-%m-%d","dateNominated": "2020-09-26","dateReferredToJudicialCommittee": "N/A","dateJudicialCommitteeAction": "N/A","dateConfirmation": "2020-10-26","dateRetirement": "N/A","appointer": "Trump, Donald John","selectionMethod": "Appointment (President)","supervisor": "Not Disclosed","terminationReason": "Not Disclosed"}],"lastUpdated": "2025-02-05T17:16:00.956698Z","scrapedAt": "2026-09-08T05:32:10.711Z","error": null},{"name": "William Burnham Woods","url": "https://www.courtlistener.com/person/3552/william-burnham-woods/","personId": 3552,"fjcId": "2650","isActive": "No","currentPositionType": "Judge","currentJobTitle": "Not Disclosed","currentCourt": "Supreme Court","currentCourtId": "scotus","currentCourtCitation": "SCOTUS","currentAppointer": "Hayes, Rutherford B.","currentSelectionMethod": "Appointment (President)","currentTermStart": "1880-12-21","currentTermEnd": "1887-05-14","careerStart": "1880-12-21","careerEnd": "1887-05-14","positionCount": 1,"courts": "Supreme Court","courtIds": "scotus","positionTypes": "Judge","jobTitles": "Not Disclosed","appointers": "Hayes, Rutherford B.","selectionMethods": "Appointment (President)","politicalAffiliations": "Republican","politicalAffiliationIds": "r","abaRatings": "Not Disclosed","schools": "Yale University","gender": "Male","races": "White","religion": "Not Disclosed","dateOfBirth": "1824-08-03","birthCity": "Newark","birthState": "Ohio","birthStateId": "OH","dateOfDeath": "1887-05-14","isDeceased": "Yes","aliases": "Not Disclosed","aliasIds": "Not Disclosed","positions": [{"positionType": "Judge","court": "Supreme Court","courtId": "scotus","dateStart": "1880-12-21","dateTermination": "1887-05-14","dateNominated": "1880-12-15","dateReferredToJudicialCommittee": "1880-12-15","dateJudicialCommitteeAction": "1880-12-20","dateConfirmation": "1880-12-21","appointer": "Hayes, Rutherford B.","selectionMethod": "Appointment (President)","terminationReason": "Death"}],"lastUpdated": "2023-10-10T19:24:32.922563Z","scrapedAt": "2026-09-08T05:32:10.711Z","error": null},{"name": "Levi Woodbury","url": "https://www.courtlistener.com/person/3541/levi-woodbury/","personId": 3541,"fjcId": "2641","isActive": "No","currentPositionType": "Judge","currentJobTitle": "Not Disclosed","currentCourt": "Supreme Court","currentCourtId": "scotus","currentCourtCitation": "SCOTUS","currentAppointer": "Polk, James K.","currentSelectionMethod": "Appointment (President)","currentTermStart": "1846-01-03","currentTermEnd": "1851-09-04","careerStart": "1846-01-03","careerEnd": "1851-09-04","positionCount": 1,"courts": "Supreme Court","courtIds": "scotus","positionTypes": "Judge","jobTitles": "Not Disclosed","appointers": "Polk, James K.","selectionMethods": "Appointment (President)","politicalAffiliations": "Democratic","politicalAffiliationIds": "d","abaRatings": "Not Disclosed","schools": "Dartmouth College","gender": "Male","races": "White","religion": "Not Disclosed","dateOfBirth": "1789-12-22","birthCity": "Francestown","birthState": "New Hampshire","birthStateId": "NH","dateOfDeath": "1851-09-04","isDeceased": "Yes","aliases": "Not Disclosed","aliasIds": "Not Disclosed","positions": [{"positionType": "Judge","court": "Supreme Court","courtId": "scotus","dateStart": "1846-01-03","dateTermination": "1851-09-04","dateNominated": "1845-12-23","dateReferredToJudicialCommittee": "1845-12-23","dateJudicialCommitteeAction": "1846-01-03","dateConfirmation": "1846-01-03","appointer": "Polk, James K.","selectionMethod": "Appointment (President)","terminationReason": "Death"}],"lastUpdated": "2023-10-10T19:24:32.791561Z","scrapedAt": "2026-09-08T05:32:10.712Z","error": null}]
โจ Why choose this Actor
| What you get | |
|---|---|
| The whole profile in one row | 42 columns per person, including the full positions array. CourtListener's own people endpoint returns schools, ratings and seats as URIs you have to fetch one at a time; this Actor reads the search index, where all of it already arrives in a single response. |
| All 3,359 courts, pickable | The court filter is a list of every court ID CourtListener publishes, pulled from its own courts endpoint, not a free-text box you have to guess at. Several courts in one search are ORed by the source, so ca1 (38 people) plus ca9 (115) returns 153. |
| The appointment record | Nomination date, referral to the Judiciary Committee, committee action, confirmation, retirement and the reason the term ended, per seat. 3,717 people were appointed by a President, 3,577 by a Governor, 443 by a judge, 667 elected in non-partisan races. |
| Career history, not a snapshot | The current seat is the most recent one that was never terminated, and every earlier court, title, appointer and selection method stays on the row. A clerkship in 2005 and a district seat in 2019 both survive. |
| Direct profile lookups | Paste CourtListener profile URLs and the Actor resolves them by person ID, twenty five per request, which is one request for a batch instead of one per person. |
| No API key needed | CourtListener throttles anonymous callers at 5 requests a minute per IP, and each request returns 20 rows. Turn the proxy on for a fresh exit IP per request, or paste your own free CourtListener key and the throttle disappears. |
| You pay for what you keep | Rows are billed as they are written and capped at Max Items, so a page that overshoots the cap is trimmed before it is charged. Duplicates are dropped before billing, never after. |
๐ How it compares to alternatives
| This Actor | Attorney directory scrapers | The FJC directory site | |
|---|---|---|---|
| Coverage | 15,119 people, federal and state, back to 1789 | Practising lawyers in one commercial directory | Federal judges only, 1789 to today |
| Court filter | All 3,359 CourtListener court IDs, ORed in one search | City or practice area | Federal courts only |
| Appointment detail | Nomination, referral, committee action, confirmation, retirement, per seat | None | Yes, on the person page |
| Career history | Every seat on the row plus a full positions array | Current firm only | Federal seats only |
| Schools, ABA ratings, party | On the row | Sometimes schools | Schools and ABA ratings, no party |
| Rows a free account can preview | 10 | Varies | Not applicable |
| Ceiling | Anonymous API throttle of 5 requests a minute per IP, lifted by a free key or the proxy | Anti-bot defences | Manual browsing |
State bar membership, contact details, disciplinary history and private practice records are not in this database and this Actor does not invent them. For practising attorney contact data, use a bar or directory scraper instead.
๐ How to use
- Create a free Apify account with $5 in credit.
- Open the CourtListener Attorney Profiles Scraper.
- Pick the courts you care about, add a name, school or appointer if you want to narrow it, and click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
One typical run: courts ["ca9"], selectionMethod a_pres, bornAfter 01/01/1960, maxItems 200. Run it programmatically through the Apify API or the ApifyClient for JavaScript and Python.
๐ผ Business use cases
โ๏ธ Judge research before a filing
Pull the profile of the judge assigned to your case: how long they have sat, what they did before the bench, who appointed them, which schools they attended, and every earlier court on their record. Appellate teams do the same for a whole circuit panel in one run by setting courts to ca9 or cadc.
๐งฎ Build a judiciary table for analytics
The personId column is CourtListener's own stable ID, the same one that appears as assignedToId on a RECAP docket row. Pull the bench once, join it to your docket table, and every case in your warehouse gains the judge's tenure, appointer and background without a second lookup.
๐ Study the bench
Filter by appointer, party, selection method or birth state and count. New York accounts for 526 profiles, California 332 and Texas 321. 3,847 people are recorded as Democratic and 3,404 as Republican. Law schools, diversity researchers and reporters use these cuts to measure how the bench has changed.
๐ Map clerkships and career paths
Clerkships appear as positions with a supervisor, so the people who clerked for a given justice come back with the years they served. Recruiters and legal media use it to trace where a cohort ended up.
๐ Automating CourtListener Attorney Profiles Scraper
- Make / Zapier: run it on a schedule and push new or changed profiles into a CRM, a Google Sheet or a Slack channel.
- Slack: post an alert when a court gains a new sitting judge.
- Airbyte: land the dataset in Snowflake, BigQuery or Postgres and join it to your docket tables.
- GitHub: commit the JSON export to a repository to keep a versioned history of the bench.
- Google Drive: drop the CSV or Excel export into a shared folder for the practice group.
๐ Beyond business use cases
- Research: measure judicial tenure, appointment lag between nomination and confirmation, or the spread of law schools across the federal bench over two centuries.
- Personal: look up the judge on your own case, or trace a family member who sat on a state court.
- Non-profit: track diversity on the courts you monitor, using the source's own race and gender fields.
- Experimentation: join profiles to opinion authorship and test whether background predicts anything at all.
๐ค Ask an AI assistant about this scraper
Give an AI agent live access to the judicial people database through the Model Context Protocol:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/courtlistener-attorney-profiles-scraper"
Then prompt it in plain language:
- "Which judges on the Ninth Circuit were appointed by a Democratic president?"
- "List every sitting Supreme Court justice with their confirmation date and law school."
- "Who clerked at the Supreme Court and later became a federal judge?"
Copy this into ChatGPT, Claude, or Cursor to start:
Use the Apify Actor "parseforge/courtlistener-attorney-profiles-scraper" to search CourtListener's judicial people database. Input: { "startUrls": [{"url":"https://www.courtlistener.com/person/8543/amy-coney-barrett/"}], "query": "<text>", "name": "<surname>", "courts": ["scotus","ca9"], "school": "<school>", "appointer": "<president or governor>", "politicalAffiliation": "d" | "r" | "i" | "j" | "f" | "w" | "g" | "z", "selectionMethod": "a_pres" | "a_gov" | "a_judge" | "e_non_part" | "ct_trans", "birthState": "NY", "bornAfter": "MM/DD/YYYY", "maxItems": <n> }. It returns name, profile URL, person ID, current court and seat, appointer, career dates, schools, ABA ratings, party, biography and a full positions array per row. Call it with the ApifyClient and my APIFY_TOKEN.
โ Frequently Asked Questions
โ Do I need a CourtListener account?
No. Every endpoint this Actor reads is public and anonymous. A free CourtListener API key is supported and lifts the 5-requests-a-minute throttle for long runs, but it is optional and never required.
โ Is this a directory of practising attorneys?
No, and that matters. CourtListener's people database is the judiciary: judges, justices, magistrates and the clerkships and earlier jobs on their records. It is the right source for the bench and for the lawyers who joined it, and the wrong source for a list of practising lawyers in a city. It carries no email addresses, no phone numbers and no bar numbers.
โ How many people are in it?
15,119 profiles across 3,359 courts, measured on 2026-09-08. Coverage is deepest on the federal bench, which comes from the Federal Judicial Center directory, and thinner but real on state courts: 3,752 people at the California Superior Court, 534 at the New York Supreme Court, 103 at the Supreme Court of California.
โ What does isActive mean?
That at least one of the person's seats has no termination date on record and the person is not recorded as deceased. It reflects what CourtListener holds, so a recent retirement can lag until the record is updated. lastUpdated tells you when the record was last touched.
โ How is the current position chosen?
It is the most recent seat that was never terminated. When every seat on the record is closed, the most recent of those is used instead, so a retired judge still reports a real court rather than a blank. Every other seat stays on the row and in the positions array.
โ Can I look up one specific person?
Yes. Paste their CourtListener profile URL into the URL list. The Actor reads the numeric person ID out of the URL and resolves twenty five of them per request, so a batch of profiles costs one request rather than twenty five.
โ Why are some fields Not Disclosed?
Because the source did not fill them for that person. Religion is on 3 of 20 profiles in a random sample, ABA ratings on 7 of 20, aliases on 2 of 20. Historical judges have thinner records than sitting ones. Not Disclosed means the field exists and is empty; N/A means it does not apply, like a date of death for a living judge.
โ Which sort orders are supported?
Two, because that is all CourtListener's person index offers: best match first and last name A to Z. Sorting by date of birth or death returns HTTP 400 from the source, so those options are not exposed.
โ Why am I getting no results?
Every filter is ANDed, and an over-narrow combination returns an empty set rather than an error. Drop one filter at a time. Some values are genuinely tiny: the Green party matches 2 profiles and the Reform party 2.
โ How fast is it, and what is the ceiling?
CourtListener throttles anonymous callers at 5 requests a minute per IP, and each request returns 20 rows, so a direct run tops out around 100 rows a minute and waits out the throttle when it hits it. Turn on the proxy for a fresh exit IP per request, or add a free CourtListener key, and the throttle no longer binds.
โ Are there photographs?
No. The search index carries no image field for people, so there is no image column and the Actor does not fabricate one.
โ Does it deduplicate?
Yes. Rows are keyed by CourtListener person ID across every search in a run, so a person who matches two of your batches is written and charged once.
โ How fresh is the data?
It is read at run time from the same index that powers courtlistener.com, so a run reflects the database as it stands that minute. lastUpdated on each row carries the source's own modification timestamp.
โ Can I filter by state court?
Yes. The court list holds every court CourtListener publishes, including state supreme, appellate and trial courts. Pick as many as you like; they are combined with OR in a single search.
โ How many rows per run?
Free plan: 10, as a preview. Paid plans: up to 1,000,000, bounded by how many profiles your query actually matches.
๐ Integrate with any app
The dataset is available through the Apify API and the JavaScript and Python clients, and every run can be scheduled, triggered by webhook or wired into Make, Zapier, n8n, Airbyte, Google Sheets, Slack and GitHub from the Integrations tab.
๐ Recommended Actors
- CourtListener Opinions Scraper: full opinion text from the same archive, so you can read what these judges wrote.
- CourtListener State Court Dockets Scraper: state court dockets with the judge assigned to each case.
- CourtListener Business Bankruptcy Scraper: US business bankruptcy filings by chapter and court.
- Avvo Attorney Profile Scraper: practising attorney profiles with contact details, which this database does not carry.
- California State Bar Scraper: bar admission status and discipline history for California attorneys.
๐ก Pro Tip: browse the complete ParseForge collection for more court, government and public-records scrapers.
๐ Need Help? Open our contact form with your run ID, your input, and what you expected.
โ ๏ธ Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by the Free Law Project or CourtListener. It collects only publicly available data through the public API. You are responsible for using the data in compliance with CourtListener's terms and applicable laws. These records concern real people: do not use this data to identify, profile, or target individuals.