Avvo Reviews Scraper avatar

Avvo Reviews Scraper

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Avvo Reviews Scraper

Avvo Reviews Scraper

[πŸ’° $1.50 / 1K] Extract reviews from Avvo lawyer profiles by URL or by lawyer-and-location search.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

1

Monthly active users

16 days ago

Last modified

Share

Pull client reviews from Avvo lawyer profiles at scale β€” star ratings, review titles, full review bodies, reviewer names and relationships, posted dates, and the lawyer's official replies. Built for legal-marketing agencies, reputation-management consultants, and attorney-search platforms that need fresh, structured Avvo client feedback delivered straight to a spreadsheet, CRM, or BI dashboard.

Why This Scraper?

  • Two input modes β€” URLs or free-text search β€” paste lawyer profile URLs directly, or describe lawyers as "divorce lawyers, San Francisco CA" / "John Smith attorney, Austin TX" and the actor resolves each query to a real Avvo profile automatically.
  • One row per review, with parent context inlined β€” every row carries lawyerName, lawyerCity, lawyerState, and lawyerProfileUrl, so a multi-lawyer run drops straight into a spreadsheet without a join.
  • Every row names the input that produced it β€” searchQuery carries your original query through to the result, inputUrl carries your pasted profile URL through unchanged, and searchMatch flags any lawyer whose office sits outside the city or state you asked for, so a 50-query run stays auditable line by line.
  • Star-rating band filter with both ends β€” minRating and maxRating bracket any slice of the 1–5 scale: 1–2 for the negative reviews that need a reply drafted, 4–5 for testimonial-grade quotes, or 3 on its own to read the ambivalent middle. Set one end or both.
  • Lawyer replies captured as structured data β€” every review row carries a nested lawyerResponse object with the response body and posted date when the attorney has replied, so you can measure how proactively each lawyer engages with criticism.
  • "Hired Attorney" badge captured per row β€” every review row carries reviewerRelationship: "Hired Attorney" when Avvo shows the verified-client badge on the review header, or null when the badge is absent β€” useful for filtering testimonials down to confirmed paying clients.
  • ISO 8601 posted dates on every review β€” dates parsed from Avvo's free-text format into machine-sortable timestamps so review trends, recency analysis, and time-series dashboards just work.
  • Lawyer profiles resolved from verified directory data β€” lawyer name, city, and state are pulled from Avvo's own structured listing record, not guessed from page headlines, so the parent context columns stay accurate even when Avvo redesigns the profile page.
  • Scales to lawyers with 1 000+ reviews β€” top-rated personal-injury and family-law attorneys can carry thousands of client reviews; the actor walks every page and stops cleanly the moment your maxReviewsPerLawyer or maxReviewsTotal cap is hit.
  • Two overlapping safety caps, shared fairly β€” maxReviewsPerLawyer bounds each individual lawyer and maxReviewsTotal bounds the whole run, so a mistyped URL pointing at a 5 000-review profile can never blow past your budget. The run-wide cap is split evenly across every lawyer and query you supply, so a 300-review budget across 16 cities returns all 16 cities, not the first 11.

Use Cases

Reputation Management & Monitoring

  • Track new reviews on a roster of attorney clients and flag negative ones the moment they appear
  • Benchmark a single lawyer's review trend against firm partners or regional peers
  • Pull every 1- and 2-star review for a partner so the response strategy can be drafted in one sitting
  • Audit how often a lawyer replies to negative reviews vs. positive ones

Lead Generation & Sales Intelligence

  • Build target lists of high-rated attorneys by practice area and city for legal-tech outreach
  • Identify lawyers in specific states whose reviews mention pain points your product solves
  • Source customer-quote material for case studies β€” filter to 5-star reviews mentioning specific outcomes

Market Research & Competitive Intelligence

  • Compare average client satisfaction across practice areas (personal injury vs. family law vs. criminal defense)
  • Map regional differences in client review patterns β€” coastal metros vs. heartland markets
  • Quantify how often clients mention price, communication, or outcome in their reviews

Academic & Journalistic Research

  • Study client satisfaction patterns in legal services at scale
  • Analyse how lawyers frame their replies to negative feedback
  • Measure review volume and recency as proxies for an attorney's online visibility

Aggregator Platforms & Legal Directories

  • Feed Avvo client reviews into a multi-source attorney comparison tool
  • Power a lawyer-discovery app with verified third-party feedback
  • Augment internal CRM records with public review counts and average star ratings per attorney

