Avvo Scraper | US Lawyer Directory | $4 / 1k
Pricing
$3.99 / 1,000 results
Avvo Scraper | US Lawyer Directory | $4 / 1k
Get verified US attorney profiles from Avvo.com including names, contacts, firms, ratings, practice areas, and locations. Build legal directories or power research tools with clean, structured data. $4 / 1k listings.
Pricing
$3.99 / 1,000 results
Rating
5.0
(2)
Developer

Fatih Tahta
Actor stats
4
Bookmarked
34
Total users
9
Monthly active users
7.4 days
Issues response
2 days ago
Last modified
Categories
Share
Avvo Scraper | US Lawyer Directory
Slug: fatihtahta/avvo-scraper
Overview
Avvo Scraper | US Lawyer Directory collects structured lawyer listing data from Avvo, including profile URLs, names, practice areas, locations, contact details, ratings, reviews, and related professional attributes. It supports broad directory collection by legal category and state, as well as targeted collection from specific Avvo pages. Avvo is one of the most widely used U.S. legal directories, making it a practical source for market visibility, attorney discovery, and regional service analysis. The actor helps teams automate repetitive collection workflows and produce consistent, analysis-ready records at scale. This reduces manual research effort and accelerates reporting, enrichment, and operational use cases.
Why Use This Actor
- Market research and analytics teams: Measure attorney supply, practice-area density, and regional activity across states to support benchmarking and trend analysis.
- Product and content teams: Identify service coverage gaps, prioritize legal topics, and improve localized content using real directory signals.
- Developers and data engineering teams: Feed structured records into ETL jobs, internal databases, or BI dashboards with predictable JSON output.
- Lead generation and enrichment teams: Build attorney prospect lists and enrich CRM profiles with public professional details and profile links.
- Monitoring and competitive intelligence teams: Track changes in listings, ratings, and profile presence over time for ongoing competitive visibility.
Input Parameters
Provide any combination of URLs, queries, and filters to match your collection goals.
| Parameter | Type | Description | Default |
|---|---|---|---|
searchByCategory | string | Practice area category to collect. Allowed values: bankruptcy-debt-lawyer, consumer-protection-lawyer, government-lawyer, business-lawyer, immigration-lawyer, intellectual-property-lawyer, criminal-defense-lawyer, lawsuits-disputes-lawyer, personal-injury-lawyer, employment-labor-lawyer, estate-planning-lawyer, family-lawyer, real-estate-lawyer, civil-rights-lawyer. | real-estate-lawyer |
searchByLocation | string | U.S. state filter. Allowed values: al, ak, az, ar, ca, co, ct, de, dc, fl, ga, hi, id, il, in, ia, ks, ky, la, me, md, ma, mi, mn, ms, mo, mt, ne, nv, nh, nj, nm, ny, nc, nd, oh, ok, or, pa, ri, sc, sd, tn, tx, ut, vt, va, wa, wv, wi, wy. | wy |
startUrls | string[] | One or more Avvo URLs to collect directly (for example: search pages, legal category pages, or lawyer profile pages). | – |
limit | integer | Maximum number of listings to save per query. Use lower values for sampling and higher values for broader coverage. Minimum: 10. | 50000 |
proxyConfiguration | object | Connection settings used to keep larger runs stable. | Apify proxy with RESIDENTIAL group |
Example Input
{"searchByCategory": "family-lawyer","searchByLocation": "ca","startUrls": ["https://www.avvo.com/attorneys.html","https://www.avvo.com/search/lawyer_search"],"limit": 1500,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Output
6.1 Output destination
The actor writes results to an Apify dataset as JSON records. And the dataset is designed for direct consumption by analytics tools, ETL pipelines, and downstream APIs without post-processing.
6.2 Record envelope (all items)
Every record includes these stable identifiers:
- type (string, required)
- id (number, required)
- url (string, required)
Recommended idempotency key: type + ":" + id.
Use this key to deduplicate records and perform reliable upserts when the same entity appears in multiple runs.
6.3 Examples
Example: profile (type = "profile")
{"type": "profile","id": 248309,"url": "https://www.avvo.com/attorneys/94133-ca-lindsay-spiller-248309.html","name": "Lindsay Gunn Spiller","jobTitle": "Lindsay Spiller is a San Francisco business attorney and founder of Spiller Law.","address": "595 Pacific Avenue, Fourth Floor, San Francisco, CA","city": "San Francisco","state": "CA","primary_phone": "4155019736","specialties": ["Business","Estate planning","Entertainment","Intellectual property"],"practiceAreas": [{ "name": "Business", "share": "25%" },{ "name": "Entertainment", "share": "25%" }],"website": "https://www.spillerlaw.com/","linkedin": "http://www.linkedin.com/in/spillerlaw","rating": 5,"reviewCount": 58,"endorsementsReceived": 6,"education": [{"school": "Georgetown University Law Center","degree": "1985 JD Juris Doctor","year": "1985"}],"awards": [{"title": "Top 100 Entertainment Lawyers in State of California","year": "2015"}],"bioSummary": "Trusted advisor to startups, small businesses, and estate planning clients.","yearsActiveEstimate": 46}
Field reference
Profile fields (type = "profile")
- type (string, required): Record category.
- id (number, required): Stable profile identifier.
- url (string, required): Canonical profile URL.
- name (string, optional): Lawyer name as displayed.
- jobTitle (string, optional): Headline or profile summary line.
- address (string, optional): Street-level address text.
- city (string, optional): City value.
- state (string, optional): State/region code.
- primary_phone (string, optional): Primary contact phone number.
- specialties (array[string], optional): Specialty tags listed on the profile.
- practiceAreas (array[object], optional): Practice area breakdown.
- practiceAreas.name (string, optional): Practice area label.
- practiceAreas.share (string, optional): Share value as displayed.
- website (string, optional): External website URL.
- linkedin (string, optional): LinkedIn URL.
- rating (number, optional): Rating value.
- reviewCount (number, optional): Total number of reviews.
- endorsementsReceived (number, optional): Endorsement count.
- education (array[object], optional): Education entries.
- education.school (string, optional): School name.
- education.degree (string, optional): Degree text.
- education.year (string, optional): Graduation year or year label.
- awards (array[object], optional): Award entries.
- awards.title (string, optional): Award title.
- awards.year (string, optional): Award year.
- bioSummary (string, optional): Short biographical summary.
- yearsActiveEstimate (number, optional): Estimated years active.
Data guarantees & handling
- Best-effort extraction: fields may vary by region/session/availability/UI experiments.
- Optional fields: null-check in downstream code.
- Deduplication: recommend
type + ":" + id.
How to Run on Apify
- Open the actor in Apify Console.
- Configure your search parameters (for example, practice area, state, and optional direct URLs).
- Set the maximum number of outputs to collect.
- Click Start and wait for the run to finish.
- Download results in JSON, CSV, Excel, or other supported formats.
Scheduling & Automation
Scheduling
Automated Data Collection You can schedule recurring runs to keep your dataset current without manual reruns. This is useful for periodic reporting, enrichment refreshes, and monitoring workflows.
- Navigate to Schedules in Apify Console
- Create a new schedule (daily, weekly, or custom cron)
- Configure input parameters
- Enable notifications for run completion
- (Optional) Add webhooks for automated processing
Integration Options
This actor is built for structured, repeatable extraction of Avvo lawyer profile data. Below are practical integration patterns specifically suited to Avvo directory workflows:
-
Webhooks (Recommended for Production Pipelines)
Trigger a webhook after each run to:- Push lawyer profiles into your CRM (e.g., HubSpot, Salesforce)
- Sync new attorneys into a lead database
- Update internal enrichment APIs
- Trigger change-detection logic for ratings or review count shifts
Use the recommended idempotency keytype + ":" + idto safely upsert profiles across recurring runs.
-
CRM Enrichment (Lead Generation Workflows)
Automatically enrich law firm or attorney records with:- Avvo rating and review count
- Practice area distribution
- Profile URL and LinkedIn
- Years active estimate
Ideal for outbound prospecting, segmentation, and territory mapping.
-
Monitoring & Change Tracking Pipelines
Run the actor weekly or monthly and compare:- Rating changes
- Review count growth
- Profile visibility changes
- Newly listed attorneys by state or category
Store snapshots in a database and compute diffs for competitive intelligence.
-
Data Warehouse / BI Dashboards
Stream results into Snowflake, BigQuery, Redshift, or Postgres for:- State-level attorney density dashboards
- Practice-area distribution analysis
- Market saturation modeling
- Regional trend reporting
-
Google Sheets / Airtable (Lightweight Ops)
Append structured profile records to Sheets for:- Manual review and tagging
- Outreach prioritization
- Small-scale sampling
- QA validation before CRM import
-
Zapier / Make Automation
Trigger workflows when new attorneys are discovered:- Add to email sequencing tools
- Notify Slack when high-rating attorneys appear
- Route records by state to different teams
-
Slack / Email Notifications
Send run summaries including:- Total profiles collected
- Category + state used
- New vs existing IDs detected
- Runtime duration
Useful for ongoing monitoring campaigns.
Typical Production Architecture
Avvo Scraper → Apify Dataset → Webhook → Backend API → Database (with idempotent upserts) → CRM / BI Dashboard
This ensures repeatable, scalable, and deduplicated attorney directory ingestion.
Performance
Estimated run durations:
- Small runs (< 1,000 outputs): ~3–5 minutes
- Medium runs (1,000–5,000 outputs): ~5–35 minutes
- Large runs (5,000+ outputs): ~35–60+ minutes
Execution time varies based on filters, result volume, and how much information is returned per record.
Compliance & Ethics
Responsible Data Collection
This actor collects publicly available lawyer directory information from {{TARGET_SITE}} for legitimate business purposes, including:
- legal services research and market analysis
- lead enrichment and directory intelligence
- regional competitive monitoring
Users are responsible for ensuring their use complies with applicable laws, regulations, and contractual obligations. This section is informational and not legal advice.
Best Practices
- Use collected data in accordance with applicable laws, regulations, and the target site’s terms
- Respect individual privacy and personal information
- Use data responsibly and avoid disruptive or excessive collection
- Do not use this actor for spamming, harassment, or other harmful purposes
- Follow relevant data protection requirements where applicable (e.g., GDPR, CCPA)
Support
For help, open an issue on the actor page in Apify Console. Include the input used (with sensitive values redacted), the run ID, a brief expected vs actual behavior description, and an optional small output sample to speed up troubleshooting.