Justia Lawyers Scraper
Pricing
from $1.00 / 1,000 results
Justia Lawyers Scraper
Scrape comprehensive lawyer profiles, contact info & reviews from Justia. Extract detailed attorney data for lead generation, market research & competitive analysis. Residential proxy required. Handles pagination, filtering & large-scale extraction efficiently.
Pricing
from $1.00 / 1,000 results
Rating
5.0
(3)
Developer
Shahid Irfan
Maintained by CommunityActor stats
1
Bookmarked
20
Total users
2
Monthly active users
21 days ago
Last modified
Categories
Share
What does Justia Lawyers Scraper do?
Justia Lawyers Scraper collects structured lawyer and law firm profiles from public Justia directory pages. Start with a complete directory URL, or provide a practice area, state, and optional city to build one. The dataset includes names, profile links, contact details, practice areas, education, ratings, badges, and location information for legal market research, lead generation, and directory monitoring.
The Actor is designed for fast, repeatable runs. Patchright Chrome uses Justia's JSON endpoint first, then verifies truncated JSON pages against the same page's listing index so rotating Premium placements do not hide ordinary lawyers. It follows directory pagination, removes duplicate profiles, stops at your requested result count, and omits empty values from saved records.
Why use Justia Lawyers Scraper?
- Legal lead research - Build contact-ready lists of attorneys and firms by practice area and location.
- Market mapping - Compare lawyer coverage, firms, ratings, and profile signals across states and cities.
- Practice area analysis - Study the distribution of criminal, family, personal injury, immigration, business, and other legal services.
- Clean exports - Send structured records to JSON, CSV, Excel, Google Sheets, Airtable, or your own data pipeline.
- Repeatable monitoring - Schedule runs in Apify to track changes in directory coverage and profile information.
What data can you extract from Justia?
| Field | Type | Description |
|---|---|---|
full_name | String | Lawyer full name. |
profile_url | String | Canonical Justia lawyer profile URL. |
profile_id | String | Numeric Justia profile identifier. |
firm_name | String | Law firm or office name when available. |
city | String | Profile city. |
state_abbr | String | Two-letter state abbreviation. |
state_name_full | String | Full state name when available. |
phone | String | Public phone number. |
website_url | String | Firm or attorney website. |
email_url | String | Public contact URL when provided. |
practice_areas | Array | Practice area labels. |
law_schools | Array | Law school entries. |
badges | Array | Profile badge labels. |
reviews_overall | Number | Overall review score when available. |
years_licensed | Number | Years licensed when available. |
current_badge_level | Number | Numeric badge level. |
badge_class | String | Badge tier class. |
badge_id | Number | Badge identifier. |
badge_metro_id | String | Source metro identifier. |
badge_practice_id | String | Source practice identifier. |
connect_pro | Boolean | Whether Connect Pro is available. |
has_email | Boolean | Whether an email contact option is available. |
is_premium | Boolean | Whether the profile is sponsored or premium. |
listing_page_number | Integer | Directory page where the profile was found. |
listing_page_url | String | Directory URL associated with the result page. |
practice_area | String | Practice area slug used for the run. |
state | String | State slug used for the run. |
source | String | Dataset source identifier. |
crawled_at | String | ISO timestamp when the record was saved. |
How to use Justia Lawyers Scraper
- Open the Actor in Apify Console.
- Paste a public Justia directory URL, or enter the practice area and location fields.
- Choose the result limit and maximum number of pages.
- Decide whether sponsored profiles should be included.
- Enable Apify Proxy for larger or repeated runs when direct access is unreliable.
- Start the run and download the dataset or connect it to an integration.
The JSON endpoint can return rotating Premium profiles plus only one ordinary profile per request. The Actor detects that short response and uses the browser session's listing index for the complete page, preserving the fast API path while preventing duplicate-heavy runs.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | String | No | Justia criminal-law California directory | Full Justia directory URL. When provided, it takes precedence over URL-building fields. |
practiceArea | String | No | criminal-law | Practice area slug used when startUrl is empty. |
state | String | No | california | State slug used when startUrl is empty. |
city | String | No | "" | Optional city slug such as los-angeles. |
includeSponsored | Boolean | No | true | Include sponsored or premium profiles in the dataset. |
results_wanted | Integer | No | 20 | Maximum number of profiles to save. |
max_pages | Integer | No | 10 | Maximum number of directory pages to process. |
proxyConfiguration | Object | No | Disabled | Optional Apify Proxy configuration for reliability. |
Usage Examples
Basic directory collection
Collect up to 20 criminal law profiles from a California directory page:
{"startUrl": "https://www.justia.com/lawyers/criminal-law/california","results_wanted": 20,"max_pages": 5}
Build a city-level directory URL
Use the practice area, state, and city fields when you do not want to paste a full URL:
{"practiceArea": "family-law","state": "texas","city": "houston","results_wanted": 100,"max_pages": 10}
Exclude sponsored profiles
Keep only non-sponsored profiles for an organic directory comparison:
{"startUrl": "https://www.justia.com/lawyers/personal-injury/new-york","includeSponsored": false,"results_wanted": 100,"max_pages": 8}
Use residential proxy routing
Enable Apify residential proxy routing for larger or recurring collections:
{"startUrl": "https://www.justia.com/lawyers/immigration-law/florida","results_wanted": 250,"max_pages": 15,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Sample Output
{"full_name": "Ryan Rodriguez","profile_url": "https://lawyers.justia.com/lawyer/ryan-rodriguez-1486958","profile_id": "1486958","listing_page_number": 1,"listing_page_url": "https://www.justia.com/lawyers/criminal-law/california","practice_area": "criminal-law","state": "california","state_abbr": "CA","firm_name": "Law Offices of Ryan Rodriguez","city": "Newport Beach","phone": "(949) 335-5433","website_url": "https://www.ryrolaw.com/","practice_areas": ["Criminal Law", "DUI & DWI"],"law_schools": ["Loyola Law School, Los Angeles"],"reviews_overall": 10,"years_licensed": 0,"badges": ["Platinum"],"badge_class": "platinum","current_badge_level": 900,"badge_id": 1116299,"badge_metro_id": "2058","badge_practice_id": "218","connect_pro": false,"has_email": true,"is_premium": false,"profile_image_url": "https://justatic.com/profile-images/1486958-1769794501-sl.jpeg","source": "justia-lawyers","crawled_at": "2026-08-14T10:30:15.120Z"}
Tips for best results
- Use a complete public directory URL when you already know the exact practice area and location.
- Use URL slugs such as
criminal-law,personal-injury,california, orlos-angelesin the separate input fields. - Start with 20 to 50 results to confirm the target scope before increasing the limits.
- Set
max_pageshigh enough to cover the requested result count, but keep it within the size of the target directory. - Enable residential proxy routing for long, repeated, or high-volume runs.
- Expect optional fields such as firm name, phone, law schools, ratings, and badges to vary by profile.
- Empty values are omitted automatically, so records can have different field sets.
Integrations and export formats
- Google Sheets - Review lawyer lists and share them with a team.
- Airtable - Build searchable legal contact databases.
- Make or Zapier - Trigger enrichment, CRM, or notification workflows.
- Webhooks - Send completed run events to downstream systems.
- API access - Read datasets from applications and scheduled pipelines.
Apify datasets can be exported as JSON, CSV, Excel, XML, and other supported formats.
Frequently Asked Questions
How many lawyer profiles can I collect?
The Actor stops when it reaches results_wanted, reaches max_pages, or runs out of matching profiles.
Can I target a specific city?
Yes. Set city together with a state, or provide a city-specific startUrl.
Can I collect more than one practice area in a run?
Each run targets one directory scope. Run separate jobs for additional practice areas, then combine the datasets in Apify or your data warehouse.
Why are some fields missing?
Justia does not publish every field for every profile. Optional fields are saved when present and omitted when unavailable.
Does the Actor remove duplicate profiles?
Yes. Profiles are deduplicated by their Justia profile identifier before they are saved.
Can I exclude premium profiles?
Yes. Set includeSponsored to false to skip profiles identified as sponsored or premium.
Can I schedule recurring collections?
Yes. Create an Apify Schedule for hourly, daily, weekly, or custom refreshes, then compare the resulting datasets over time.
Is it legal to collect Justia directory data?
You are responsible for following applicable laws, privacy requirements, and Justia's terms when collecting or using public directory data. Use the dataset for legitimate research and business purposes.
Related Actors
- FindLaw Directory Scraper - Collect lawyer and law firm profiles from another professional legal directory.
- WebMD Doctor Scraper - Collect structured provider profiles, locations, ratings, and contact details from a related professional directory workflow.
Support
For issues, field requests, or target changes, use the Issues tab on the Apify Actor page and include the input used, the run ID, and a small example of the missing result.
Legal Notice
This Actor is intended for legitimate data collection, research, and analysis from public sources. You are responsible for complying with applicable laws, website terms, privacy rules, and internal data governance requirements.