Getting Started

Single Lawyer by URL

The simplest run β€” pull every review on one profile:

{
"lawyerUrls": [
"https://www.avvo.com/attorneys/95827-ca-james-arrasmith-5150864.html"
],
"maxReviewsPerLawyer": 50
}

Multiple Lawyers, Negative Reviews Only

Reputation triage across a roster of clients β€” the band from 1 to 2 stars keeps just the negative reviews and drops everything above them:

{
"lawyerUrls": [
"https://www.avvo.com/attorneys/94104-ca-john-doe-12345.html",
"https://www.avvo.com/attorneys/10001-ny-jane-roe-67890.html",
"https://www.avvo.com/attorneys/60601-il-mark-smith-24680.html"
],
"minRating": 1,
"maxRating": 2,
"maxReviewsPerLawyer": 100
}

Search by Practice Area + City

When you don't have profile URLs in hand β€” describe each lawyer in plain English:

{
"lawyerSearch": [
"personal injury, Los Angeles, CA",
"divorce lawyers, San Francisco, CA",
"criminal defense, Houston, TX"
],
"maxReviewsTotal": 100
}

Mixed Input β€” URLs and Searches Together

{
"lawyerUrls": [
"https://www.avvo.com/attorneys/94104-ca-john-doe-12345.html"
],
"lawyerSearch": [
"estate planning, Boston, MA"
],
"minRating": 4,
"maxReviewsPerLawyer": 200,
"maxReviewsTotal": 500
}

Input Reference

What to Scrape

