# DesignRush Scraper - Agencies, Services & B2B Leads (`scrapesage/designrush-scraper`) Actor

Scrape the DesignRush agency directory by category & country: services, hourly rate, budget, team size, ratings, reviews & year founded, plus direct emails, phones & socials for B2B leads. Reviews, website enrichment & monitor mode. No API key, no browser.

- **URL**: https://apify.com/scrapesage/designrush-scraper.md
- **Developed by:** [Scrape Sage](https://apify.com/scrapesage) (community)
- **Categories:** Lead generation, SEO tools, Automation
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 agency lead records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

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

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

# README

## DesignRush Scraper — Agencies, Services & B2B Leads (Emails, Phones & Reviews)

Extract **complete agency data from the DesignRush directory** — marketing, SEO, web design, web & app development, branding, PR, advertising and software agencies — with the fields other scrapers leave empty: **direct contact email, phone, full address, hourly rate, minimum budget, team size, year founded, services, ratings and client reviews**. Turn every agency into a **ready-to-contact B2B lead** with its profile email, phone, social links and — optionally — extra contacts crawled from the agency's own website.

No login, no cookies, no browser — fast HTML/JSON extraction with 99%+ reliability.

### Why this DesignRush scraper?

Most agency scrapers only parse the listing cards and return `null` for the contact fields that actually matter. This actor also reads each agency's profile and ships the **richest dataset in the category** — including the **direct email** DesignRush publishes on the profile page:

| Data | Typical scrapers | This actor |
|---|---|---|
| Agency name, logo, slogan, description | ✅ | ✅ |
| Services + areas of expertise | partial | ✅ full list |
| Hourly rate, minimum budget, team size | partial | ✅ |
| Location (city, region, full address) | partial | ✅ |
| Average rating + total review count | partial | ✅ |
| **Direct contact email** (from the profile) | ❌ | ✅ |
| **Phone number** | ❌ | ✅ |
| Year founded | ❌ | ✅ |
| Agency LinkedIn / Facebook / X / Instagram / YouTube | ❌ | ✅ |
| Client reviews (reviewer, rating, date, body) | ❌ | ✅ opt-in |
| Extra emails/phones from the agency website | ❌ | ✅ opt-in |
| Lead score (0–100) per agency | ❌ | ✅ |
| Monitoring (only new agencies) | ❌ | ✅ |

### Use cases

- **B2B lead generation** — agencies are active buyers and partners: they need software, white-label services, hosting, design tools, staffing, lead vendors and SaaS. Reach them directly with `email`, `phone` and `linkedin`, prioritised by `leadScore`.
- **Partnerships & reseller recruiting** — build a list of digital marketing, SEO, web dev or design agencies by service and country for referral, white-label or reseller programs.
- **Competitive & market intelligence** — analyze the agency landscape by service, hourly rate, team size, location and rating; benchmark pricing and positioning.
- **Recruiting & M\&A sourcing** — find agencies by size (`employeeRange`), age (`yearFounded`) and specialty for talent or acquisition pipelines.
- **Monitoring** — schedule recurring runs to capture **newly listed agencies** in a category or country as they appear.

### How to use

1. [Sign up for Apify](https://console.apify.com/sign-up) — the free plan is enough to try this actor.
2. Open the **DesignRush Scraper**, enter category slugs and (optionally) countries — or paste DesignRush URLs — and click **Start**.
3. Watch agency leads stream into the dataset table.
4. **Export** as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the [Apify API](https://docs.apify.com/api/v2).

### Input

```json
{
    "categories": ["digital-marketing", "search-engine-optimization", "web-development-companies"],
    "locations": ["United States", "United Kingdom"],
    "maxResults": 200,
    "includeProfileDetails": true,
    "includeReviews": true,
    "enrichContactEmails": false,
    "withEmailOnly": true
}
```

- **categories** — DesignRush category slugs from the URL (`https://www.designrush.com/agency/<slug>`). Common: `digital-marketing`, `search-engine-optimization`, `social-media-marketing`, `web-development-companies`, `website-design-development`, `software-development`, `mobile-app-design-development`, `ui-ux-design`, `ecommerce`, `logo-branding`, `public-relations`, `content-marketing`, `paid-media-pay-per-click`, `video-production`, `ai-companies`, `it-services`, `creative-agencies`. Sub-niches work too (e.g. `digital-marketing/amazon`, `digital-marketing/dental`).
- **locations** — optional country filter per category: name or 2-letter code (`United States`/`us`, `United Kingdom`/`uk`, `Canada`/`ca`, `Australia`/`au`, `India`/`in`, `Germany`/`de`). Empty = global ranking.
- **startUrls** — direct agency profile pages (`/agency/profile/<slug>`) or category/listing pages (`/agency/digital-marketing/us`). Overrides categories.
- **includeProfileDetails** *(default true)* — fetch each agency's profile for the direct email, phone, full address, year founded, minimum budget, full services and social links. This is where the lead data lives.
- **includeReviews** *(default false)* — also output one record per client review (reviewer, rating, date, title, body).
- **enrichContactEmails** *(default false)* — crawl the agency's own website (home + contact/about, max 3 pages) for extra emails, phones and socials.
- **minRating / minReviews / withEmailOnly / withWebsiteOnly** — quality filters for clean outreach lists.
- **deduplicateAgencies** *(default true)* — one record per agency even if it ranks in several categories/countries.
- **monitorMode** *(default false)* — remember agencies from previous runs and emit only NEW ones (see below).

### Output

One record per agency (`type: "agency"`), plus optional review records (`type: "review"`):

```json
{
    "type": "agency",
    "agencyId": "smartsites",
    "name": "SmartSites",
    "profileUrl": "https://www.designrush.com/agency/profile/smartsites",
    "website": "https://www.smartsites.com",
    "slogan": "Think Web. Think Smart. Partner With the #1 Rated Digital Marketing Agency.",
    "description": "A results-driven digital marketing company providing PPC, SEO, email marketing, web design and development…",
    "category": "digital-marketing",
    "rating": 5,
    "reviewCount": 270,
    "topServices": ["Digital Marketing", "SEO", "Email Marketing"],
    "services": ["Digital Marketing", "SEO", "PPC", "Social Media Marketing", "Email Marketing", "Web Design", "Web Development"],
    "expertise": ["SEO Expertise", "PPC Expertise", "WordPress", "Google Ads", "BigCommerce"],
    "email": "mike@smartsites.com",
    "phone": "(201) 870-6000",
    "streetAddress": "45 Eisenhower Drive, Suite 520",
    "city": "Paramus",
    "region": "New Jersey",
    "postalCode": "07652",
    "country": "United States",
    "employeeRange": "100 - 249",
    "hourlyRate": "$100/hr",
    "minBudget": "Inquire",
    "yearFounded": 2011,
    "portfolioCount": 4,
    "linkedin": "https://www.linkedin.com/company/smartsites",
    "facebook": "https://www.facebook.com/SmartSites",
    "twitter": "https://x.com/SmartSitesNJ",
    "instagram": "https://instagram.com/smartsitesnj/",
    "leadScore": 100,
    "searchCategory": "digital-marketing",
    "searchLocation": "United States",
    "sourceUrl": "https://www.designrush.com/agency/digital-marketing/us",
    "scrapedAt": "2026-06-15T13:00:00.000Z"
}
```

```json
{
    "type": "review",
    "agencyId": "smartsites",
    "agencyName": "SmartSites",
    "reviewerName": "Aljosa Kemperle",
    "reviewerTitle": "Founder",
    "reviewerCompany": "Kemperle Industries",
    "rating": 5,
    "title": "Web development collaboration",
    "body": "Ashley and her development team have been a pure joy to work with…",
    "date": "2026-01-08"
}
```

### Automate & schedule

Run this actor on autopilot and pull results into your own stack:

- **[Apify API](https://docs.apify.com/api/v2)** — start runs, fetch datasets, and manage schedules over REST.
- **[apify-client for JavaScript](https://docs.apify.com/api/client/js/)** and **[apify-client for Python](https://docs.apify.com/api/client/python/)** — official SDKs.
- **[Schedules](https://docs.apify.com/platform/schedules)** — run it daily/weekly to monitor new agencies in a category or country; perfect for lead pipelines.
- **[Webhooks](https://docs.apify.com/platform/integrations/webhooks)** — trigger downstream actions (CRM import, Slack alert, email sequence) the moment a run finishes.

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

const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });

const run = await client.actor('scrapesage/designrush-scraper').call({
    categories: ['digital-marketing', 'web-development-companies'],
    locations: ['United States'],
    maxResults: 200,
    includeProfileDetails: true,
    withEmailOnly: true,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} agency leads`);
```

### Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

- **[Make](https://docs.apify.com/platform/integrations/make)** — multi-step automation scenarios.
- **[Zapier](https://docs.apify.com/platform/integrations/zapier)** — push new agency leads straight into your CRM.
- **[Slack](https://docs.apify.com/platform/integrations/slack)** — get notified when a monitored search finds new agencies.
- **[Google Drive / Sheets](https://docs.apify.com/platform/integrations/drive)** — auto-export every run to a spreadsheet.
- **[Airbyte](https://docs.apify.com/platform/integrations/airbyte)** — pipe results into your data warehouse.
- **[GitHub](https://docs.apify.com/platform/integrations/github)** — trigger runs from commits or releases.

### Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. You can call this actor from Claude, ChatGPT, or any agent framework through the **[Apify MCP server](https://docs.apify.com/platform/integrations/mcp)** — ask your assistant to "find the top digital marketing agencies in the UK with their contact emails" and let it run this scraper for you.

### Agent-ready: autonomous payments (x402 & Skyfire)

This actor is **agent-ready** — AI agents can discover it, run it, and **pay for it autonomously**, with no Apify account and no human in the loop. It uses [pay-per-event](https://docs.apify.com/platform/actors/publishing/monetize/pay-per-event) pricing and [limited permissions](https://docs.apify.com/platform/actors/development/permissions), so it qualifies for Apify's agentic-payment standards:

- **[x402](https://docs.apify.com/platform/integrations/x402)** — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp) — no account, no API key.
- **[Skyfire](https://docs.apify.com/platform/integrations/skyfire)** — agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

### More scrapers from scrapesage

Build a complete **B2B lead-gen & competitive-intelligence stack**:

- **[Bark Listing Scraper](https://apify.com/scrapesage/bark-listing-scraper)** — service-provider leads from Bark.
- **[Houzz Scraper](https://apify.com/scrapesage/houzz-scraper)** — home-improvement pros, contacts & reviews.
- **[Product Hunt Scraper](https://apify.com/scrapesage/product-hunt-scraper)** — launches, makers & founder leads.
- **[Y Combinator Scraper](https://apify.com/scrapesage/ycombinator-scraper)** — startups, founders & jobs.
- **[Chrome Web Store Scraper](https://apify.com/scrapesage/chrome-web-store-scraper)** — extensions & developer leads.
- **[Shopify App Store Scraper](https://apify.com/scrapesage/shopify-app-store-scraper)** — apps & developer leads.
- **[Google Ads Transparency Scraper](https://apify.com/scrapesage/google-ads-transparency-scraper)** — who's advertising what on Google.
- **[Facebook Ad Library Scraper](https://apify.com/scrapesage/facebook-ad-library-scraper)** — competitor ad intelligence (Meta + Instagram).
- **[LinkedIn Ad Library Scraper](https://apify.com/scrapesage/linkedin-ad-library-scraper)** — competitor B2B ads & creatives.
- **[LinkedIn Jobs Scraper](https://apify.com/scrapesage/linkedin-jobs-scraper)** — job postings as hiring-intent signals.

### Tips

- **Go deep**: DesignRush lists ~50 agencies per page and paginates hundreds of pages in big categories. Raise `maxResults` and `maxResultsPerCategory`, or split by country, to harvest a whole category.
- **Clean outreach lists**: combine `withEmailOnly` + `minReviews` to keep only established, contactable agencies.
- **Recurring monitoring**: turn on `monitorMode` and add a [Schedule](https://docs.apify.com/platform/schedules) to capture only newly listed agencies each run.
- **Cost control**: turn off `includeProfileDetails` for fast, cheap listing-only runs (no email/phone), or keep it on (default) for full leads.

### FAQ

**How do I scrape a specific agency category?** Put the category slug from the DesignRush URL into `categories` — e.g. `digital-marketing`, `web-development-companies`, `search-engine-optimization`. Add a country to `locations` to narrow by market.

**Where do the emails come from?** DesignRush publishes a direct contact email and phone on each agency's profile page — this actor reads them when `includeProfileDetails` is on. With `enrichContactEmails` you can also crawl the agency's own website for extra contacts.

**Can I export to Google Sheets, CSV, or Excel?** Yes — one click in the dataset view, or automatically on every run via the [Google Drive integration](https://docs.apify.com/platform/integrations/drive).

**How do I monitor new agencies automatically?** Turn on `monitorMode` and create a [Schedule](https://docs.apify.com/platform/schedules) (e.g. weekly). The actor remembers what it has seen and emits only new agencies — does not conflict with scheduling.

**Does it need an API key or browser?** No. It uses fast HTTP requests against public pages — no API key, no login, no headless browser.

**A field is null — why?** Some agencies genuinely don't publish an hourly rate, minimum budget, website or reviews. Fields are `null` only when the data doesn't exist, not because the scraper skipped them.

**Is scraping DesignRush legal?** This actor collects publicly available data only. You are responsible for using the data in compliance with applicable laws (GDPR/CCPA for personal data) and DesignRush's terms.

### Need help?

Open an issue on the actor's **Issues** tab, or visit the [Apify help center](https://help.apify.com/). Feature requests are welcome — this actor is actively maintained.

# Actor input Schema

## `categories` (type: `array`):

DesignRush agency category slugs (from the URL, e.g. https://www.designrush.com/agency/<slug>). Each is scraped separately. Common slugs: digital-marketing, search-engine-optimization, social-media-marketing, web-development-companies, website-design-development, software-development, mobile-app-design-development, ui-ux-design, ecommerce, branding (logo-branding), public-relations, content-marketing, paid-media-pay-per-click, video-production, ai-companies, it-services, creative-agencies. Sub-niches also work, e.g. digital-marketing/amazon, digital-marketing/dental.

## `locations` (type: `array`):

Optional country filter for each category. Use a country name or 2-letter ISO code: "United States"/"us", "United Kingdom"/"uk", "Canada"/"ca", "Australia"/"au", "India"/"in", "Germany"/"de", "United Arab Emirates"/"ae". Leave empty for the global ranking (all countries). DesignRush filters by country at the directory level; state/city filtering is not supported via clean URLs.

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

DesignRush URLs to scrape directly (auto-routed). Supports agency profile pages (https://www.designrush.com/agency/profile/<slug>) and category/listing pages (https://www.designrush.com/agency/digital-marketing or .../digital-marketing/us). When set, these override the categories above.

## `maxResults` (type: `integer`):

Total cap on agency records emitted across all categories/countries/URLs in this run.

## `maxResultsPerCategory` (type: `integer`):

Optional cap per individual category/country (0 = no per-category cap, only the total cap applies). DesignRush lists ~50 agencies per page and paginates deeply (hundreds of pages in big categories).

## `includeProfileDetails` (type: `boolean`):

Fetch each agency's profile page for the direct contact email & phone, full street address, year founded, minimum budget, full service list and the agency's own social links (one extra request per agency). This is where the lead data lives — keep on for lead generation. Turn off for fast, cheap listing-only runs.

## `includeReviews` (type: `boolean`):

Also output one record per client review (type "review") from each agency's profile: reviewer, rating, date, title and body. Requires profile details.

## `maxReviewsPerAgency` (type: `integer`):

Cap on review records captured per agency when 'Include client reviews' is on.

## `enrichContactEmails` (type: `boolean`):

Visit each agency's own website (home + contact/about, max 3 pages) and extract additional public emails, phone numbers and social links. Secondary to the direct profile email — use it to fill gaps and add team/department contacts.

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

Only keep agencies with at least this average rating (0–5). 0 = no filter.

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

Only keep agencies with at least this many client reviews. 0 = no filter.

## `withEmailOnly` (type: `boolean`):

Only emit agencies that have a contact email (from the profile or website enrichment). Great for building a clean outreach list.

## `withWebsiteOnly` (type: `boolean`):

Only emit agencies that have their own website URL.

## `deduplicateAgencies` (type: `boolean`):

Skip an agency if it already appeared earlier in this run (the same agency can rank in several categories/countries).

## `monitorMode` (type: `boolean`):

Remember agencies seen in previous runs (in a named key-value store) and emit only NEW ones. Pair with Apify Schedules to watch a category or country for newly listed agencies. Does not conflict with scheduling.

## `monitorStoreName` (type: `string`):

Named key-value store that holds the 'already seen' agency IDs for monitor mode. Use a distinct name per saved task so their histories stay separate.

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

Maximum profile / enrichment pages fetched in parallel.

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

Proxy settings. DesignRush has no aggressive anti-bot, so the default Apify datacenter proxy works well.

## Actor input object example

```json
{
  "categories": [
    "digital-marketing"
  ],
  "maxResults": 100,
  "maxResultsPerCategory": 0,
  "includeProfileDetails": true,
  "includeReviews": false,
  "maxReviewsPerAgency": 20,
  "enrichContactEmails": false,
  "minRating": 0,
  "minReviews": 0,
  "withEmailOnly": false,
  "withWebsiteOnly": false,
  "deduplicateAgencies": true,
  "monitorMode": false,
  "monitorStoreName": "designrush-monitor",
  "maxConcurrency": 6,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

All scraped agency and review records as JSON items in the default dataset.

# 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 = {
    "categories": [
        "digital-marketing"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapesage/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 = { "categories": ["digital-marketing"] }

# Run the Actor and wait for it to finish
run = client.actor("scrapesage/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 '{
  "categories": [
    "digital-marketing"
  ]
}' |
apify call scrapesage/designrush-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/nkiiLwnk2gUFMIn3W/builds/IBWxuqZetuIraeqCw/openapi.json
