
TikTok Shop Scraper
scrape.ly/store/shelfbright/tiktok-shop-scraperE-commerceSocial media
1 monthly user

Scrape the public Justia lawyer directory by state, practice area and city, or from profile URLs: name, firm, phone, website, address, rating, bar admissions, education and more.
Turn the public Justia lawyer directory into a clean attorney list. Pick US states, practice areas and cities, or paste Justia URLs, and get each lawyer's name, firm, phone, website, office address, Justia rating, years of experience and law school. Switch on profile details to also get bar admissions with bar numbers, degrees, languages, awards, associations, work history and social links. No login needed.
| Field | What it does |
|---|---|
states | US state codes, for example ["TX", "CA"]. Empty with a practice area = all states. |
practiceAreas | Justia practice areas, for example ["criminal-law", "family-law"]. Empty = all lawyers. |
cities | Optional city names, searched in each selected state. |
startUrls | Optional Justia profile or directory URLs. |
maxItems | Maximum lawyers in total (0 = no limit). Default 20. |
minJustiaRating, minYearsOfExperience, maxYearsOfExperience, onlyWithWebsite | Optional filters. |
includeProfileDetails | Open each profile for the full record (extra event per lawyer). |
{
"states": ["TX"],
"practiceAreas": ["family-law"],
"cities": ["Houston"],
"maxItems": 100,
"includeProfileDetails": true
}
| Field | Description |
|---|---|
name, first_name, last_name | Lawyer name |
firm_name | Law firm |
practice_areas | Practice areas |
phone, website | Contact details |
address, city, state, zip, latitude, longitude | Main office |
justia_rating, rating_label, peer_review_count, client_review_count | Justia peer rating (0–10) and review counts |
years_of_experience | Years of experience |
education | Law schools (with degree, year and field on profiles) |
bar_admissions | Jurisdiction, bar, bar ID number and admission year (profile details) |
languages, awards, associations, professional_experience, practice_area_details, social_links, offices | Profile details |
free_consultation, claimed, badges, listing_type | Listing flags |
biography | Bio preview (directory) or full biography (profile) |
lawyer_id, profile_url, image_url | Justia identifiers |
details_scraped | true when the profile page was read |
search_practice_area, search_state, search_city, source_url | Where the lawyer was found |
Example (fictional sample data, real shape):
[
{
"name": "Jordan A. Whitfield",
"first_name": "Jordan",
"last_name": "Whitfield",
"firm_name": "Whitfield Defense Group, PLLC",
"practice_areas": [
"Criminal Law",
"DUI & DWI",
"Domestic Violence"
],
"phone": "(512) 555-0142",
"website": "https://www.example-whitfielddefense.com",
"address": "200 Example Ave, Suite 400",
"city": "Austin",
"state": "TX",
"zip": "78701",
"latitude": 30.2701,
"longitude": -97.7431,
"justia_rating": 9.8,
"rating_label": "Top Rated Lawyer",
"peer_review_count": 4,
"client_review_count": 12,
"years_of_experience": 18,
"education": [
"Example State University School of Law | J.D. | 2007 | Law"
],
"bar_admissions": [
"Texas | State Bar of Texas | ID Number: 00000000 | 2007",
"U.S. District Court - Western District of Texas | 2009"
],
"languages": [
"English",
"Spanish"
],
"awards": [
"Super Lawyer | Super Lawyers | 2025"
],
"associations": [
"Texas Criminal Defense Lawyers Association | Member"
],
"professional_experience": [
"Assistant District Attorney | Example County District Attorney's Office | 2007-2013"
],
"practice_area_details": [
"Drug Crimes",
"Expungement"
],
"social_links": [
"LinkedIn | https://www.linkedin.com/in/example"
],
"offices": [
{
"firm_name": "Whitfield Defense Group, PLLC",
"office": "Austin Office",
"address": "200 Example Ave, Suite 400",
"city": "Austin",
"state": "TX",
"zip": "78701",
"phone": "(512) 555-0142"
}
],
"free_consultation": true,
"claimed": true,
"badges": [
"Claimed Lawyer Profile",
"Offers Video Conferencing"
],
"listing_type": "organic",
"biography": "Former prosecutor focused on criminal defense and DWI cases across Central Texas...",
"image_url": "https://justatic.com/profile-images/example.jpg",
"lawyer_id": 1000001,
"profile_url": "https://lawyers.justia.com/lawyer/jordan-a-whitfield-1000001",
"details_scraped": true,
"search_practice_area": "Criminal Law",
"search_state": "TX",
"search_city": null,
"source_url": "https://www.justia.com/lawyers/criminal-law/texas"
}
]
You pay per lawyer saved, plus a small add-on when the full profile is opened:
| Event | Price |
|---|---|
Lawyer saved (result-item) | $2.00 per 1,000 lawyers ($0.002 each) |
Full profile opened (profile-details, only with Open each lawyer profile or profile URLs) | +$2.00 per 1,000 lawyers |
Examples: 1,000 lawyers from directory pages ≈ $2.00; 1,000 lawyers with full profiles ≈ $4.00. Platform usage (compute and residential proxy traffic) is billed on top and is small: about one cent per 1,000 directory lawyers and under ten cents per 1,000 full profiles in our tests. Lawyers skipped by your filters are never charged, and the run stops cleanly at your maximum total charge.
Is it legal to scrape Justia? The actor reads only public directory pages that anyone can open without an account. You are responsible for how you use the data, including privacy and marketing laws such as the GDPR, CCPA and the CAN-SPAM Act.
Do I need a login or my own proxy? No. The actor uses US residential proxies by default, because Justia is protected by Cloudflare.
How many lawyers can I get? Justia shows up to about 50 lawyers per directory page and at most 25 pages (roughly 1,000 to 1,250 lawyers) per search. For large lists, combine several practice areas, states or cities; duplicates are removed automatically.
Why are some fields empty? Lawyers fill their own profiles. Ratings, education or a website are missing when the lawyer did not add them. Bar admissions, languages and awards need Open each lawyer profile.
Is there an email field? No. Justia does not show lawyers' email addresses; it uses a contact form instead.
Can I schedule it or use the API? Yes. Schedule runs in the console, or start runs and read datasets through the API and integrations.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
statesarrayOptionaldefault ["TX"]States
US states to search. Leave empty with a practice area selected to search every state.
practiceAreasarrayOptionaldefault ["criminal-law"]Practice areas
Areas of law to search, such as Criminal Law, Family Law or Personal Injury. Leave empty to list all lawyers in the selected states.
citiesarrayOptionaldefault []Cities
Optional. City names such as Houston or San Antonio. Each city is searched in every selected state, so pick the matching state too.
startUrlsarrayOptionaldefault []Justia URLs
Optional. Lawyer profile pages (https://lawyers.justia.com/lawyer/...) or directory pages (https://www.justia.com/lawyers/family-law/texas/houston). They run in addition to the search above. Profile URLs always include full profile details.
maxItemsintegerOptionaldefault 20Maximum lawyers
Stop after this many lawyers in total. 0 means no limit (every matching lawyer).
Optional limits applied before a lawyer is saved (and charged).
minJustiaRatingnumberOptionalMinimum Justia rating
Skip lawyers whose Justia peer rating (0 to 10) is lower than this. Lawyers without a rating are skipped.
minYearsOfExperienceintegerOptionalMinimum years of experience
Skip lawyers with fewer years of experience than this.
maxYearsOfExperienceintegerOptionalMaximum years of experience
Skip lawyers with more years of experience than this. If it is below the minimum, the two values are swapped.
onlyWithWebsitebooleanOptionaldefault falseOnly lawyers with a website
Skip lawyers that do not list a website.
includeProfileDetailsbooleanOptionaldefault falseOpen each lawyer profile
Open every lawyer's profile page for the full record: bar admissions with bar numbers, education with degrees and years, languages, awards, associations, work history, social links, all office locations, client review count and the full biography. Charged as an extra profile-details event per lawyer. Off: only the data shown on directory pages (name, firm, phone, website, address, rating, experience, law schools, practice areas, bio preview).
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["RESIDENTIA…Proxy
Justia is protected by Cloudflare. US residential proxies work best.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| name | string | null | |
| first_name | string | null | |
| last_name | string | null | |
| firm_name | string | null | |
| practice_areas | array | |
| phone | string | null | |
| website | string | null | |
| address | string | null | |
| city | string | null | |
| state | string | null | |
| zip | string | null | |
| latitude | number | null | |
| longitude | number | null | |
| justia_rating | number | null | |
| rating_label | string | null | |
| peer_review_count | integer | null | |
| client_review_count | integer | null | |
| years_of_experience | integer | null | |
| education | array | |
| bar_admissions | array | |
| languages | array | |
| awards | array | |
| associations | array | |
| professional_experience | array | |
| practice_area_details | array | |
| social_links | array | |
| offices | array | |
| free_consultation | boolean | null | |
| claimed | boolean | null | |
| badges | array | |
| listing_type | string | null | |
| biography | string | null | |
| image_url | string | null | |
| lawyer_id | integer | null | |
| profile_url | string | null | |
| details_scraped | boolean | null | |
| search_practice_area | string | null | |
| search_state | string | null | |
| search_city | string | null | |
| source_url | string | null |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Full profile | The lawyer's profile page was opened for full details (bar admissions, education, awards and more) | $0.002 |
| Lawyer | One lawyer saved to the dataset | $0.002 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('cornerledger/justia-scraper').call({
"states": [
"TX"
],
"practiceAreas": [
"criminal-law"
],
"cities": [],
"startUrls": [],
"maxItems": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"RESIDENTIAL"
],
"scrapelyProxyCountry": "US"
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run cornerledger/justia-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=cornerledger/justia-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Lawyers with full profile details.
Experienced lawyers with a website.
Details from Justia lawyer profile links.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.