# GoodFirms Company Scraper - Low-cost💲🔥🔍🏢 (`delectable_incubator/goodfirms-company-scraper-low-cost`) Actor

🏢 Easily scrape GoodFirms company profiles & reviews. Extract company names, ratings, counts, descriptions, hourly rates, employee counts, founded years, location, company websites, logos & profile URLs. Perfect for agency research, reputation monitoring, lead generation & competitive analysis 📊🚀

- **URL**: https://apify.com/delectable\_incubator/goodfirms-company-scraper-low-cost.md
- **Developed by:** [Prime Scrape](https://apify.com/delectable_incubator) (community)
- **Categories:** Lead generation, E-commerce, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $0.00005 / actor start

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

<p align="center">
  <img src="https://i.ibb.co/jkNS73wX/readme.png" alt="GoodFirms Company Search Scraper" width="100%">
</p>

***

## 🏢 GoodFirms Company Search Scraper | Bulk Company Directory Scraper | Apify Actor ⭐🔍

### 🚀 Scrape GoodFirms Companies in Bulk (No Code)

The **GoodFirms Company Search Scraper (Apify Actor)** is a powerful, scalable and SEO-optimized business intelligence tool designed to extract company information from **GoodFirms directory pages**.

Search and collect company profiles across multiple GoodFirms directory URLs with automatic pagination and structured data extraction.

Perfect for **B2B lead generation, agency research, competitor analysis, market intelligence, business directories, sales prospecting, AI datasets, company research and business intelligence**.

***

### 🔥 Why This GoodFirms Company Scraper?

✔ Scrape GoodFirms company directory results

✔ Supports **bulk directory URL scraping**

✔ Process multiple GoodFirms URLs in a single run

✔ Automatic pagination support

✔ Extract detailed company information

✔ Collect company ratings and review counts

✔ Extract hourly rates and employee counts

✔ Extract company locations and founding years

✔ Collect company descriptions and websites

✔ Extract company logos

✔ Extract verified review information

✔ Clean structured JSON / CSV / Excel output

✔ No coding required

✔ Fast & scalable cloud execution

***

### 🎯 What This Scraper Does

This Apify Actor extracts structured company data directly from GoodFirms directory and search pages.

#### 📌 Core Features

✅ Scrape GoodFirms company directories

✅ Bulk GoodFirms URL support

✅ Automatic pagination with `?page=N`

✅ Set a maximum number of companies per URL

✅ Extract company profile URLs

✅ Extract official company websites

✅ Extract company names and descriptions

✅ Extract ratings and review counts

✅ Extract hourly pricing information

✅ Extract employee/company size information

✅ Extract founded year

✅ Extract company locations

✅ Extract company logos

✅ Extract verified review information when available

***

### ⚡ Input Configuration

#### 🔥 BULK GOODFIRMS DIRECTORY URL MODE

Add one or multiple GoodFirms directory URLs. Each URL is processed independently with automatic pagination.

```
{
  "urls": [
    "https://www.goodfirms.co/directory/platforms/top-web-design-companies",
    "https://www.goodfirms.co/software-development-companies",
    "https://www.goodfirms.co/directory/platforms/top-mobile-app-development-companies"
  ],
  "maxitems": 90
}
```

#### 📄 Maximum Companies

Use `maxitems` to control the maximum number of companies extracted **per URL**.

For example:

```
{
  "maxitems": 100
}
```

The scraper automatically navigates through available GoodFirms pages until the requested limit is reached or no more results are available.

***

### 📊 Extracted Company Data

| Field                  | Description                   |
| ---------------------- | ----------------------------- |
| name                   | Company name                  |
| profileUrl             | GoodFirms company profile URL |
| websiteUrl             | Official company website      |
| logoUrl                | Company logo URL              |
| rating                 | GoodFirms company rating      |
| reviewCount            | Number of company reviews     |
| description            | Company description           |
| hourlyRate             | Company hourly rate           |
| employees              | Number of employees           |
| founded                | Company founded year          |
| location               | Company location              |
| verifiedReviewRating   | Verified review rating        |
| verifiedReviewText     | Verified review text          |
| verifiedReviewProvider | Verified review provider      |

***

### 📦 Example Output

```
{
  "name": "Example Digital Agency",
  "profileUrl": "https://www.goodfirms.co/company/example-digital-agency",
  "websiteUrl": "https://www.example.com",
  "logoUrl": "https://www.goodfirms.co/images/example-logo.png",
  "rating": "5.0",
  "reviewCount": "25",
  "description": "A full-service digital agency specializing in web development and software solutions.",
  "hourlyRate": "$50 - $99/hr",
  "employees": "50 - 249",
  "founded": "2015",
  "location": "New York, United States",
  "verifiedReviewRating": "5.0",
  "verifiedReviewText": "Excellent service and communication.",
  "verifiedReviewProvider": "Clutch"
}
```

***

### 💡 Use Cases

This GoodFirms company scraper is ideal for:

🏢 **B2B Company Research**

🧲 **Lead Generation**

💼 **Sales Prospecting**

📊 **Agency Intelligence**

🔍 **Competitor Research**

📈 **Market Research**

🌍 **Business Directory Building**

💻 **Software Agency Research**

🎨 **Web Design Agency Research**

📱 **Mobile App Development Research**

💰 **Pricing Intelligence**

⭐ **Agency Reputation Analysis**

🤖 **AI Training Datasets**

📊 **Business Intelligence**

⚙️ **Automated Data Pipelines**

***

### 🚀 Key Features

⚡ **Bulk URL Scraping**

🔍 **GoodFirms Directory Extraction**

📄 **Automatic Pagination**

🏢 **Company Profile Extraction**

⭐ **Ratings & Review Counts**

💰 **Hourly Rate Extraction**

👥 **Employee Count Extraction**

📅 **Founded Year Extraction**

📍 **Company Location Extraction**

🌐 **Website URL Extraction**

🖼️ **Company Logo Extraction**

✅ **Verified Review Data**

📊 **Structured Dataset Output**

🔁 **Scalable Cloud Execution**

***

### 📤 Output Formats

The scraped dataset can be exported through Apify in multiple formats:

✔ JSON

✔ CSV

✔ Excel / XLSX

✔ XML

✔ HTML

✔ RSS

***

### 📊 Preconfigured Dataset View

The Actor includes a ready-to-use **Overview** dataset view displaying the main company information in a structured table.

The view includes:

- Company Name
- GoodFirms Profile URL
- Company Website
- Company Logo
- Rating
- Number of Reviews
- Company Description
- Hourly Rate
- Number of Employees
- Founded Year
- Location
- Verified Review Rating
- Verified Review Text
- Verified Review Provider

Perfect for:

📊 Data filtering

📈 Market analysis

📋 Business reporting

🔎 Company research

📤 Dataset exporting

***

### 🌐 Proxy Support

The Actor supports Apify Proxy configuration for reliable and scalable scraping.

The default configuration uses:

```
{
  "useApifyProxy": true,
  "apifyProxyGroups": [
    "RESIDENTIAL"
  ]
}
```

This helps maintain reliable access while processing multiple GoodFirms directory pages.

***

### 🔥 Why Use This GoodFirms Scraper?

✔ Built specifically for GoodFirms directory data

✔ Bulk URL processing

✔ Automatic pagination

✔ Detailed company information

✔ Fast and scalable extraction

✔ Structured datasets

✔ No coding required

✔ Ready for automation workflows

✔ Ideal for B2B intelligence

✔ Perfect for lead generation and market research

***

### 💸 Pricing

This scraper runs on a **pay-per-result pricing model**.

You only pay for successfully extracted company records.

💳 **Price: $1.99 / 1,000 results**

***

### ❓ FAQ

#### Can I scrape multiple GoodFirms URLs at once?

Yes. You can provide multiple GoodFirms directory URLs in the `urls` input field. Each URL is processed independently.

#### Does the scraper support pagination?

Yes. The Actor automatically navigates through GoodFirms pagination until the maximum number of companies is reached or no more results are available.

#### Can I limit the number of companies?

Yes. Use the `maxitems` parameter to define the maximum number of companies to extract per URL.

#### What company information can I extract?

The Actor can extract company names, GoodFirms profile URLs, websites, logos, ratings, review counts, descriptions, hourly rates, employee counts, founded years, locations and verified review information when available.

#### Can I scrape different GoodFirms categories?

Yes. You can provide different GoodFirms directory URLs, including categories such as web design, software development, mobile app development and other company directories available on GoodFirms.

#### Is coding required?

No. This is a fully no-code Apify Actor.

#### Can I export the scraped data?

Yes. Apify allows you to export the dataset in JSON, CSV, Excel and other supported formats.

***

### ⚠️ Disclaimer

This tool is an independent scraper and is not affiliated with, endorsed by, or sponsored by GoodFirms.

GoodFirms and all related trademarks belong to their respective owners.

***

### 🔗 Related Actors — PrimeScrape Ecosystem

We are building a complete **PrimeScrape Business Intelligence & Data Extraction Suite**.

🚀 More company, business, directory, lead generation and market intelligence scrapers coming soon.

***

### 🌍 PrimeScrape Ecosystem

Built for modern data extraction and automation workflows.

🏢 **Company Intelligence**

🧲 **Lead Generation**

📊 **Market Research**

🔍 **Competitor Intelligence**

⭐ **Reputation Intelligence**

🤖 **AI Training Datasets**

📈 **Business Intelligence**

⚙️ **Automation Pipelines**

🌍 **Large-Scale Data Collection**

***

### 📬 Support

⭐⭐⭐⭐⭐ Leave a review if you enjoy this scraper.

📩 Need custom scraping solutions, enterprise integrations, bulk datasets or dedicated extraction workflows?

Contact **PrimeScrape** directly through Apify.

# Actor input Schema

## `urls` (type: `array`):

List of GoodFirms company directory URLs to scrape.

Examples:

🌐 Top web design companies:
https://www.goodfirms.co/directory/platforms/top-web-design-companies

💻 Top software development companies:
https://www.goodfirms.co/software-development-companies

Each URL is paginated (?page=N) independently until maxitems is reached or no more results exist.

⚠️ URLs must be from goodfirms.co.

## `maxitems` (type: `integer`):

Maximum number of companies to extract per URL.

## `proxyConfiguration` (type: `object`):

Proxies to use for the requests.

## Actor input object example

```json
{
  "urls": [
    "https://www.goodfirms.co/directory/platforms/top-web-design-companies"
  ],
  "maxitems": 90,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        "https://www.goodfirms.co/directory/platforms/top-web-design-companies"
    ],
    "maxitems": 90,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("delectable_incubator/goodfirms-company-scraper-low-cost").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "urls": ["https://www.goodfirms.co/directory/platforms/top-web-design-companies"],
    "maxitems": 90,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("delectable_incubator/goodfirms-company-scraper-low-cost").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.goodfirms.co/directory/platforms/top-web-design-companies"
  ],
  "maxitems": 90,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call delectable_incubator/goodfirms-company-scraper-low-cost --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,delectable_incubator/goodfirms-company-scraper-low-cost"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/rQ5EqWEzrrzQv6BZg/builds/nz2YkgGdgbpDiUUFS/openapi.json
