California State Bar Attorney Lookup Scraper avatar

California State Bar Attorney Lookup Scraper

Pricing

from $3.66 / 1,000 attorney extracteds

Go to Apify Store
California State Bar Attorney Lookup Scraper

California State Bar Attorney Lookup Scraper

Search official California State Bar attorney profiles and export license status, admission, public contact, practice, and discipline information.

Pricing

from $3.66 / 1,000 attorney extracteds

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Search official State Bar of California public attorney profiles by name or bar number and export normalized license, admission, contact, practice, and discipline information. This California State Bar attorney lookup Actor turns one-off profile checks into reusable JSON, CSV, Excel, and API-ready records.

Use it to verify a roster before a compliance review, refresh a legal directory, enrich professional records, or preserve a dated snapshot of the information shown on official public profiles.

What does this Actor do?

The Actor searches the official apps.calbar.ca.gov attorney directory.

It supports three lookup routes:

  • full or partial attorney names;
  • California bar numbers;
  • direct official attorney profile URLs.

For each matched profile it fetches the official detail page and returns one typed dataset row. Name searches may match several attorneys; maxItems provides a predictable run limit. Duplicate profiles found by more than one input are saved only once.

This Actor does not use third-party lawyer directories, infer a person's standing, or claim that a missing public field exists.

Who is it for?

Compliance teams can confirm current public license status and retain the source URL used for verification.

Legal-directory operators can refresh names, organizations, contact details, practice areas, and admission information.

Recruiting and vendor-risk teams can check supplied attorney rosters by bar number.

Data engineers can schedule recurring Tasks and load normalized records into a warehouse, spreadsheet, CRM, or review queue.

Researchers can export bounded name-search results without manually opening each official profile.

Why use this California attorney lookup?

  • Reads the official California State Bar public profile rather than a republished directory.
  • Supports both discovery by name and exact bar-number verification.
  • Includes the current status plus the published status, disciplinary, and administrative history table.
  • Exposes official profile and public discipline/document links for audit trails.
  • Produces stable field names across JSON, CSV, Excel, XML, RSS, and API exports.
  • Uses direct server-rendered HTML, so no browser or residential proxy is required.
  • Applies bounded retries to temporary network, 429, and server errors.

What data can I extract?

FieldMeaning
barNumberState Bar license number from the official profile
fullNamePublished attorney name
licenseStatusCurrent status shown on the profile
admissionDateDate of the published admission event, when available
organizationOrganization parsed from the public address, when distinguishable
addressFull public address text
phone, fax, email, websitePublic contact fields; unavailable values are null
lawSchoolPublished law-school text
practiceAreasSelf-reported practice areas
languagesSelf-reported attorney/staff language text
hasDisciplineWhether the profile exposes a discipline entry or case/document link
disciplineLinksRelevant public discipline or case links exposed by the profile
licenseHistoryDated status, discipline, and administrative-action rows
profileUrlCanonical official attorney profile URL
matchedInputName, bar number, or URL that found the profile
retrievedAtUTC retrieval timestamp

The State Bar controls field availability. Nullable contact fields remain null rather than being guessed.

How to get started

  1. Open the Actor input page.
  2. Enter one or more names, bar numbers, or official profile URLs.
  3. Set maxItems to the largest number of unique profiles you want.
  4. Click Start.
  5. Open the Dataset tab when the run finishes.
  6. Export the rows or consume them through the Apify API.

Start with a small exact bar-number lookup when testing an integration.

Input parameters

names

An array of full or partial names, up to 50 characters each. The official quick search determines matching behavior. A common surname can return many profiles, so combine it with a conservative maxItems.

{
"names": ["Koichiro Sato"],
"maxItems": 5
}

barNumbers

An array of one- to six-digit California bar numbers. String values preserve leading zeroes.

{
"barNumbers": ["344532", "349773"],
"maxItems": 2
}

profileUrls

Official HTTPS URLs matching apps.calbar.ca.gov/attorney/Licensee/Detail/<number>. Other hosts and paths are rejected before network access.

{
"profileUrls": [
{ "url": "https://apps.calbar.ca.gov/attorney/Licensee/Detail/344532" }
],
"maxItems": 1
}

maxItems

Maximum unique profiles saved across every supplied lookup. Valid values are 1–500; the default is 25.

At least one lookup input is required. A run accepts at most 100 combined names, bar numbers, and URLs.

Output example

A current official profile produces a record shaped like this:

{
"barNumber": "344532",
"fullName": "Koichiro Sato",
"licenseStatus": "Active",
"address": "Masuda, Funai, Eifert & Mitchell, Ltd., 19191 S Vermont Ave, Ste 420, Torrance, CA 90502-1051",
"organization": "Masuda, Funai, Eifert & Mitchell, Ltd.",
"phone": "310-630-5900",
"email": null,
"lawSchool": "Stanford Univ Law School; Stanford CA",
"practiceAreas": ["Business Law", "Intellectual Property"],
"admissionDate": "6/10/2022",
"hasDiscipline": false,
"disciplineLinks": ["https://www.calbar.ca.gov/public/concerns-about-attorney/recent-disciplinary-actions"],
"licenseHistory": [
{
"date": "Present",
"licenseStatus": "Active",
"discipline": null,
"administrativeAction": null,
"detailsUrl": null
}
],
"profileUrl": "https://apps.calbar.ca.gov/attorney/Licensee/Detail/344532",
"matchedInput": "344532",
"retrievedAt": "2026-09-05T20:06:57.500Z"
}

