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

Scrape the public Avvo US lawyer directory by practice area and state or city, or from search and profile URLs. Get name, firm, phone, website, address, Avvo rating, client reviews, years licensed, licenses, education and awards. No login needed.
Scrape the public Avvo.com US lawyer directory by practice area and state or city, or from the search and profile URLs you paste in. You get a clean row per lawyer with name, firm, phone, website, address, Avvo rating, client reviews, years licensed, education, bar licenses, awards and more. No login and no cookies needed.
Family, DUI, Real estate) and Locations (TX, Austin, TX).| Field | What it does |
|---|---|
practiceAreas | Areas of law to search. Names (Real estate, DUI) or Avvo slugs (family-lawyer). Each one is searched in every location. |
locations | US states (TX, Texas) or cities (Austin, TX). A city with no practice area lists every lawyer in that city. |
startUrls | Optional Avvo search pages and lawyer profile URLs. |
limit | Maximum lawyers per search (default 20). Each practice area and location pair, and each search URL, is one search. |
minAvvoRating, minClientRating, minReviews, minYearsLicensed, maxYearsLicensed | Optional filters. |
sortBy | Best match, best client reviews, most reviewed, most or fewest years licensed. |
includeProfileDetails | On by default. Turn off for a faster run with only the fields shown on search pages. |
{
"practiceAreas": ["Family", "DUI"],
"locations": ["TX", "Austin, TX"],
"limit": 100,
"minAvvoRating": 8,
"sortBy": "most_reviewed",
"includeProfileDetails": true
}
Each row is one lawyer. Empty fields are left out.
| Field | Description |
|---|---|
id, url, name | Avvo lawyer ID, profile URL and name |
firmName, jobTitle | Firm or office name and the first sentence of the bio |
address, streetAddress, city, state, postalCode, latitude, longitude | Office location |
primary_phone, phone | Phone as digits and formatted, when the lawyer lists one |
website, linkedin, facebook, twitter, instagram, youtube | Links the lawyer lists |
specialties, practiceAreas | Practice areas, with the share of work on profile pages |
avvoRating, avvoRatingLabel | Avvo rating (1 to 10) and its label, such as Superb |
rating, reviewCount | Average client review score (1 to 5) and number of reviews |
endorsementsReceived, legalAnswers | Peer endorsements and Q and A answers |
yearsLicensed, yearsActiveEstimate | Years since first licensed, and since the earliest education year listed |
licenses, education, awards, workExperience, associations, languages | Profile sections |
freeConsultation, consultation, paymentMethods | Fee information |
bioSummary, bio, headshotUrl, profileType | Biography, photo and Avvo profile type |
searchPracticeArea, searchLocation, sourceUrl | Which search found the lawyer |
{
"type": "profile",
"id": 1000001,
"url": "https://www.avvo.com/attorneys/00000-tx-alex-marlowe-1000001.html",
"name": "Alex R. Marlowe",
"firmName": "Marlowe Family Law LLC",
"address": "100 Example Avenue, Austin, TX",
"city": "Austin",
"state": "TX",
"postalCode": "78701",
"primary_phone": "5550100100",
"phone": "(555) 010-0100",
"website": "https://www.example.com/",
"specialties": ["Divorce and separation", "Child custody"],
"practiceAreas": [{"name": "Divorce and Separation", "share": "60%"}, {"name": "Child Custody", "share": "40%"}],
"avvoRating": 9.4,
"avvoRatingLabel": "Superb",
"rating": 4.9,
"reviewCount": 37,
"yearsLicensed": 18,
"licenses": [{"state": "Texas", "acquired": "2008", "status": "Active", "discipline": "No misconduct found"}],
"education": [{"school": "Example State University College of Law", "degree": "JD - Juris Doctor", "year": "2008"}],
"searchPracticeArea": "family",
"searchLocation": "Austin, TX"
}
You pay $0.002 per lawyer saved ($2.00 per 1,000). Lawyers that fail your filters, duplicates and pages that return nothing are not charged.
Platform usage (compute and the managed browser) is billed on top. In our tests it was about $0.40 to $0.60 per 1,000 full lawyer profiles, so 1,000 lawyers cost roughly $2.40 to $2.60 in total. With Open each lawyer profile turned off, the run reads only search pages (20 lawyers per page), and platform usage drops to under $0.10 per 1,000 (about $0.07 in our test).
Is it legal to scrape Avvo? The actor only reads pages that anyone can open without logging in and returns business contact data lawyers publish on their own profiles. You are responsible for using the data in line with the law and Avvo's terms, including marketing and privacy rules.
Do I need a login, cookies or a proxy? No. The actor handles the site's browser check with a managed browser session, so there is no proxy setting.
Does it return email addresses? No. Avvo does not publish lawyer emails and this actor does not look them up elsewhere.
How many lawyers can I get? As many as Avvo lists for the search, up to your limit. A state-wide practice-area search can list thousands of lawyers, and the run stops cleanly when the list ends.
Why is a field missing? Lawyers fill in their profiles differently. Phone numbers, websites and ratings only appear when Avvo shows them, and empty fields are left out.
Can I schedule it or call it from code? Yes, use schedules, the API, or any integration to run it and read the dataset.
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.
practiceAreasarrayOptionaldefault ["Real estate"]Practice areas
Areas of law to search, such as Real estate, Family, Criminal defense, DUI, Personal injury, Immigration or Estate planning. Avvo slugs like family-lawyer also work. Each practice area is searched in every location below.
locationsarrayOptionalLocations
US states (TX or Texas) or cities written as City, ST (for example Austin, TX). Leave practice areas empty to list every lawyer in a city.
startUrlsarrayOptionaldefault []Avvo URLs
Optional. Avvo search or practice-area pages (https://www.avvo.com/divorce-separation-lawyer/tx/austin.html) and lawyer profile pages (https://www.avvo.com/attorneys/...html). They run in addition to the practice areas and locations above.
limitintegerOptionaldefault 20Maximum lawyers per search
Stop each search after this many lawyers. Every practice area and location pair, and every search URL, counts as one search. Profile URLs are always saved.
Optional limits applied before a lawyer is saved.
minAvvoRatingnumberOptionalMinimum Avvo rating
Skip lawyers whose Avvo rating (0 to 10) is lower than this. Lawyers without a rating are skipped.
minClientRatingnumberOptionalMinimum client review score
Skip lawyers whose average client review score (0 to 5) is lower than this. Lawyers with no reviews are skipped.
minReviewsintegerOptionalMinimum client reviews
Skip lawyers with fewer client reviews than this.
minYearsLicensedintegerOptionalMinimum years licensed
Skip lawyers licensed for fewer years than this.
maxYearsLicensedintegerOptionalMaximum years licensed
Skip lawyers licensed for more years than this. If it is below the minimum, the two values are swapped.
sortByenumOptionaldefault "best_match"Sort search results by
Order of the lawyers on Avvo search pages. With a limit, this decides which lawyers you get first.
Lawyers from profile URLs always include the full profile.
includeProfileDetailsbooleanOptionaldefault trueOpen each lawyer profile
Open every lawyer's profile page for the full record: firm, education, licenses, awards, work history, associations, languages, social links and the full bio. Turn off for a faster run with only the fields shown on search pages.
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 | Lawyer name |
| firmName | string | Law firm or office name |
| jobTitle | string | First sentence of the bio |
| address | string | Office address |
| streetAddress | string | Street address |
| city | string | City |
| state | string | State code |
| postalCode | string | ZIP code |
| latitude | number | Office latitude |
| longitude | number | Office longitude |
| primary_phone | string | Phone number, digits only |
| phone | string | Phone number, formatted |
| website | string | Lawyer website |
| string | LinkedIn page | |
| string | Facebook page | |
| string | Twitter or X page | |
| string | Instagram page | |
| youtube | string | YouTube page |
| otherLinks | array | Other links the lawyer lists |
| specialties | array | Practice area names |
| practiceAreas | array | Practice areas with the share of the lawyer's work |
| avvoRating | number | Avvo rating from 1 to 10 |
| avvoRatingLabel | string | Avvo rating label, such as Superb |
| rating | number | Average client review score from 1 to 5 |
| reviewCount | integer | Number of client reviews |
| endorsementsReceived | integer | Peer endorsements received |
| legalAnswers | integer | Legal Q and A answers given |
| yearsLicensed | integer | Years since first licensed |
| yearsActiveEstimate | integer | Years since the earliest education year listed |
| licenses | array | Bar licenses with state, year, status and discipline note |
| education | array | Schools and degrees |
| awards | array | Awards and honors |
| workExperience | array | Work history |
| associations | array | Associations and memberships |
| languages | array | Languages spoken |
| freeConsultation | boolean | True when a free consultation is offered |
| consultation | string | Consultation offer text |
| paymentMethods | array | Accepted payment methods |
| bioSummary | string | Bio, first 300 characters |
| bio | string | Full biography |
| headshotUrl | string | Profile photo URL |
| profileType | string | Avvo profile type: claimed, pro, subscriber or unclaimed |
| searchPracticeArea | string | Practice area of the search that found the lawyer |
| searchLocation | string | Location of the search that found the lawyer |
| sourceUrl | string | Page the lawyer was read from |
| type | string | Record type, always profile |
| id | integer | Avvo lawyer ID |
| url | string | Avvo profile URL |
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 |
|---|---|---|
| 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/avvo-scraper').call({
"practiceAreas": [
"Real estate"
],
"locations": [
"WY"
],
"startUrls": [],
"limit": 20
})
// 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/avvo-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/avvo-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.
Lawyer profiles sorted by client rating.
Profiles from an Avvo directory URL.
Quick lawyer list without full profiles.
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.