azbar APIazbar.org ↗
Search 35,000+ Arizona Bar members by name, city, firm, or specialization. Get full lawyer profiles with admission date, law school, and discipline history.
What is the azbar API?
The azbar.org API gives programmatic access to the Arizona State Bar member directory, covering 35,000+ licensed attorneys across two endpoints. The search_lawyers endpoint accepts filters for name, city, state, company, and specialization and returns paginated lists with bar numbers and member status. The get_lawyer_detail endpoint retrieves a complete profile — including law school, admission year, jurisdictions, areas of practice, and discipline history — for any attorney identified by their entity number.
curl -X GET 'https://api.parse.bot/scraper/4308acf3-4531-4587-959c-0c7cf92f0aee/search_lawyers?city=Phoenix&last_name=Smith&page_size=3' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace azbar-org-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Arizona State Bar Member Directory — search lawyers, drill into details."""
from parse_apis.arizona_state_bar_member_directory_api import AZBar, LawyerNotFound
client = AZBar()
# Search for lawyers in Phoenix — limit caps total items fetched.
for summary in client.lawyersummaries.search(city="Phoenix", limit=5):
print(summary.first_name, summary.last_name, "—", summary.member_status)
# Drill into the first result's full profile.
lawyer_summary = client.lawyersummaries.search(last_name="Smith", limit=1).first()
if lawyer_summary:
detail = lawyer_summary.details()
print(detail.first_name, detail.last_name)
print("Law school:", detail.law_school)
print("Admitted:", detail.admitted_year)
print("Jurisdictions:", detail.jurisdictions)
for area, sub_areas in detail.areas_of_law_and_practice.items():
print(f" {area}: {sub_areas}")
# Direct fetch by entity_number when already known.
try:
lawyer = client.lawyers.get(entity_number=194185)
print(lawyer.first_name, lawyer.last_name, "—", lawyer.company)
print("Languages:", lawyer.languages)
print("Phone:", lawyer.phone_numbers)
except LawyerNotFound as exc:
print(f"Lawyer not found: {exc}")
print("exercised: lawyersummaries.search / summary.details / lawyers.get")
Search and list lawyers from the Arizona State Bar directory. Returns paginated results with optional filters for name, city, state, firm, and specialization. With no filters, returns all ~35,000+ members alphabetically. Each result includes basic contact info, bar number, member status, and firm affiliation.
| Param | Type | Description |
|---|---|---|
| city | string | Filter by city (e.g. Phoenix, Tucson, Scottsdale). |
| page | integer | Page number (1-based). |
| state | string | Filter by state abbreviation (e.g. AZ, CA). |
| company | string | Filter by firm/company name. |
| last_name | string | Filter by last name. |
| page_size | integer | Results per page (max 500). |
| first_name | string | Filter by first name. |
| specialization | string | Filter by specialization (e.g. Injury & Wrongful Death Litigation, Real Estate, Bankruptcy). |
{
"type": "object",
"fields": {
"page": "integer - current page number",
"lawyers": "array of lawyer summary objects with entity_number, bar_number, first_name, last_name, company, address, member_status, and more",
"page_size": "integer - results per page",
"total_count": "integer - total matching records",
"total_pages": "integer - total pages available"
},
"sample": {
"data": {
"page": 1,
"lawyers": [
{
"email": "",
"address": {
"zip": "62704",
"city": "Springfield",
"state": "IL",
"county": "Sangamon",
"address1": "123 Main St",
"address2": ""
},
"company": "Buchalter A Professional Law Corporation",
"last_name": "Doe",
"bar_number": "021021",
"first_name": "John",
"member_type": "Member",
"middle_name": "Doe",
"entity_number": 141067,
"member_status": "Active",
"primary_phone": "",
"is_pro_bono_counsel": false
}
],
"page_size": 3,
"total_count": 243,
"total_pages": 81
},
"status": "success"
}
}About the azbar API
Search the Member Directory
The search_lawyers endpoint queries the full Arizona State Bar roster. With no filters applied it returns all members alphabetically; you can narrow results using first_name, last_name, city, state, company, and specialization parameters. Results are paginated — page and page_size (up to 500 per page) control the window — and the response includes total_count and total_pages so you can walk the full result set. Each record in the lawyers array carries entity_number, bar_number, first_name, last_name, company, address, and member_status.
Detailed Attorney Profiles
The get_lawyer_detail endpoint accepts a single required input — entity_number — obtained from search results. The returned lawyer object expands the search record with fields not available in list results: AdmittedYear, LawSchool, licensed jurisdictions, declared areas of practice, specializations, and discipline history delivered as raw HTML. Member status reflects the Arizona State Bar's current records, which include active, inactive, suspended, and disbarred designations.
Coverage and Data Shape
The directory reflects the Arizona State Bar's official membership data. Specializations follow the Bar's own taxonomy — values like "Injury & Wrongful Death Litigation" can be passed directly to the specialization filter. Because the state filter accepts abbreviations beyond AZ, the API can surface out-of-state attorneys who are members of the Arizona Bar. Discipline history is returned as raw HTML, so your client will need to parse or strip that field if you want plain text.
The azbar API is a managed, monitored endpoint for azbar.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when azbar.org changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official azbar.org API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a lawyer-finder tool filtered by city and specialization for a legal referral service.
- Audit firm rosters by querying
companyname and checkingmember_statusfor all returned attorneys. - Aggregate Arizona Bar admission trends by collecting
AdmittedYearvalues across the full member list. - Flag attorneys with non-empty discipline history fields for compliance screening workflows.
- Cross-reference
LawSchooldata across members to analyze law school representation in the Arizona Bar. - Export a structured list of attorneys in a specific practice area using the
specializationfilter. - Monitor member status changes over time by periodically fetching profiles via
get_lawyer_detailfor a tracked set of entity numbers.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does the Arizona State Bar have an official developer API?+
What does the `specialization` filter accept, and where do valid values come from?+
specialization parameter matches the Arizona State Bar's own certification taxonomy. Example values include strings like "Injury & Wrongful Death Litigation". The safest approach is to pull values from actual get_lawyer_detail responses, since the Bar controls the list and it is not enumerated separately by the API.How is discipline history returned, and what does it contain?+
get_lawyer_detail endpoint returns the discipline_history field as raw HTML, not structured data. You will need to parse or sanitize it client-side. The content reflects public disciplinary records held by the Arizona State Bar and may include sanctions, suspensions, or reprimands.Does the API cover attorneys licensed in states other than Arizona?+
state filter can return records for attorneys whose address is outside Arizona. However, attorneys who are not Arizona Bar members are not included. You can fork this API on Parse and revise it to add lookups against other state bar directories.Can I retrieve a list of all valid specialization categories without running a search first?+
search_lawyers and as a field within get_lawyer_detail profiles, but there is no dedicated endpoint that enumerates all available specialization values. You can fork it on Parse and revise it to add a specialization-listing endpoint.