Output reflects public source content at retrieval time. It is not a legal opinion or independent credential certification.

How much does it cost to look up California State Bar attorneys?

The Actor uses pay-per-event pricing:

  • a small $0.005 start fee per run;
  • one attorney event for each complete profile saved.

At the BRONZE tier, each complete attorney profile costs $0.006092. Apify shows the applicable tier and estimated maximum charge before a run. The tier curve is based on measured platform cost and the median of reviewed same-source competitor prices.

You are not charged an attorney event for empty searches, rejected records, duplicate profiles, or failed detail fetches.

Recurring compliance workflow

Create an Apify Task with a stable list of bar numbers and a bounded maxItems.

Schedule it weekly or monthly.

Send each completed dataset to a webhook, spreadsheet, database, or automation flow.

Compare licenseStatus, licenseHistory, public contact fields, and retrievedAt against the prior snapshot in your own system.

The Actor emits current snapshots; it does not itself store historical comparisons or send change alerts.

Directory enrichment workflow

  1. Export bar numbers from the directory you maintain.
  2. Pass them in barNumbers batches of up to 100 lookup inputs.
  3. Join output rows back on barNumber.
  4. Review nullable or changed public contact data.
  5. Preserve profileUrl and retrievedAt as provenance.

Do not infer that a missing row means an attorney never existed. Confirm unusual cases manually on the official source.

API usage with cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~california-state-bar-attorney-lookup/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"barNumbers":["344532"],"maxItems":1}'

To wait for completion and obtain dataset metadata, use the synchronous Actor run endpoint documented by Apify.

API usage with JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/california-state-bar-attorney-lookup').call({
names: ['Koichiro Sato'],
maxItems: 5,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

API usage with Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/california-state-bar-attorney-lookup').call(
run_input={'barNumbers': ['344532'], 'maxItems': 1}
)
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

Keep API tokens in environment variables or secret stores, not source code.

Use through MCP

Add the Apify MCP server in Claude Code:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/california-state-bar-attorney-lookup"

Claude Desktop, Cursor, and VS Code setup:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/california-state-bar-attorney-lookup"
}
}
}

Example prompts:

  • “Verify California bar number 344532 and summarize the official status and admission date.”
  • “Run these California bar numbers and return a CSV-ready table of status, organization, phone, and profile URL.”
  • “Look up Koichiro Sato in the California State Bar and include published license history.”

Reliability and retry behavior

Each official request has a 45-second timeout.

Temporary network errors, HTTP 429, and server errors receive at most three attempts with bounded backoff. Permanent client errors, unsupported URLs, malformed input, and changed response shapes fail clearly rather than returning a misleading empty success.

The current route uses direct public HTML. There is no hidden residential-proxy fallback, browser cost, or user-configurable proxy mode.

Limits and source behavior

  • The official quick search controls matching and ordering.
  • Broad names can expose many results; maxItems truncates output deterministically.
  • Direct bar-number queries normally resolve to one profile.
  • A valid no-result search finishes with zero attorney rows and only the start event.
  • Public profiles may omit email, fax, website, organization, language, law-school, practice, or discipline details.
  • The State Bar may revise HTML, availability, field labels, or rate limits.
  • One run supports at most 100 lookup inputs and 500 emitted profiles.
  • Practice areas and languages are self-reported where the profile says so.

Troubleshooting

Why did my name search return several people?

The official quick search supports partial names. Use a fuller name or an exact bar number, and set maxItems to the desired bound.

Why is a contact field null?

The profile displayed “Not Available” or did not expose the field. The Actor deliberately does not infer private contact information.

Why was my profile URL rejected?

Only official HTTPS detail URLs on apps.calbar.ca.gov are accepted. Use the canonical URL shown in a result's profileUrl field.

Why did the run fail instead of returning no rows?

The Actor distinguishes a recognized no-result page from network failures or unrecognized source markup. Inspect the run log; retry later for a temporary upstream failure and report persistent parser errors.

This Actor accesses public professional-license pages. You remain responsible for complying with the source's terms, applicable privacy and data-protection law, and your organization's retention and review policies.

Use the output for legitimate verification, directory maintenance, research, or integration purposes. Avoid harassment, spam, discriminatory profiling, or decisions based solely on stale automated output.

License status and discipline can have legal significance. Consult the linked official profile and underlying documents, and obtain professional advice where appropriate. The Actor is independent and is not affiliated with or endorsed by the State Bar of California.

Choose the Actor for the regulator and jurisdiction you need; this Actor covers only official California State Bar attorney profiles.

FAQ

Does this scrape every California attorney automatically?

No. It processes the names, bar numbers, and official profile URLs you supply, subject to maxItems.

Can I search by city or practice area?

Not in this release. The supported discovery input is the official quick-search name field; practice areas are extracted from matched profiles.

Does hasDiscipline: false prove there has never been discipline?

No. It means the currently retrieved public profile did not expose a discipline entry or linked case/document under the Actor's parser. Review the official profile for consequential decisions.

Can I schedule recurring checks?

Yes. Save input as an Apify Task and schedule it. Comparison, notification, and historical retention belong in your downstream workflow.

Are duplicate attorneys charged twice?

No. Profiles are deduplicated by canonical official URL before detail extraction and charging.

Does the Actor need an account or proxy?

No. It uses the current public server-rendered California State Bar pages directly.