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.