# DesignRush B2B Agency Scraper (`haketa/designrush-scraper`) Actor

Extract B2B agency listings from DesignRush.com — web design, digital marketing, branding, SEO, dev firms with hourly rate, minimum budget, employees, founded year, full contact (email + phone + address), verified reviews and award badges. No API key required.

- **URL**: https://apify.com/haketa/designrush-scraper.md
- **Developed by:** [Haketa](https://apify.com/haketa) (community)
- **Categories:** Lead generation, Developer tools, Jobs
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## DesignRush Scraper — Premium B2B Agency Leads with Minimum Budget Data

**Extract 40,000+ verified B2B agencies from DesignRush** — the brand-discovery directory used by Fortune 500 procurement teams. Every record ships with **email, phone, full street address, hourly rate, minimum project budget, employees, founded year, and inline verified reviews** — clean JSON / CSV / Excel, no manual exports.

This is the **richest agency dataset on the open web** packaged into a single Apify actor: better contact coverage (100% email + phone in our sample), more granular pricing signals (minimum budget AND hourly rate), and full review bodies embedded in each record.

---

### ⭐ Why this scraper beats every alternative

DesignRush is the directory **Fortune 500 marketing departments use to shortlist agencies**. Unlike GoodFirms or Clutch, every listed agency declares:

- **Minimum project budget** (`$10K–$25K`, `$50K–$100K`, `$100K+`, `Inquire`) — a fit signal the other directories simply don't carry
- **DesignRush Design Awards** — third-party validated top-quality marker, ideal for elite-tier targeting
- **Notable client logos** — Microsoft, Sony, P&G class brands they've served (instant trust signal for outreach)
- **Portfolio gallery** — visual work samples directly in the record

You get this data **at scale**: 50 agencies per category page (vs 10 on competitors) → 5× faster bulk discovery, lower cost per lead.

#### Who buys this data

- **B2B sales teams** running outbound to digital agencies
- **Agency-tech vendors** (project management tools, time tracking, dev tools, design plugins) targeting their ICP
- **Account-based marketing (ABM) teams** building hand-picked Tier-1 account lists
- **Procurement / RFP teams** sourcing creative & marketing partners with budget signals
- **Investors / M&A analysts** screening acquisition targets in the creative-services space
- **Recruiters & talent platforms** placing creatives in award-winning agencies
- **PR & comms teams** monitoring agency awards & client wins for media outreach
- **SaaS founders** building "agencies hire SaaS" lookalike pipelines
- **Market researchers & strategists** sizing the design / digital-marketing TAM

If you've ever paid four-figure prices to ZoomInfo, Apollo, Crunchbase, or LinkedIn Sales Navigator for agency leads — this scraper delivers a richer, more specific dataset for a fraction of the cost.

---

### 🔑 SEO / keyword reference

This scraper is the answer for: **B2B agency scraper**, **DesignRush data export**, **B2B lead generation**, **digital agency database**, **agency directory scraper**, **design agency leads**, **web design companies database**, **digital marketing agencies scraper**, **branding agency leads**, **SEO agency database**, **mobile app design firms**, **UI/UX design companies scraper**, **packaging design agency leads**, **agency email scraper**, **agency phone number extraction**, **minimum project budget data**, **hourly rate database**, **award-winning agency targeting**, **ABM lead lists**, **outbound sales pipeline**, **agency competitive intelligence**, **GTM (go-to-market) intelligence**, **lookalike agency targeting**.

---

### 🎯 What you get — per agency record

#### 🟢 Identity & contact (always present)
- **Agency name** + slug
- **Logo URL** (high-resolution image)
- **Agency website** (UTM-stripped, ready to use)
- **DesignRush profile URL** (canonical)
- **Tagline** + **long description** (about / summary)
- **Email** ✉️ — direct business contact
- **Phone** ☎️ — direct business contact
- **Social links** — LinkedIn, Twitter / X, Facebook, Instagram, YouTube

#### 🟢 Lead-gen meta — the "gold" fields
- **Average hourly rate** — `$50/hr`, `$100/hr`, `$150/hr`, `$200/hr`, `$300/hr`+
- **Minimum project budget** ⭐ — `$1K–$10K`, `$10K–$25K`, `$25K–$50K`, `$50K–$100K`, `$100K+`, or `Inquire`
- **Employees range** — `Under 49`, `50–99`, `100–249`, `250–499`, `500–999`, `1,000+`
- **Founded year** — when the agency was established
- **Aggregate rating** (0–5) + **verified review count**

#### 🟢 Headquarters & offices
- **Headquarters** — full **structured address**: street, city, state, country, postal code
- **All offices** — every listed location with city + country

#### 🟢 Services & industries
- **Top services** — the 3 primary services the agency advertises (Web Design, Branding, Digital Marketing, etc.)
- **Full services list** — every service the agency offers (often 80+ entries per agency)
- **Industries served** — sectors (eCommerce, Healthcare, Finance, Automotive, Fashion, SaaS, etc.)

#### 🟢 Verified reviews — full body, no extra cost
- Embedded in every record when `scrapeReviews=true` (default)
- Per review: **rating, project name, full review summary (often 1,000+ characters), reviewer name, reviewer role, date published**
- Average: ~15 reviews per agency record

#### 🟢 Portfolio gallery
- **Portfolio thumbnail URLs** — direct image links to displayed work samples

#### 🟡 Bonus signals (when the agency provides them)
- DesignRush **Design Award** badges (elite tier marker)
- **Notable client** names (Microsoft, Sony, P&G class brands)
- **Portfolio count** (e.g. "44 Projects Listed")

---

### 💰 Real-world use cases — money-making scenarios

#### 1. Build a 5,000-lead outbound list for B2B SaaS targeting agencies
You sell a creative-team productivity tool. Run:
```json
{
  "categorySlugs": ["web-design-companies", "branding-agencies", "digital-marketing"],
  "locationSlugs": ["us"],
  "minRating": 4.0,
  "minReviews": 5,
  "maxRecords": 5000,
  "scrapeReviews": false
}
````

→ 5,000 mid-to-premium US agencies with **email, phone, hourly rate, minimum budget**, ready for Apollo, Smartlead, Lemlist, or HubSpot import.

#### 2. Elite-tier targeting — only award-winning agencies

You sell premium services to top agencies and want only the cream. Run:

```json
{
  "categorySlugs": ["web-design-companies", "design-agencies"],
  "awardWinnersOnly": true,
  "minRating": 4.8,
  "minReviews": 10,
  "scrapeReviews": true
}
```

→ Hand-picked Tier-1 list with reviews for personalized outreach.

#### 3. ABM segmentation by budget × team-size × geography

You sell to mid-market agencies (`50–99 employees`) in California willing to spend $50K+ on a project. Filter post-export by `minBudget` + `employeesRange` + `headquarters.state` — instant ICP segment.

#### 4. Competitive intelligence — track an agency vertical

Schedule a weekly run on `branding-agencies` + `naming-agencies`. Diff against last week's dataset → new reviews, new clients, new award badges. Sales-trigger gold.

#### 5. Recruitment & talent placement

You place creative talent. Pull every award-winning agency by city → know exactly where the top creative jobs sit, with employee bands and hiring signals.

#### 6. PR & media outreach pipeline

You're a PR firm. Pull all agencies with new DesignRush awards in the last month (compare scrape datasets) → pitch them coverage opportunities the day their award lands.

#### 7. M\&A target screening

You're a PE firm acquiring agency rollups. Pull every agency with `employees: 100–249`, `rating: 4.5+`, `minBudget: $50K+` — instant longlist of cash-positive acquisition candidates with revenue proxies.

#### 8. SaaS lookalike modeling

Your top 100 customers are mid-size design agencies. Pull every similar agency by service-mix + employees + country → instant lookalike pipeline.

#### 9. Programmatic SEO — "Best X Agencies in Y" pages

Pull every category × every state → generate hundreds of programmatic landing pages ("Best Web Design Agencies in California", "Top Branding Firms in New York") with rich, structured data.

#### 10. Investor due-diligence prep

You're investing in a SaaS sold to agencies. Pull the full agency landscape in 24h → understand TAM, geographic concentration, employee bands, award rates. One run = investor-grade landscape map.

***

### ⚙️ Input — what you give

| Field | Type | What it does | Example |
|---|---|---|---|
| `startUrls` | array | Any DesignRush URL: category page, country / state page, or single agency profile. Mixed types OK. | `["https://www.designrush.com/agency/web-design-companies/us"]` |
| `categorySlugs` | array | Discover agencies from these category pages | `["web-design-companies", "digital-marketing", "branding-agencies", "seo-agency"]` |
| `locationSlugs` | array | Restrict discovery to countries / states / cities | `["us", "california", "new-york", "florida", "texas"]` |
| `agencySlugs` | array | Scrape specific agency profiles directly | `["digital-silk", "clay"]` |
| `scrapeReviews` | boolean | Include full client reviews in each record (no extra request cost) | `true` |
| `scrapeProfileDetails` | boolean | Visit each profile for full data (turn off for ultra-fast bulk discovery) | `true` |
| `awardWinnersOnly` | boolean | Filter to agencies holding a DesignRush Design Award badge | `false` |
| `minRating` | number | Minimum aggregate rating (0–5) | `4.5` |
| `minReviews` | int | Minimum verified reviews | `10` |
| `maxRecords` | int | Total cap on records (0 = unlimited) | `100` |
| `maxPagesPerCategory` | int | Pagination depth per category × location combo (~50 listings per page) | `3` |
| `requestDelay` | int (ms) | Politeness delay between requests | `1000` |
| `maxConcurrency` | int | Parallel request count | `2` |
| `proxyConfiguration` | object | Proxy settings — defaults provided | *(see Apify proxy editor)* |

#### Sensible defaults

You don't need to fill everything. The defaults will run a sensible discovery on the `web-design-companies` category — perfect for a first test run with 100 free records to validate the data on your real ICP.

***

### 📤 Output — what you get

Every run pushes records to a structured **dataset** that you can export from the Apify Console as:

| Format | When to use |
|---|---|
| **JSON** | Direct API ingestion, full nested structure preserved |
| **CSV** | Open in Excel, Google Sheets, import to CRM (Salesforce, HubSpot, Pipedrive, Apollo, Clay) |
| **XLSX** | Hand off to non-technical stakeholders (sales managers, executives) |
| **Agencies view** | Compact one-row-per-agency lead-gen table (recommended for outbound) |
| **Reviews view** | One row per (agency × review) — sentiment analysis, LLM summaries |

The dataset is queryable via the Apify API — chain this scraper into your stack with one line.

#### Example output — full agency record

```json
{
  "slug": "example-agency",
  "profileUrl": "https://www.designrush.com/agency/profile/example-agency",
  "name": "Example Agency",
  "logoUrl": "https://media.designrush.com/agencies/.../Example-Agency-logo.webp",
  "websiteUrl": "https://exampleagency.com",
  "tagline": "Example Agency creates custom websites to drive higher conversions and greater SEO value to grow brands online.",
  "description": "Example Agency creates custom websites... [full about text, often several paragraphs]",

  "rating": 4.9,
  "reviewCount": 34,

  "foundedYear": 2015,
  "employeesRange": "100 - 249",
  "hourlyRateRange": "$150/hr",
  "minBudget": "$50,000 - $100,000",

  "headquarters": {
    "city": "New York City",
    "state": "New York",
    "country": "United States",
    "postalCode": "10011",
    "address": "18 West 18th Street"
  },
  "offices": [
    { "city": "Los Angeles", "country": "United States", "address": "..." },
    { "city": "London",      "country": "United Kingdom", "address": "..." }
  ],

  "contact": {
    "email": "hello@exampleagency.com",
    "phone": "(800) 555-1234"
  },
  "socialLinks": {
    "linkedin":  "https://www.linkedin.com/company/example-agency",
    "twitter":   "https://x.com/exampleagency",
    "facebook":  "https://www.facebook.com/exampleagency",
    "instagram": "https://www.instagram.com/exampleagency",
    "youtube":   "https://www.youtube.com/exampleagency"
  },

  "topServices": ["Web Design", "Branding", "Digital Marketing"],
  "services": [
    "Web Design", "WordPress Development", "Shopify Development",
    "Brand Strategy", "Logo Design", "Visual Identity",
    "SEO Services", "Content Marketing", "Conversion Rate Optimization",
    "..." 
  ],
  "industries": ["Healthcare", "Finance", "eCommerce", "Fashion", "Food & Beverage", "Real Estate", "SaaS"],

  "portfolioGallery": [
    "https://media.designrush.com/portfolio/.../project1-thumb.webp",
    "https://media.designrush.com/portfolio/.../project2-thumb.webp"
  ],

  "reviews": [
    {
      "rating": 5,
      "projectName": "ExoSpa Website Redesign",
      "reviewer": "Dr. John Doe",
      "reviewerRole": "Owner",
      "summary": "As the owner of ExoClinic Spa, and a physician with more than 30 years of experience... working with Example Agency has been an extraordinary experience and the best I have had with any web development company to date. [...truncated...]",
      "datePublished": "2026-02-13"
    }
  ],

  "notableClients": ["Microsoft", "Sony", "P&G", "Marriott"],
  "awards": ["DesignRush Design Award Winner"],
  "portfolioCount": 44,

  "breadcrumb": ["Home", "Agency Directory", "Example Agency"],
  "discoveredFrom": "web-design-companies",
  "scrapedAt": "2026-05-19T14:00:00.000Z"
}
```

***

### 📊 Real-world fill rate

Measured across a sample of recent runs:

| Field group | Coverage | Notes |
|---|---|---|
| Identity (`name`, `logoUrl`, `websiteUrl`, `tagline`, `profileUrl`) | **100%** | Every record has them |
| Aggregate rating + review count | **100%** | Every record |
| Founded year | **100%** | Every record |
| Employees range | **100%** | Every record |
| **Hourly rate** | **100%** | Every record |
| **Minimum project budget** | **100%** | Every record (vs ~0% on competing directories) |
| Headquarters (city + state + country + postal + street) | **100%** | Full structured address |
| **Email** ✉️ | **100%** | Direct business email |
| **Phone** ☎️ | **100%** | Direct business phone |
| Social links (LinkedIn / Twitter / Facebook / Instagram / YouTube) | **100%** | At least one social per record |
| Top services + full services list | **100%** | Often 80+ services per agency |
| Industries served | **100%** | Avg 12 industries / agency |
| Verified reviews (with body) | **100%** | Avg ~15 reviews per agency |
| Long description / tagline | **100%** | Multi-paragraph "About" text |
| Portfolio gallery (thumbnail URLs) | **100%** | Avg 6 thumbs / agency |
| Bonus fields (Notable Clients, Awards, Portfolio count) | 0–30% | Only when the agency surfaces them |

**Translation:** every record you receive is essentially **a complete B2B lead** — name, website, email, phone, full address, budget signals, employees, founded year, rating, reviews, and services. No record dropped for missing core fields.

***

### 🌍 Coverage — global agencies, 50+ categories

The directory covers (non-exhaustive list of category slugs you can pass to `categorySlugs`):

| Category area | Example slugs |
|---|---|
| **Web** | `web-design-companies`, `web-development`, `ecommerce-development`, `landing-page-design` |
| **Mobile** | `mobile-app-design-companies`, `mobile-app-development`, `ios-app-design-companies`, `android-app-design` |
| **Brand & creative** | `branding-agencies`, `logo-design-companies`, `packaging-design`, `print-design`, `naming-agencies` |
| **Marketing** | `digital-marketing`, `seo-agency`, `ppc-management`, `content-marketing`, `social-media-marketing`, `email-marketing` |
| **Design specialties** | `ui-ux-design`, `graphic-design`, `motion-design`, `video-production`, `animation-companies` |
| **Specialized services** | `crm-consulting`, `business-services`, `accounting`, `hr-outsourcing`, `translation-services` |

Combine any category with location slugs: `us`, `california`, `new-york`, `florida`, `texas`, `gb`, `canada` … for tight ICP segmentation.

***

### 💡 Tips & best practices

#### Sales / outbound

- **Start narrow, then scale.** Always run `maxRecords: 100` for the first run to validate the data on your real ICP before pulling thousands.
- **Run with `scrapeProfileDetails: true`** for outbound — listing card data alone misses the email/phone/full address.
- **Skip reviews for pure lead-gen** (`scrapeReviews: false`) if you only need contact data — faster runs, lower cost.
- **Combine filters for ICP precision** — `minRating: 4.5` + `minReviews: 10` + `employeesFilter` + `locationSlugs` zeroes in on your perfect prospect.

#### Competitive intelligence

- Set `scrapeReviews: true` for full review bodies (default ON, no extra request cost) — gold for understanding what clients say about your competitors.
- Use the **reviews view** (CSV export) for sentiment analysis, LLM-based theme extraction, or quote mining for case-study pitches.

#### Elite-tier targeting

- `awardWinnersOnly: true` + `minRating: 4.8` + `minReviews: 20` = the top decile of agencies. Use for premium outreach where every contact deserves a custom approach.

#### Speed vs depth

- `scrapeProfileDetails: false` → ultra-fast listing-only discovery, 50 leads/page, cheaper.
- `scrapeProfileDetails: true` (default) → full data per profile, recommended for any paid outreach.

#### Geography

- Pair `locationSlugs: ["us"]` with state slugs for hyper-local: e.g. `["us", "california", "new-york"]`. Each combination is paginated separately, giving you maximum coverage.

#### Cost management

- The first 100 records every run are free — design your queries to fit within that for testing.
- For huge runs (10K+ records), schedule them overnight with `maxConcurrency: 2` for stable execution.

***

### ❓ FAQ

**Is the data fresh?**
Every run pulls live data at the moment of execution. Schedule daily or weekly runs for change tracking (new agencies, new awards, new reviews).

**Can I scrape a single specific agency?**
Yes — pass it in `agencySlugs: ["agency-slug"]` or include the profile URL in `startUrls`.

**Can I export to my CRM?**
Yes — the dataset is exportable as **CSV, XLSX, or JSON**, and Apify's API lets you pipe it directly into HubSpot, Salesforce, Pipedrive, Apollo, Clay, Smartlead, Lemlist, Outreach, Reply.io, or any custom stack.

**Will the same agency appear twice in one run?**
No — deduplication by slug across all discovery sources.

**Can I filter by award status?**
Yes — `awardWinnersOnly: true` returns only agencies holding a DesignRush Design Award badge.

**Can I filter by rating or review count?**
Yes — `minRating: 4.5` (or any 0–5 value) + `minReviews: 10` for quality filters.

**Can I limit to a specific country, state, or city?**
Yes — `locationSlugs: ["us", "california", "new-york"]`. Combine with `categorySlugs` for tight segmentation.

**Are reviews included by default?**
Yes — `scrapeReviews: true` is the default and reviews are embedded in each record at no extra request cost.

**Can I schedule recurring runs?**
Absolutely — Apify's built-in scheduler runs this scraper on any cron expression. Daily / weekly / monthly all supported.

**Does this work for software listings too?**
No — DesignRush is exclusively an **agency directory**. For SaaS / software listings, see our **GoodFirms Scraper** which includes software product data.

**Is there a free tier?**
Yes — the **first 100 records per run are free**. Plenty for validating the data on your real ICP before scaling.

**Can I sort the data after I scrape?**
Yes — open the CSV in Excel / Google Sheets and sort by any field (`rating`, `hourlyRateRange`, `minBudget`, `employeesRange`, `reviewCount`, etc.).

**What's the difference between this and the GoodFirms Scraper?**
GoodFirms has more total agencies (~110K vs 40K) but DesignRush has **better contact coverage** (100% email + phone), **minimum budget data** (which GoodFirms lacks), and **award badges**. For pure outbound contact lists, DesignRush is denser per record. For maximum agency volume, GoodFirms wins. Many users run both and dedupe by website.

***

### 💸 Pricing

This scraper uses **Pay-per-result** pricing — you pay only for the records you actually receive. No subscriptions, no platform fees from us. Fresh B2B agency leads at a fraction of ZoomInfo / Apollo / Crunchbase pricing per record.

The **first 100 results per run are free** so you can validate the data before scaling.

***

### 🚀 Related actors by the same team

Pair this with the rest of our B2B intelligence suite:

- **GoodFirms Scraper** — `haketa/goodfirms-scraper`
  110,000+ agencies + thousands of SaaS products. Higher total volume than DesignRush, includes software product listings. Run both & dedupe by website domain for maximum coverage.

- **ProductHunt Launches & Makers Scraper** — `haketa/producthunt-launches-scraper`
  Every Product Hunt product launch with founders, vote counts, reviews, screenshots, and topic tags. Perfect for VC sourcing and recruiter pipelines.

- **Y Combinator Companies Scraper** — `haketa/ycombinator-companies-scraper`
  Every YC company across all batches with industry, location, and team. The canonical YC alumni database.

- **BuiltIn Tech Companies + Tech Stack Scraper** — `haketa/builtin-tech-companies-scraper`
  Tech companies + their declared tech stack. Ideal for selling developer tools and finding companies hiring in your stack.

- **H1B Visa Database Scraper** — `haketa/h1b-visa-database-scraper`
  Visa sponsor employers + salary records. Recruiter and immigration-research gold.

- **NPPES NPI Registry Scraper** — `haketa/nppes-npi-registry-scraper`
  Every US healthcare provider with NPI, specialty, address, and phone. Healthcare GTM in a single dataset.

- **WhatClinic Scraper / Bookimed Scraper** — `haketa/whatclinic-scraper`, `haketa/bookimed-scraper`
  Global medical clinics & medical tourism leads.

- **Levels.fyi Scraper** — `haketa/levels-fyi-scraper`
  Tech compensation database — recruiter and talent benchmarking.

- **License-board scrapers** (US states) — `haketa/california-dca-license-scraper`, `tsbp-license-scraper`, `ohio-elicense-scraper`, `illinois-idfpr-license-scraper`, `arizona-roc-contractor-license-scraper`, `colorado-professional-license-scraper`, `nc-licensing-board-for-general-contractors-scraper`, `washington-li-contractor-license-scraper`, `virginia-dpor-license-scraper`, `minnesota-dli-license-scraper`, `sam-gov-federal-contractor-scraper`, `ttb-alcohol-permittee-scraper` — every US state's licensed professional database.

- **Real-estate scrapers** — `haketa/apartments-com-scraper`, `rent-com-scraper`, `realtor-ca-scraper`, `domain-com-au-scraper`, `trademe-scraper`, `zameen-scraper`, `kijiji-scraper`, `lamudi-scraper`, `realestate-com-kh-scraper`, `immoweb-scraper`, `chotot-scraper`, `vivareal-scraper`, `zapimoveis-scraper`, `yallamotor-scraper`.

- **Classifieds & marketplaces** — `haketa/kleinanzeigen-scraper`, `marktplaats-scraper`, `mourjan-scraper`, `offerup-scraper`, `lelong-my-scraper`, `seek-scraper`.

- **Industry-specific** — `haketa/sam-gov-federal-contractor-scraper`, `bbb-scraper`, `ttb-alcohol-permittee-scraper`.

***

### ✅ Status & support

Maintained actively. Update notes shipped via the Apify build log. For feedback, edge cases, or category requests, leave a review on the actor page — every report shapes the next release.

***

### ⚖️ Disclaimer

This scraper collects **publicly available information** from a public B2B agency directory. The user is responsible for compliance with the source website's terms of service and applicable data-protection laws (GDPR, CCPA, CAN-SPAM, etc.) when using the scraped data — especially for outbound email, SMS, or call campaigns. Cold-outreach laws vary by jurisdiction; please check your local regulations.

***

Built for **sales teams, market researchers, SaaS founders, recruiters, agency owners, ABM specialists, growth marketers, PR teams, and procurement analysts** who want richer B2B agency data faster, cheaper, and more specific than ZoomInfo, Crunchbase, or LinkedIn Sales Navigator can deliver — without writing a line of code.

# Actor input Schema

## `startUrls` (type: `array`):

Any DesignRush URL — category page (/agency/web-design-companies), country / state page (/agency/web-design-companies/us, /agency/digital-marketing/california), or profile (/agency/profile/<slug>). Mixed types OK.

## `categorySlugs` (type: `array`):

Discover agencies from these category pages. Examples: web-design-companies, digital-marketing, branding-agencies, seo-agency, mobile-app-design-companies, ui-ux-design, packaging-design, ecommerce-development.

## `locationSlugs` (type: `array`):

Restrict discovery to these countries/states/cities. Examples: us, california, new-york, florida, texas. Leave empty for global. Each combination is paginated separately.

## `agencySlugs` (type: `array`):

Scrape specific agency profiles directly. Slug = path after /agency/profile/. Example: digital-silk.

## `scrapeReviews` (type: `boolean`):

Include full client reviews (rating, body, reviewer, date) from each profile. Reviews are embedded in profile JSON-LD so no extra request — keep ON for richer data.

## `scrapeProfileDetails` (type: `boolean`):

Visit each profile page to extract founded year, team size, hourly rate, minimum budget, services, industries, clients, portfolio. Turn OFF for ultra-fast listing-only bulk discovery.

## `awardWinnersOnly` (type: `boolean`):

Filter to agencies that hold a DesignRush Design Award badge.

## `minRating` (type: `number`):

Drop agencies below this rating (0–5). 0 = no filter.

## `minReviews` (type: `integer`):

Drop agencies with fewer verified reviews than this. 0 = no filter.

## `maxRecords` (type: `integer`):

Total cap on records to push. 0 = unlimited.

## `maxPagesPerCategory` (type: `integer`):

Pagination depth per category/location combo (~50 listings per page).

## `requestDelay` (type: `integer`):

Delay between requests. Higher = friendlier to Cloudflare.

## `maxConcurrency` (type: `integer`):

Parallel request count. Keep low (1–3) to avoid Cloudflare challenges.

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

Default: NO proxy. DesignRush's Cloudflare blocks Apify's Datacenter and Residential proxy IP pools but allows Apify's direct compute IPs through. Only enable a proxy if you're hitting per-IP rate limits on huge runs (then prefer Residential).

## Actor input object example

```json
{
  "startUrls": [],
  "categorySlugs": [
    "web-design-companies"
  ],
  "locationSlugs": [],
  "agencySlugs": [],
  "scrapeReviews": true,
  "scrapeProfileDetails": true,
  "awardWinnersOnly": false,
  "minRating": 0,
  "minReviews": 0,
  "maxRecords": 100,
  "maxPagesPerCategory": 3,
  "requestDelay": 1000,
  "maxConcurrency": 2,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `allAgencies` (type: `string`):

Full dataset — choose JSON / CSV / Excel in the export menu.

## `agenciesView` (type: `string`):

Compact lead-gen table.

## `reviewsView` (type: `string`):

One row per (agency, review).

# 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 = {
    "startUrls": [],
    "categorySlugs": [
        "web-design-companies"
    ],
    "locationSlugs": [],
    "agencySlugs": [],
    "scrapeReviews": true,
    "scrapeProfileDetails": true,
    "maxRecords": 100,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("haketa/designrush-scraper").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 = {
    "startUrls": [],
    "categorySlugs": ["web-design-companies"],
    "locationSlugs": [],
    "agencySlugs": [],
    "scrapeReviews": True,
    "scrapeProfileDetails": True,
    "maxRecords": 100,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("haketa/designrush-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "startUrls": [],
  "categorySlugs": [
    "web-design-companies"
  ],
  "locationSlugs": [],
  "agencySlugs": [],
  "scrapeReviews": true,
  "scrapeProfileDetails": true,
  "maxRecords": 100,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call haketa/designrush-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=haketa/designrush-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "DesignRush B2B Agency Scraper",
        "description": "Extract B2B agency listings from DesignRush.com — web design, digital marketing, branding, SEO, dev firms with hourly rate, minimum budget, employees, founded year, full contact (email + phone + address), verified reviews and award badges. No API key required.",
        "version": "0.0",
        "x-build-id": "w5w5HC0bQRNmaHcVd"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/haketa~designrush-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-haketa-designrush-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/haketa~designrush-scraper/runs": {
            "post": {
                "operationId": "runs-sync-haketa-designrush-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/haketa~designrush-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-haketa-designrush-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Any DesignRush URL — category page (/agency/web-design-companies), country / state page (/agency/web-design-companies/us, /agency/digital-marketing/california), or profile (/agency/profile/<slug>). Mixed types OK.",
                        "default": [],
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "categorySlugs": {
                        "title": "Category Slugs",
                        "type": "array",
                        "description": "Discover agencies from these category pages. Examples: web-design-companies, digital-marketing, branding-agencies, seo-agency, mobile-app-design-companies, ui-ux-design, packaging-design, ecommerce-development.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "locationSlugs": {
                        "title": "Country / Region Slugs",
                        "type": "array",
                        "description": "Restrict discovery to these countries/states/cities. Examples: us, california, new-york, florida, texas. Leave empty for global. Each combination is paginated separately.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "agencySlugs": {
                        "title": "Individual Agency Slugs",
                        "type": "array",
                        "description": "Scrape specific agency profiles directly. Slug = path after /agency/profile/. Example: digital-silk.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "scrapeReviews": {
                        "title": "Scrape Verified Reviews",
                        "type": "boolean",
                        "description": "Include full client reviews (rating, body, reviewer, date) from each profile. Reviews are embedded in profile JSON-LD so no extra request — keep ON for richer data.",
                        "default": true
                    },
                    "scrapeProfileDetails": {
                        "title": "Scrape Full Profile Details",
                        "type": "boolean",
                        "description": "Visit each profile page to extract founded year, team size, hourly rate, minimum budget, services, industries, clients, portfolio. Turn OFF for ultra-fast listing-only bulk discovery.",
                        "default": true
                    },
                    "awardWinnersOnly": {
                        "title": "Award Winners Only",
                        "type": "boolean",
                        "description": "Filter to agencies that hold a DesignRush Design Award badge.",
                        "default": false
                    },
                    "minRating": {
                        "title": "Minimum Rating",
                        "minimum": 0,
                        "maximum": 5,
                        "type": "number",
                        "description": "Drop agencies below this rating (0–5). 0 = no filter.",
                        "default": 0
                    },
                    "minReviews": {
                        "title": "Minimum Reviews",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Drop agencies with fewer verified reviews than this. 0 = no filter.",
                        "default": 0
                    },
                    "maxRecords": {
                        "title": "Max Records",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Total cap on records to push. 0 = unlimited.",
                        "default": 100
                    },
                    "maxPagesPerCategory": {
                        "title": "Max Pages Per Category",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Pagination depth per category/location combo (~50 listings per page).",
                        "default": 3
                    },
                    "requestDelay": {
                        "title": "Request Delay (ms)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Delay between requests. Higher = friendlier to Cloudflare.",
                        "default": 1000
                    },
                    "maxConcurrency": {
                        "title": "Max Concurrency",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Parallel request count. Keep low (1–3) to avoid Cloudflare challenges.",
                        "default": 2
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Default: NO proxy. DesignRush's Cloudflare blocks Apify's Datacenter and Residential proxy IP pools but allows Apify's direct compute IPs through. Only enable a proxy if you're hitting per-IP rate limits on huge runs (then prefer Residential)."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
