Goodfirms Agency Scraper - B2B Leads, Emails & Reviews
Pricing
from $0.60 / 1,000 basic agency leads
Goodfirms Agency Scraper - B2B Leads, Emails & Reviews
Extracts CRM-ready B2B agency leads from GoodFirms directory, category, country, and company profile pages. It can collect firmographics (hourly rate, team size, founding year, location), ratings and reviews, service focus, phone numbers, contact emails, and social profiles
Pricing
from $0.60 / 1,000 basic agency leads
Rating
0.0
(0)
Developer
Hypebridge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
What does GoodFirms Agency Scraper do?
GoodFirms Agency Scraper extracts CRM-ready B2B agency leads from GoodFirms directory, category, country, and company profile pages — without needing an official API. For every agency it can collect firmographics (hourly rate, team size, founding year, location), ratings and reviews, service focus, phone numbers, contact emails, and social profiles, and export in HubSpot- or Salesforce-ready columns.
Why scrape GoodFirms?
- Lead generation: Build targeted outreach lists of digital marketing, development, and design agencies with verified contact emails and phone numbers.
- Market research: Track agency ratings, pricing bands, employee ranges, and service focus across categories and countries.
- Competitor analysis: Monitor who ranks in your category, who is sponsored, which agencies are verified, and what their clients say in reviews.
- CRM enrichment: Match agencies by website domain and fill missing firmographics directly into HubSpot or Salesforce imports.
What data can GoodFirms Agency Scraper extract?
| Field | Type | Description |
|---|---|---|
name | String | Agency name |
websiteUrl | String | Official agency website |
email | String | Best contact email (profile or website) |
emailSource | String | goodfirms_profile, agency_website, or none |
telephone | String | Profile phone number |
rating / reviewCount | Number | GoodFirms rating and review volume |
hourlyRate / employees / founded | String | Firmographics |
location / city / region / country | String | Location fields |
services / serviceFocus | Array | Service catalog and focus percentages |
reviews | Array | Recent reviews with ratings and project details |
socialLinks | Array | LinkedIn, Facebook, Twitter/X profiles |
goodfirmsUrl | String | GoodFirms profile URL |
Full field list is in the Output tab.
How to scrape GoodFirms
- Create a free Apify account if you don't have one.
- Open GoodFirms Agency Scraper and click Try for free.
- Paste GoodFirms directory, category, country, or company profile URLs into Start URLs.
- Set Max agency leads to cap your run.
- Optionally enable Get agency details for phone, email, address, socials, and reviews.
- Click Start and download results from the Dataset tab (JSON, CSV, Excel, HTML).
How much will it cost?
Pay-per-event pricing — you pay per agency lead, not per compute unit:
| Event | When charged |
|---|---|
| Basic agency lead | Listing-only row (fast, cheap) |
| Detailed agency lead | Profile-enriched row with contacts, services, reviews |
| Email enriched | Small add-on when the website lookup finds an email GoodFirms didn't expose. The underlying Contact Details Scraper usage is billed to your account separately. |
Listing-only runs are the cheapest way to get names, websites, ratings, and pricing bands. Enable detail extraction and email enrichment only when you need contact-ready leads.
Input
See the Input tab for the full schema. Key fields:
| Parameter | Type | Default | Description |
|---|---|---|---|
startUrls | Array | digital marketing category | GoodFirms directory or profile URLs |
maxItems | Number | 100 | Max agency records to return |
getAgencyDetails | Boolean | false | Visit each profile for contacts, services, reviews |
includeReviews | Boolean | false | Get reviews on their own — fetches profiles, priced as detailed leads |
maxReviewsPerAgency | Number | 3 | Review depth per agency; 0 skips reviews on detail runs |
enrichEmails | Boolean | false | Look up missing emails on agency websites via Contact Details Scraper |
outputFormat | String | full | full, flat, hubspot, or salesforce |
Example: cheap category preview (listing-only)
{"startUrls": [{ "url": "https://www.goodfirms.co/directory/marketing-services/top-digital-marketing-companies" }],"maxItems": 500}
Example: contact-ready leads with emails
{"startUrls": [{ "url": "https://www.goodfirms.co/directory/marketing-services/top-digital-marketing-companies?locations=united-states" }],"maxItems": 100,"getAgencyDetails": true,"enrichEmails": true}
Example: specific agency profiles, Salesforce-ready
{"startUrls": [{ "url": "https://www.goodfirms.co/company/smartsites" },{ "url": "https://www.goodfirms.co/company/webfx" }],"maxItems": 10,"outputFormat": "salesforce"}
Output
Saved to the Dataset tab. Download as JSON, CSV, Excel, or HTML.
Each item includes:
- Identity: name, goodfirmsUrl, websiteUrl, logoUrl
- Trust signals: rating, reviewCount, badges, isVerified, isClaimed, isSponsored
- Firmographics: hourlyRate, priceRange, employees, founded, location, address
- Contacts: telephone, email, emailSource, allEmails, socialLinks
- Services: services, serviceFocus, usesAiTools, whyChoice
- Reviews: topReview, reviews (when enabled)
- Metadata: sourceUrl, page, rank, scrapedAt
Sample output
{"name": "SmartSites","goodfirmsUrl": "https://www.goodfirms.co/company/smartsites","websiteUrl": "https://www.smartsites.com/","rating": 4.9,"reviewCount": 16,"hourlyRate": "$100 - $149/hr","employees": "50 - 249","founded": "2011","city": "Jersey City","region": "New Jersey","country": "us","telephone": "2018706000","email": "contact@smartsites.com","emailSource": "goodfirms_profile","services": ["Web Development", "Digital Marketing"],"scrapedAt": "2026-07-12T12:00:00+00:00"}
Tips
- Start with a listing-only run (all toggles off) to preview the category cheaply, then re-run with Get agency details for your shortlist.
- Direct
goodfirms.co/company/...profile URLs always return full detail records, even with Get agency details off. - Any GoodFirms filter you apply in the browser (country, sorting, page) is preserved — just paste the filtered URL.
- Find emails on agency websites runs the Contact Details Scraper on agencies whose GoodFirms profile has no email; most agencies expose one on GoodFirms directly, so this add-on usually touches only a small share of your leads.
- Residential proxy is enabled by default and required — GoodFirms blocks datacenter IPs.
FAQ
Is scraping GoodFirms legal?
GoodFirms Agency Scraper only extracts publicly available business data. Always check the site's Terms of Service and ensure you have a legitimate purpose.
How do I import leads into HubSpot or Salesforce?
Set outputFormat to hubspot or salesforce. Column names then match common CRM import fields (domain, phone, city for HubSpot; Name, Website, BillingCity for Salesforce), so you can map the CSV export directly.
Where do the emails come from?
Most come straight from the agency's GoodFirms profile. When a profile has no email and Find emails on agency websites is enabled, the actor runs the proven Contact Details Scraper on the agency's own website and records every address it finds, with the page it came from in allEmails.
Support
- Bugs / feature requests → Issues tab
- Programmatic access → API tab
Disclaimer: Our Actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our Actors, when used for ethical purposes by Apify users, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.