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

Scrape Better Business Bureau (bbb.org) businesses: BBB rating, accreditation, phone, website, email, owner, address, years in business, review and complaint counts, plus optional reviews and complaints.
Turn Better Business Bureau (bbb.org) searches and business profiles into clean, structured lead and trust data: BBB rating, accreditation, phone, website, email, owner and contacts, address with coordinates, years in business, licenses, and review and complaint counts. Search by keyword and city, or paste bbb.org URLs. No login, no browser, and results in seconds.
plumber) and a location (for example Los Angeles, CA), or paste bbb.org search, category or profile URLs.| Field | What it does |
|---|---|
searchTerms | Keywords or categories, each combined with location |
location | City and state or province, or a ZIP code. Empty searches the whole country |
startUrls | bbb.org search, category or business profile URLs (detected automatically) |
maxItems | Maximum businesses saved (default 20) |
country | USA or CAN for the search terms |
accreditedOnly, minRating, distance, sort | Filters and result order |
includeProfileDetails | Open each profile (on) or save search listings only (off) |
scrapeReviews, maxReviewPages | Add customer reviews, 25 per page |
scrapeComplaints, maxComplaintPages | Add public complaints, 25 per page |
{
"searchTerms": ["plumber"],
"location": "Los Angeles, CA",
"maxItems": 20,
"accreditedOnly": false,
"scrapeReviews": true,
"maxReviewPages": 1
}
Each row is one business. Reviews and complaints appear as arrays when you switch them on. The Reviews and Complaints table views show one row per review or complaint.
| Field | Example |
|---|---|
name, profileUrl, bbbId, businessId | Business identity |
bbbRating, ratingReasons, isAccredited, accreditedSince | BBB grade and accreditation |
phone, email, website, socialMedia | Contact details |
ownerName, contacts[] | Public principals with titles |
addressLine1, city, stateCode, zipCode, latitude, longitude, servingAreas | Location |
primaryCategory, categories, businessType, yearsInBusiness, businessStarted, licenses[], operatingHours | Business facts |
reviewsTotal, averageStarRating, complaintsTotal, closedComplaintsLast3Years | Reputation counts |
reviews[], complaints[] | Optional details |
Sample (fictional business, real shape):
{
"type": "business",
"bbbId": "1216",
"businessId": "1000000001",
"profileUrl": "https://www.bbb.org/us/ca/los-angeles/profile/plumber/example-plumbing-co-1216-1000000001",
"name": "Example Plumbing Co.",
"alternateNames": ["Example Plumbing Company, Inc."],
"bbbRating": "A+",
"isAccredited": true,
"accreditedSince": "2019-04-30",
"primaryCategory": "Plumber",
"categories": ["Plumber", "Water Heater Repair"],
"phone": "(213) 555-0142",
"email": "office@example-plumbing.com",
"website": "https://www.example-plumbing.com",
"socialMedia": {"facebook": "https://www.facebook.com/exampleplumbing"},
"addressLine1": "100 Example St",
"city": "Los Angeles",
"stateCode": "CA",
"zipCode": "90012",
"latitude": 34.05,
"longitude": -118.24,
"businessType": "Corporation",
"yearsInBusiness": 12,
"businessStarted": "2014-03-01",
"ownerName": "Mr. John Example",
"contacts": [{"name": "Mr. John Example", "title": "President", "isPrincipal": true, "isManagement": true}],
"licenses": [{"licenseNumber": "1000001", "expirationDate": "2028-09-30", "agency": "Sacramento, CA"}],
"operatingHours": {"monday": "07:00-17:00", "saturday": "Closed", "sunday": "Closed"},
"reviewsTotal": 14,
"averageStarRating": 4.6,
"complaintsTotal": 1,
"closedComplaintsLast3Years": 1,
"reviews": [
{"reviewId": "1216_1000000001_1", "rating": 5, "author": "Jane D", "text": "Quick, clean and fairly priced.", "date": "2026-05-02", "businessResponseText": null, "businessResponseDate": null}
],
"scrapedAt": "2026-10-14T19:00:00.000Z"
}
You pay per result:
Example: 1,000 plumbers with full profile details cost about $14 in result fees. Platform usage (compute and proxy traffic) is billed on top and is small, typically well under $1 for 1,000 profiles. Businesses filtered out by "BBB Accredited only" or "Minimum BBB rating" are not charged.
Is it legal to scrape bbb.org? The scraper reads only public pages and data that anyone can see without logging in. Check that your use of the data complies with bbb.org's terms and with privacy laws like GDPR and CCPA, especially for personal names.
Do I need a login or my own proxy? No. Search and review data load over datacenter proxies. bbb.org protects profile pages with Cloudflare, so the scraper automatically uses US residential proxies for those pages.
How many results can I get? bbb.org shows at most 225 results per search. When you ask for more, the scraper also tries other sort orders and state and category filters, and removes duplicates. In our tests a nationwide "plumber" search reached 10,000 unique businesses. For very large lists, add more search terms or locations. The status message tells you when a search ran out of reachable results.
Why is a field empty? BBB only shows what the business has on file. Many profiles have no email, no hours or no licenses. Empty fields are null or an empty list, never invented.
Why do reviews or complaints come back empty for a big franchise? For some franchises bbb.org handles reviews and complaints on the headquarters profile, so the local profile lists none. Use the headquarters profile URL (headquartersUrl).
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.
searchTermsarrayOptionalSearch terms
Keywords or categories to search on bbb.org, for example "plumber", "roofing" or a company name. Each term is combined with the location below.
locationstringOptionalLocation
City and state (US) or city and province (Canada), for example "Los Angeles, CA" or "Toronto, ON". A ZIP code also works. Leave empty to search the whole country.
startUrlsarrayOptionaldefault []bbb.org URLs
Paste bbb.org search pages (https://www.bbb.org/search?...), category pages (https://www.bbb.org/us/ca/los-angeles/category/plumber) or business profile URLs (https://www.bbb.org/us/.../profile/...). The type is detected automatically.
maxItemsintegerOptionaldefault 20Max businesses
Maximum number of businesses to save across all searches and URLs.
countryenumOptionaldefault "USA"Country
Country for the search terms.
accreditedOnlybooleanOptionaldefault falseBBB Accredited only
Return only BBB Accredited businesses. Others are skipped and not charged.
minRatingenumOptionalMinimum BBB rating
Skip businesses rated below this letter grade (businesses without a rating are skipped too when this is set). Leave empty for any rating. Skipped businesses are not charged.
distanceintegerOptionalDistance (miles)
Only businesses within this many miles of the location. Leave empty for bbb.org's default area.
sortenumOptionaldefault "Relevance"Sort by
Order of search results.
includeProfileDetailsbooleanOptionaldefault trueOpen each business profile
On: open every profile for website, owner and contacts, years in business, licenses, hours, email, review and complaint counts. Off: save only the search listing (name, rating, accreditation, phone, address, categories), which is faster and cheaper.
scrapeReviewsbooleanOptionaldefault falseInclude customer reviews
Add each business's customer reviews (stars, author, text, date, business response). Charged per review.
maxReviewPagesintegerOptionaldefault 5Max review pages per business
Up to 25 reviews per page.
scrapeComplaintsbooleanOptionaldefault falseInclude complaints
Add each business's public complaints (type, status, date, text, responses). Charged per complaint.
maxComplaintPagesintegerOptionaldefault 5Max complaint pages per business
Up to 25 complaints per page.
maxConcurrencyintegerOptionaldefault 20Max concurrency
How many profiles are fetched in parallel.
proxyobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Search, review and complaint data load over the pool you pick here (datacenter by default). bbb.org protects profile pages with Cloudflare, which challenges datacenter IPs, so profile pages always load over US residential proxies.
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 | Name |
| bbbRating | any | BBB rating |
| isAccredited | any | Accredited |
| primaryCategory | any | Category |
| phone | any | Phone |
| website | any | Website |
| any | ||
| ownerName | any | Owner |
| city | any | City |
| stateCode | any | State |
| yearsInBusiness | any | Years in business |
| reviewsTotal | any | Reviews |
| complaintsTotal | any | Complaints |
| 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 |
|---|---|---|
| Business listing | One business saved from search results only (profile details turned off). | $0.003 |
| Business profile | One business saved with full profile details. | $0.014 |
| Complaint | One public complaint, only when complaints are turned on. | $0.007 |
| Review | One customer review, only when reviews are turned on. | $0.007 |
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/bbb-scraper').call({
"searchTerms": [
"plumber"
],
"location": "Los Angeles, CA",
"startUrls": [],
"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/bbb-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/bbb-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.
BBB business profiles with ratings and contact details.
Only BBB-accredited businesses in Canada.
Profile plus customer reviews and complaints.
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.