Multi-State Bar Association Scraper
Extract attorney license records from official state bar websites. Includes bar status, admission dates, disciplinary history, and contact info across 10+ U.S. states.
Extract licensed attorney records from official state bar websites across 10 U.S. states in a single run. Data comes from the authoritative source — the state bar's own public directory — so bar status, disciplinary history, and contact details are as current as the bar site itself.
Phase 1 states: CA, TX, NY, FL, IL, PA, OH, GA, NJ, MA
What You Get
Each attorney record contains up to 26 fields depending on what the state bar publishes:
Field
Type
Description
state_bar
string
State code (CA, TX, NY, etc.)
bar_number
string
Bar registration number, unique within a state
full_name
string
Full name as listed by the state bar
first_name
string
First name
middle_name
string
Middle name or initial
last_name
string
Last name
suffix
string
Name suffix (Jr., Sr., III, etc.)
bar_status
string
Active, Inactive, Suspended, Disbarred, Retired, or Deceased
license_type
string
Attorney, Foreign Legal Consultant, Registered In-House Counsel, etc.
admission_date
string
Date admitted to the bar in ISO format (YYYY-MM-DD)
eligible_to_practice
boolean
Whether the attorney is currently authorized to practice in this state
firm_name
string
Current firm or employer
address
string
Practice street address
city
string
Practice city
state
string
Practice state abbreviation
zip
string
Practice ZIP code
county
string
Practice county (when published by the state bar)
phone
string
Formatted as (XXX) XXX-XXXX
fax
string
Formatted as (XXX) XXX-XXXX (when available)
email
string
Publicly listed email (availability varies by state)
practice_areas
array
Self-reported or bar-certified specializations
law_school
string
Law school attended
sections
array
Bar association section memberships
has_disciplinary_history
boolean
Whether any disciplinary actions are on record
disciplinary_actions
array
Disciplinary actions with date, type, and description
judicial_district
string
Circuit or judicial district (when available)
profile_url
string
Direct link to the attorney profile on the state bar site
Dataset Views
Three pre-built views are available:
• Attorney Overview — name, state bar, bar number, status, firm, city, state, phone
• Detailed Attorney Record — all 26 fields
• Compliance Check — name, bar number, state bar, status, eligible_to_practice, admission date, disciplinary history, profile_url
How to Use
Input Parameters
Parameter
Type
Default
Description
states
array
["CA"]
One or more state codes. Supported: CA, TX, NY, FL, IL, PA, OH, GA, NJ, MA
searchName
string
—
Search by last name, or "Last, First". Leave blank to crawl by bar number range (CA, FL)
barNumber
string
—
Look up a single attorney by bar number. Overrides name search
city
string
—
Filter results by city
barStatus
string
—
Filter by status: active, inactive, suspended, disbarred, retired, deceased
maxItems
integer
100
Cap on total records across all selected states. 0 = unlimited
barNumberStart
integer
100000
Starting bar number for range-based crawling (CA, FL)
proxyConfiguration
object
US Apify proxy
US proxies are required — several state bar sites block non-US traffic
Name Search Across Multiple States
{
"states": ["CA", "TX", "NY"],
"searchName": "Smith",
"barStatus": "active",
"maxItems": 500
}
Single Bar Number Lookup
{
"states": ["CA"],
"barNumber": "300000",
"maxItems": 1
}
Range Crawl for Bulk Records (California)
{
"states": ["CA"],
"barNumberStart": 340000,
"maxItems": 1000
}
Sample Output
{
"state_bar": "CA",
"bar_number": "300000",
"full_name": "Hae-Ri You",
"first_name": "Hae-Ri",
"middle_name": null,
"last_name": "You",
"suffix": null,
"bar_status": "Active",
"license_type": "Attorney",
"admission_date": "2014-12-02",
"eligible_to_practice": true,
"firm_name": null,
"address": "2101 Lyon Avenue",
"city": "Belmont",
"state": "CA",
"zip": "94002",
"county": null,
"phone": "(425) 505-7437",
"fax": null,
"email": null,
"practice_areas": [],
"law_school": "UC Berkeley SOL; Berkeley CA",
"sections": [],
"has_disciplinary_history": false,
"disciplinary_actions": [],
"judicial_district": null,
"profile_url": "https://apps.calbar.ca.gov/attorney/Licensee/Detail/300000"
}
Use Cases
• Compliance verification — confirm an attorney holds an active license and has no disciplinary history before engagement, using the eligible_to_practice and has_disciplinary_history fields
• Attorney lead generation — build outreach lists filtered by state, city, and practice area; use admission_date to estimate seniority without resume screening
• Expert witness vetting — verify credentials against official bar records, including law school and admission date
• Background check enrichment — access disciplinary history from state disciplinary boards, which commercial directories do not carry
• LegalOps data enrichment — append current bar status and verified contact information to existing attorney databases for conflict checks and panel management
State Coverage
State
Bar Site
Crawl Method
California (CA)
calbar.ca.gov
Bar number range or single lookup
Texas (TX)
texasbar.com
Name search
New York (NY)
iapps.courts.state.ny.us
Name search
Florida (FL)
floridabar.org
Bar number range or name search
Illinois (IL)
iardc.org
Name search (two-phase HTML)
Pennsylvania (PA)
padisciplinaryboard.org
Name search
Ohio (OH)
supremecourt.ohio.gov
Name search
Georgia (GA)
gabar.org
Name search (JSON API)
New Jersey (NJ)
njcourts.gov
Name search
Massachusetts (MA)
massbbo.org
Name search
Why Official Bar Data vs. Attorney Directories
FindLaw, Avvo, and Martindale aggregate self-reported attorney profiles. They do not have access to a state bar's internal disciplinary system.
Official state bar websites are the authoritative source for:
• Bar status — active, suspended, disbarred, or inactive as determined by the state bar
• Disciplinary history — formal reprimands, probations, and disbarment records
• Admission date — the exact date an attorney was admitted in that jurisdiction
• Eligible to practice — a definitive boolean that directory scrapers cannot provide
For compliance, verification, or background screening workflows, official state bar data is not interchangeable with directory data.
Pricing
Pay-Per-Event (PPE) pricing. You pay per attorney record saved to the dataset — not per page fetched. Pages that return no record (gaps in bar number sequences, empty search results) are not charged.
Records
Estimated cost
1,000
~$2.50
10,000
~$25
100,000
~$250
Apify platform compute costs are billed separately and are typically small relative to data volume.
Limitations
• 10 states in Phase 1. Requesting an unsupported state code returns an error listing available codes. Phase 2 targets VA, NC, MI, CO, WA, and additional states.
• Email availability is inconsistent. Most state bars do not publish attorney emails. California obfuscates email addresses with JavaScript — CA records will have null for email.
• Field coverage varies by state. County, judicial district, law school, and section memberships are not published by every state bar. Unavailable fields return null.
• barStatus filter is applied post-extraction. It does not change what a state bar's search form returns. Some bars only expose active attorneys through their public search interface.
• CA and FL use bar number range crawling. These states do not have a functional public name-search API. Set barNumberStart and maxItems to control run scope.
• Rate limits. The crawler runs at 2–5 concurrent requests with automatic retries. Full-state crawls of 100k+ records take several hours. NY and NJ are more restrictive — residential proxies reduce failure rates on those states.
Related Actors
Ready to get started?
Try Multi-State Bar Association Scraper free on the Apify platform.