The source
Verified fields come from one place: the public licensee registry of The State Bar of California. Nothing is bought from a data broker, merged in from another directory, or copied from a competitor.
Collection runs in two stages. The first reads the Bar’s advanced licensee search to assemble a candidate list. The second opens each licensee’s own detail page and reads the full public record for that bar number. The second stage is the one that matters: a name in a search table is a pointer, and the record we publish is built from the licensee’s own page.
The collector is single-threaded, waits a fixed interval between requests, and is resumable, so an interrupted run continues instead of starting the traffic over. We checked the Bar’s robots.txt before writing it; the paths we read are not among the ones it disallows.
What we deliberately do not take
We never import email addresses from the registry. The Bar seeds decoy addresses into that field, which is a reasonable defense against harvesting — and it means any directory publishing registry email is publishing traps at real attorneys’ expense. Where an attorney’s contact email appears on this site, it came from the firm, not from a scrape.
Who is listed, and who is removed
Only licensees the registry shows as Active are listed. Inactive, Not Eligible, Suspended, Disbarred, Resigned, and Deceased records are not published, and neither are sitting judges.
When a status changes, the listing is removed outright rather than hidden behind a flag. A directory whose entire purpose is “find someone you can hire” must not point a person in trouble at an attorney who cannot take the case — or at one who has died. That is the worst failure available to a site like this, so it is handled by deletion, not by a setting someone could get wrong.
What the verification date means
Every profile stores the date we last read that licensee’s registry record, and the profile shows it. The claim is exactly “the registry showed this on that date” — never that the fact is true today, and never that the attorney is currently practicing or accepting clients.
Records are matched on bar number, so a re-run updates a listing in place instead of creating a second one. As of this page’s date, the listings were read from the registry on August 3 and 4, 2026. We run the pipeline by hand; there is no automatic refresh yet, which is why the date belongs on the profile rather than in a claim about how often we update.
The counts that come out of this process — how many active licensees, how many in each practice area, how many hold a State Bar certification — are published with their definitions and their snapshot date as a dataset snapshot.
Every time this process has actually run since the first import — and what each run added, removed and moved — is published as a record of verification runs. A claim about how often we re-check is worth what it can be checked against.
Where the pipeline refuses to guess
The import is written to stop rather than write a value it cannot stand behind. These are not warnings in a log; they end the run:
- A city field that is a two-letter state code, or that contains digits, means the address was split wrong upstream. The import aborts and names the bar number so the record can be re-fetched.
- A licensee whose surname is missing from the filed search data stops the run rather than being published under a guessed name.
- City spellings are normalized only through a reviewed table of exact strings — bar typos, postal abbreviations, all-caps forms — each entry checked against its ZIP. Nothing is normalized by pattern-matching or similarity, and every correction the table makes is logged, so a change never happens silently.
Dates are stored anchored to UTC. It sounds like a footnote, but a date read in the wrong zone can display as the day before, and an admission date or a verification date that is off by a day is simply wrong.
Practice areas and counts
A listing is matched to a practice area from the licensee’s own self-reported areas and from Board of Legal Specialization certifications. What those two things are worth is a different question, and it is answered under “self-reported vs. certified” on the editorial standards page.
Any count we publish is counted from the listings themselves, with the snapshot date printed beside it. We do not estimate, round for effect, or carry a number forward from an earlier version of the data.
Corrections
If a listing is wrong, the registry link on the profile is the authoritative record, and it is the first thing to check. To report an error, write to [email protected]. We answer corrections about license facts first, and we say what changed and when.
Informational only — not legal advice. Listings link to independently licensed attorneys.
