
Congress Stock Trades Scraper
scrape.ly/store/querystone/congress-trades-scraperNewsBusiness
3 monthly users

Scrape Angi (Angie's List) home-service pros by category and ZIP code or Angi URLs: name, rating, reviews, phone, address, website, services, licenses, badges.
Extract home-service pros from Angi (formerly Angie's List) by service category and ZIP code, from Angi city directory pages, or from company profile URLs. Each company comes with phone number, rating, review count, years in business, address, services, licenses, insured and bonded status, badges, hours and, optionally, its newest customer reviews. No login, no browser, fast and cheap.
plumbing, roofing, hvac...) or plain words (water heater repair), in as many ZIP codes as you like.plumbing) and one or more ZIP codes (for example 10001). Or paste Angi directory or profile URLs.| Field | Description |
|---|---|
categories | Angi category slugs or plain words, for example plumbing, roofing, house-cleaning, water heater repair |
zipCodes | 5-digit US ZIP codes. Every category is searched in every ZIP code |
startUrls | Angi city directory URLs (/companylist/us/tx/austin/roofing.htm) or profile URLs (...-reviews-123.htm) |
maxItems | Maximum companies in total (default 20, 0 = no limit) |
maxItemsPerSearch | Optional cap per category and ZIP code |
includeProfileDetails | Open each profile for phone, services, licenses, hours (default on) |
maxReviewsPerCompany | Newest reviews to add per company (default 0) |
{
"categories": ["plumbing", "roofing"],
"zipCodes": ["10001", "78701"],
"maxItems": 100,
"maxItemsPerSearch": 25,
"maxReviewsPerCompany": 5
}
| Field | Description |
|---|---|
name, phone, profileUrl | Company name, phone (where Angi shows it) and Angi profile link |
street, city, state, postalCode, address | Business address |
rating, reviewCount, recommendedRate, ratingBreakdown, ratingDistribution | Ratings: overall, % recommended, per-criterion scores and star counts |
yearsInBusiness, description | Experience and the company's own description |
services, tasksOffered | All services on the profile, and the ones matching your search |
licenses, insured, bonded | Licensing and insurance as shown on Angi |
awards, superServiceAward, isSponsored, isAdvertiser | Badges and listing type |
emergencyServices, freeEstimates, warrantiesOffered, veteranOwned, bilingual, paymentMethods, serviceHours | Business details |
responseRate, responseTimeMinutes, recentLeadCount | Responsiveness on Angi |
logoUrl, photos, bestReview, reviews | Media and reviews |
searchCategory, searchZip, scrapedAt | Which search found the company, and when |
Example (one company, shortened, fictional data):
{
"id": "1a2b3c4d-0000-1111-2222-333344445555",
"name": "Example Plumbing & Heating LLC",
"profileUrl": "https://www.angi.com/companylist/us/ny/brooklyn/example-plumbing-heating-llc-reviews-1.htm",
"phone": "7185550142",
"street": "100 Example Street",
"city": "Brooklyn",
"state": "NY",
"postalCode": "11220",
"address": "100 Example Street, Brooklyn, NY 11220",
"rating": 4.77,
"reviewCount": 31,
"recommendedRate": 38,
"ratingBreakdown": {"quality": 4.58, "value": 3.92, "responsiveness": 4.5, "punctuality": 4.42, "professionalism": 4.42, "overall": 4.77},
"yearsInBusiness": 23,
"services": ["Drain Clog or Blockage - Clear", "Gas Piping", "Water Main - Install, Replace or Repair"],
"tasksOffered": ["Faucets, Fixtures and Pipes - Repair or Replace"],
"licenses": [],
"insured": false,
"bonded": false,
"superServiceAward": false,
"emergencyServices": true,
"freeEstimates": false,
"paymentMethods": ["CREDIT_CARD"],
"serviceHours": [{"day": "Monday", "hours": "Open 24 hours"}],
"isSponsored": true,
"responseRate": 100,
"responseTimeMinutes": 690,
"ratingDistribution": {"1": 0, "2": 1, "3": 1, "4": 2, "5": 27},
"reviews": [
{"author": "Jane D.", "rating": 5, "date": "2026-09-14T10:23:38", "text": "Very thorough, neat and clean.", "service": "Drain Clog or Blockage Clearing", "cost": 275, "verified": true}
],
"searchCategory": "Plumbing",
"searchZip": "10001",
"scrapedAt": "2026-10-16T02:00:00Z"
}
You pay $1.60 per 1,000 companies ($0.0016 per company), plus a small amount of platform usage (compute and datacenter proxy traffic, usually a few cents per 1,000 companies). Reviews are included in the company row at no extra charge. Example: 1,000 companies with profile details cost about $1.60 in events plus roughly $0.05 of usage. You are never charged for failed or empty results.
Is it legal to scrape Angi? The scraper reads only public pages that anyone can open without an account. Make sure your use of the data (for example cold calling or emailing) follows the laws that apply to you.
Do I need an Angi account or a proxy? No account. The default datacenter proxy works; if Angi rate-limits it, the scraper switches to US residential exits by itself.
How many results can I get? Angi lists hundreds to a few thousand pros per category and ZIP code (for example about 1,300 plumbers for ZIP 10001). Use several ZIP codes for wider coverage; duplicates across ZIP codes are removed.
Why is a field empty? Angi does not show every field for every pro. Phone numbers, licenses and hours appear only when the pro has them on the profile. Turn off profile details for faster runs with search data only (no phone or licenses).
Can I schedule it or use the API? Yes. Schedule runs in the console, or start them through the API and read the dataset as JSON, CSV or Excel.
I used another Angi scraper. Is the input compatible? The old category (single slug), zipCodes and maxItems fields work as they are.
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.
categoriesarrayOptionalService categories
Angi service categories to search, as the slug from Angi URLs (plumbing, electrical, roofing, hvac, house-cleaning, landscaping, handyman-service, tree-service, pest-control, painting...) or plain words ("water heater repair"). Each category is searched in every ZIP code below.
zipCodesarrayOptionalZIP codes
5-digit US ZIP codes to search. Angi lists the pros that serve each ZIP code.
startUrlsarrayOptionalAngi URLs
Optional Angi URLs: city directory pages (https://www.angi.com/companylist/us/tx/austin/roofing.htm) or company profile pages (https://www.angi.com/companylist/us/ny/brooklyn/...-reviews-123.htm). Directory pages are searched in the city's ZIP codes (or in the ZIP codes above, if set).
maxItemsintegerOptionaldefault 20Max companies
Maximum number of companies to save in total (0 = no limit).
maxItemsPerSearchintegerOptionaldefault 0Max companies per search
Optional cap per category and ZIP code (or per directory ZIP), so every ZIP code gets its share of a multi-ZIP job. 0 = no per-search cap.
includeProfileDetailsbooleanOptionaldefault trueInclude profile details (phone, services, licenses)
Open each company's profile page to add the phone number (shown for many pros), the full list of services, licenses, insured and bonded status, service hours and the star distribution. Turn off for faster, lighter runs with search data only.
maxReviewsPerCompanyintegerOptionaldefault 0Reviews per company
Number of the newest customer reviews to add to each company (0 = none). Reviews are included in the company row at no extra charge.
maxConcurrencyintegerOptionaldefault 10Max concurrency
Profiles loaded in parallel.
proxyobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter exits work for Angi; the scraper moves to US residential exits automatically if Angi rate-limits them.
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 | any | Company |
| phone | any | Phone |
| rating | any | Rating |
| reviewCount | any | Reviews |
| yearsInBusiness | any | Years in business |
| address | any | Address |
| city | any | City |
| state | any | State |
| postalCode | any | ZIP |
| services | any | Services |
| licenses | any | Licenses |
| insured | any | Insured |
| superServiceAward | any | Super Service Award |
| searchCategory | any | Category |
| searchZip | any | Searched ZIP |
| profileUrl | any | Profile |
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 |
|---|---|---|
| Company | One Angi company saved (search data plus profile details when enabled). Reviews are included at no extra charge. | $0.0016 |
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/angi-scraper').call({
"categories": [
"plumbing"
],
"zipCodes": [
"10001"
],
"maxItems": 20,
"proxy": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// 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/angi-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/angi-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.
Company profiles with 5 reviews each.
Pros by category and ZIP code, with profile details.
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.