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

DesignRush scraper & API: find marketing, design and development agencies by category and location and export agency name, rating and reviews, hourly rate, min budget, team size, location and website. B2B agency discovery and lead generation — fast, no login.

- **URL**: https://apify.com/haketa/designrush-scraper.md
- **Developed by:** [Haketa](https://apify.com/haketa) (community)
- **Categories:** Lead generation, Developer tools, Jobs
- **Stats:** 5 total users, 4 monthly users, 94.1% runs succeeded, 0 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": "DesignRush scraper & API: find marketing, design and development agencies by category and location and export agency name, rating and reviews, hourly rate, min budget, team size, location and website. B2B agency discovery and lead generation — fast, no login.",
        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
