Multi-State Bar Association Scraper
Pricing
Pay per event
Multi-State Bar Association Scraper
Scrape attorney records from official state bar websites across 10 U.S. states. Extract bar number, license status, admission date, disciplinary history, firm name, and contact info. Filter by state, bar status, and name. Covers CA, TX, NY, FL, IL, PA, OH, GA, NJ, MA.
Pricing
Pay per event
Rating
0.0
(0)
Developer

BowTiedRaccoon
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 hours ago
Last modified
Categories
Share
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_practiceandhas_disciplinary_historyfields - Attorney lead generation — build outreach lists filtered by state, city, and practice area; use
admission_dateto 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
nullforemail. - Field coverage varies by state. County, judicial district, law school, and section memberships are not published by every state bar. Unavailable fields return
null. barStatusfilter 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
barNumberStartandmaxItemsto 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.