Lawyers APIlawyers.com ↗
Access attorney profiles, law firm details, client reviews, practice areas, and legal articles from lawyers.com via 8 structured endpoints.
What is the Lawyers API?
The lawyers.com API provides 8 endpoints covering attorney profiles, law firm listings, client reviews, legal articles, and practice area directories. Use search_lawyers to query by location and practice area and get back rated results with contact details, or pull a full attorney profile with education, experience sections, and years licensed via get_attorney_profile.
curl -X GET 'https://api.parse.bot/scraper/f1d0f921-687a-4baf-8397-1a72c14c1c1a/search_lawyers?page=1&sort=best&location=New+York&practice_area=Family+Law' \ -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 lawyers-com-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: Lawyers.com SDK — search, drill-down, and review inspection."""
from parse_apis.lawyers_com_api import LawyersCom, Sort, ProfileNotFound
client = LawyersCom()
# Search for family law lawyers in New York, sorted by relevance
for lawyer in client.lawyers.search(location="New York", practice_area="Family Law", sort=Sort.BEST, limit=3):
print(lawyer.name, lawyer.rating, lawyer.phone)
# Drill into the first result's reviews
lawyer = client.lawyers.search(location="New York", practice_area="Family Law", limit=1).first()
if lawyer:
for review in lawyer.reviews.list(limit=3):
print(review.date, review.body[:80] if review.body else "")
# Get a full attorney profile by URL
try:
attorney = client.attorneys.get(url=lawyer.profile_url)
print(attorney.name, attorney.rating, attorney.reviews_count)
except ProfileNotFound as exc:
print(f"Profile gone: {exc}")
# List practice areas
for area in client.practiceareas.list(limit=5):
print(area.name, area.slug, area.rank)
# Browse articles for a topic
topic_info = client.articletopics.get(topic="family-law")
print(topic_info.topic, len(topic_info.articles))
for article in topic_info.articles[:2]:
print(article.title, article.url)
print("exercised: lawyers.search / reviews.list / attorneys.get / practiceareas.list / articletopics.get")
Search for lawyers and law firms by practice area and location. Returns up to 30 results per page. Results include basic profile info (name, rating, phone, website). Sort by relevance, distance, or name. Pagination via page number; empty results signal end of pages.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination |
| sort | string | Sort order for results |
| location | string | City/state to search in (e.g. 'New York', 'Los Angeles, CA') |
| practice_area | string | Legal practice area to search for (e.g. 'Family Law', 'Criminal Defense', 'Immigration') |
{
"type": "object",
"fields": {
"title": "string, search results heading",
"total": "integer, total number of matching results",
"results": "array of lawyer/firm objects with name, profile_url, rating, reviews_count, serving, phone, website, tagline, type"
},
"sample": {
"data": {
"title": "New York Family Law Firms & Lawyers",
"total": 0,
"results": [
{
"name": "John Doe",
"type": "lawyer",
"phone": "+1 (555) 012-3456",
"rating": "4.9",
"serving": "123 Main St, Springfield, IL 62704",
"tagline": "Immigration law specialist and state mediator",
"website": "https://www.fmonterolaw.com",
"profile_url": "https://www.lawyers.com/clifton/new-jersey/john-doe-168704398-a/",
"reviews_count": "16 Reviews"
}
]
},
"status": "success"
}
}About the Lawyers API
What the API Covers
The lawyers.com API surfaces structured data across the site's attorney and firm directory. search_lawyers accepts location, practice_area, sort (best, distance, or name), and page parameters, returning up to 30 results per page with fields including name, rating, reviews_count, phone, tagline, and profile_url. The total field lets you calculate how many pages of results exist for a given query.
Attorney and Firm Profiles
get_attorney_profile takes a full lawyers.com profile URL and returns name, phone, address, biography, firm_name, years_licensed, practice_areas, and a sections object that maps headings (such as Education, Bar Admissions, or Services) to arrays of content strings. get_law_firm_profile provides the same contact and rating fields for firms, plus an attorneys array listing each attorney's name, URL, and role within the firm.
Reviews, Articles, and Featured Firms
get_attorney_reviews returns an array of review objects—each with practice_area, body, date, and author—alongside an overall_rating. get_legal_articles accepts a topic slug (e.g. family-law, bankruptcy) and returns both a flat articles array and a nested categories structure. get_featured_firms_by_topic returns firms promoted for a topic, with location automatically inferred from the request IP. get_top_contributors lists active Ask-a-Lawyer participants with their answers_count, rating, and contact fields.
Practice Area Directory
get_practice_areas returns every top-level practice area with rank, name, slug, and aop_id. These slugs feed directly into get_legal_articles and get_featured_firms_by_topic, making it straightforward to iterate across all topics.
The Lawyers API is a managed, monitored endpoint for lawyers.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when lawyers.com 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 lawyers.com 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 practice area using
search_lawyerswithlocationandpractice_areaparams. - Aggregate attorney ratings and review counts across a region to benchmark law firms by reputation.
- Extract structured education and bar admission data from
get_attorney_profilesections for professional research databases. - Map featured firms by legal topic and detected city using
get_featured_firms_by_topicfor geo-targeted legal referral pages. - Compile a content index of legal help articles by topic using
get_legal_articleswith category and URL fields. - Identify top Ask-a-Lawyer contributors by answer volume via
get_top_contributorsfor influencer or outreach analysis. - Enumerate all practice area slugs from
get_practice_areasto drive automated multi-topic crawls or dashboards.
| 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 lawyers.com have an official public developer API?+
What does `get_attorney_profile` return beyond basic contact info?+
name, phone, and address, the endpoint returns a sections object keyed by section heading (e.g. Education, Bar Admissions, Services) with arrays of strings as values. It also includes biography, firm_name, years_licensed, practice_areas, and reviews_count.How does pagination work in `search_lawyers`?+
total integer for the full match count and up to 30 results per page. Pass the page parameter to advance through results. There is no cursor-based pagination; pages are integer-indexed.Does the API expose the full text of all reviews for a profile, or just a summary?+
get_attorney_reviews endpoint returns reviews visible on the profile page, each with body, date, author, and practice_area, plus an overall_rating. Reviews that require additional navigation or login to view on the site may not appear. You can fork the API on Parse and revise it to target additional review pages if needed.