ParameterTypeDefaultDescription
lawyerUrlsstring[][]Avvo lawyer profile URLs (e.g. https://www.avvo.com/attorneys/94104-ca-john-doe-12345.html). Paste one URL per lawyer. Each URL produces one set of review rows.
lawyerSearchstring[][]Free-text queries like "divorce lawyers, San Francisco CA" or "John Smith attorney, Austin TX". Each query is resolved to its top matching Avvo lawyer profile, and that lawyer's reviews are collected.

Filters

ParameterTypeDefaultDescription
minRatinginteger (1–5)unsetLowest star rating to keep. Leave empty for no lower limit.
maxRatinginteger (1–5)unsetHighest star rating to keep. Leave empty for no upper limit. Combine the two to pull a band β€” minRating: 1 with maxRating: 2 returns only 1- and 2-star reviews.

Limits

ParameterTypeDefaultDescription
maxReviewsPerLawyerinteger100 pre-filledCap on reviews collected per lawyer. The field starts at 100; change it to any number you like, or clear it (or set 0) to collect every available review.
maxReviewsTotalintegerunsetOptional safety cap on the total number of reviews across all lawyers. Shared evenly across your lawyers and queries, so every one of them is represented.

Output

One row per review. Lawyer-context fields are inlined on every row so a multi-lawyer dataset drops straight into a spreadsheet.

{
"lawyerName": "James Arrasmith",
"lawyerProfileUrl": "https://www.avvo.com/attorneys/95827-ca-james-arrasmith-5150864.html",
"lawyerSlug": "james-arrasmith",
"lawyerCity": "Sacramento",
"lawyerState": "CA",
"reviewId": "12345678",
"reviewerName": "Maria",
"reviewerRelationship": "Hired Attorney",
"stars": 5,
"title": "Outstanding family law representation",
"body": "James handled my custody case with compassion and skill. He kept me informed at every step, returned calls the same day, and the outcome exceeded my expectations.",
"postedAt": "2024-09-12",
"lawyerResponse": {
"body": "Thank you Maria β€” it was a privilege working with you and your family.",
"postedAt": "2024-09-15"
},
"inputUrl": null,
"searchQuery": "family lawyer, Sacramento CA",
"searchMatch": "city",
"recordType": "review"
}

Lawyer Context

FieldTypeDescription
lawyerNamestringLawyer's display name as listed on Avvo
lawyerProfileUrlstringCanonical Avvo profile URL
lawyerSlugstringURL slug segment of the lawyer (e.g. james-arrasmith)
lawyerCitystringLawyer's primary office city
lawyerStatestringTwo-letter US state code (e.g. CA)
inputUrlstring | nullThe profile URL you supplied, copied through character for character. Avvo rewrites profile URLs to its own canonical form, so lawyerProfileUrl can differ from what you pasted. Join your input list to your results on this field. null for lawyers found by search.
searchQuerystring | nullThe search query this lawyer was matched from, copied through verbatim. null for lawyers you supplied by profile URL. Join your input list to your results on this field.
searchMatchstring | nullHow closely the matched lawyer's office fits the location you searched: "city" (same city and state), "state" (right state, different city), or "out-of-area" (Avvo listed nobody in that state for that search). null for lawyers you supplied by profile URL.

Review Content

FieldTypeDescription
reviewIdstringAvvo's stable identifier for the review
starsinteger (1–5)Star rating chosen by the reviewer
titlestringHeadline the reviewer gave the review
bodystringFull review text
postedAtstringDate the review was posted, ISO 8601 (YYYY-MM-DD)
recordTypestringAlways "review" β€” present for forward compatibility with future record types

Reviewer & Lawyer Response

FieldTypeDescription
reviewerNamestringReviewer's display name. May be the literal "anonymous" when the reviewer chose anonymity
reviewerRelationshipstring | null"Hired Attorney" when Avvo shows the verified-client badge on the review header, otherwise null. Useful for filtering down to reviews from confirmed paying clients.
lawyerResponseobject | nullThe lawyer's official reply when present, with body and postedAt (ISO 8601). null when the lawyer has not replied

Tips for Best Results

  • Start small β€” run a single lawyer URL with maxReviewsPerLawyer: 20 first to confirm the data shape matches your downstream pipeline, then scale up.
  • Bracket the band, don't just set a floor β€” minRating: 1 on its own keeps every review, because 1 star is already the bottom of the scale. Add maxRating: 2 and you get the negative subset that actually drives outreach, response drafting, and crisis monitoring. Most tools only report averages; that band is where the real lift lives.
  • Use maxReviewsTotal to bound large runs β€” Avvo profile sizes vary wildly: some lawyers have 5 reviews, top-rated personal-injury attorneys can have over 1 000. If you're running 50 lawyers and only have budget for 5 000 rows, set maxReviewsTotal: 5000 as a hard ceiling. The budget is divided across all 50, so each one still shows up in your results; leave it unset when you want depth on a handful of lawyers rather than coverage across many.
  • Mine lawyerResponse for engagement signals β€” a lawyer who replies to most negative reviews behaves very differently from one who never replies. The nested lawyerResponse field is rich material for benchmarking attorney engagement.
  • Prefer lawyerUrls when you know the specific attorney β€” lawyerSearch resolves each query to the FIRST matching Avvo profile for that practice area + city + state. If you need a specific named lawyer, paste the URL.
  • Combine input types in one run β€” mixing lawyerUrls and lawyerSearch in a single run is fully supported; both arrays are deduplicated and processed end-to-end.
  • Reviewer names of "anonymous" are real, not bugs β€” Avvo lets reviewers post anonymously, and the actor preserves the literal value. Filter them out client-side if you need named-only reviews.

Pricing

From $1.50 per 1,000 reviews β€” pay only for review rows you actually receive. No compute charges β€” you only pay per review returned. Your rate depends on your Apify discount tier, and the table below shows the total cost at each volume. These tier rates take effect on 12 September 2026: Gold stays at $1.50 per 1,000, while the No-discount, Bronze and Silver rates change on that date. Until then every tier pays $1.50 per 1,000.

ResultsNo discountBronzeSilverGold
100$0.17$0.17$0.16$0.15
1,000$1.75$1.70$1.60$1.50
10,000$17.50$17.00$16.00$15.00
100,000$175.00$170.00$160.00$150.00

A "result" is one review row in the output dataset. Apify platform fees (storage, transfer) are additional and depend on your plan.

Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

  • Zapier / Make / n8n β€” Workflow automation, no-code pipelines
  • Google Sheets β€” Direct spreadsheet export for analysts and ops teams
  • Slack / Email β€” Notifications on new negative reviews or run completion
  • Webhooks β€” Trigger your own systems on each scheduled run
  • Apify API β€” Full programmatic access for embedding into your own product

This actor collects only data that is publicly visible to any visitor of an Avvo lawyer profile β€” client reviews, star ratings, posted dates, and lawyer replies that Avvo itself displays without authentication. Users are responsible for complying with Avvo's Terms of Service and applicable laws around personal data, attorney advertising, and fair use. Do not use extracted reviews for harassment, defamation, deceptive advertising, or any illegal purpose, and respect reviewer anonymity where it is preserved on the source page.