# Bridebook Scraper - Wedding Venues, Suppliers & Leads (`scrapesage/bridebook-scraper`) Actor

Scrape wedding venues & suppliers from Bridebook: photographers, caterers, florists, cakes, bands, planners & more. Get direct email, phone, website, Instagram/Facebook, prices, capacity, reviews & owner leads across 11 countries. Filter, monitor mode, export JSON/CSV/Excel.

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

## Pricing

from $5.00 / 1,000 vendor scrapeds

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/actors/running/actors-in-store.md#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

## Bridebook Scraper — Wedding Venues, Suppliers & Leads (Emails, Phones & Prices)

Extract **complete wedding-vendor data from Bridebook** — venues *and* every supplier type (photographers, caterers, florists, cakes, bands & DJs, planners, hair & makeup, bridalwear, transport, stationery, and more) — with the fields other scrapers leave empty: **direct contact email, phone number, website, Instagram / Facebook / TikTok / Pinterest / LinkedIn**, exact price ranges, capacity, reviews, full address & geo, and the venue/business **manager's name**.

Every record is a **ready-to-contact lead**. No login, no cookies, no browser — fast JSON extraction with high reliability across **11 countries** (UK, Ireland, Australia, Canada, New Zealand, South Africa, Germany, Austria, Switzerland, France, Poland).

### Why this Bridebook scraper?

The big wedding directories (The Knot, WeddingWire, Zola) are locked behind aggressive anti-bot walls, so most "wedding vendor" scrapers are slow, flaky, and return little more than a name and a star rating. This actor pulls the **full vendor record** Bridebook itself uses and ships the **richest wedding-vendor dataset in the category**:

| Data | Typical scrapers | This actor |
|---|---|---|
| Direct contact **email** | ❌ | ✅ |
| **Phone** number | ❌ partial | ✅ |
| Website + Instagram / Facebook / TikTok / Pinterest / LinkedIn | ❌ | ✅ |
| Exact **price range** (from / to) + per-head + total-inclusive | ❌ | ✅ |
| Reviews count, star rating, testimonials | partial | ✅ |
| Capacity, accommodation, team size, weddings hosted | ❌ | ✅ |
| **Manager / owner name** | ❌ | ✅ |
| Full address, postcode, lat/lng | partial | ✅ |
| Specialties (Asian, Jewish, Muslim, LGBTQ+, multi-faith…) | ❌ | ✅ |
| Style, services & amenities (per vendor type) | ❌ | ✅ |
| Lead score (0–100) | ❌ | ✅ |
| All venues **and** all supplier types in one actor | ❌ | ✅ |

### Use cases

- **Wedding-industry lead generation** — venues and suppliers are active buyers and partners. Reach them directly with verified `email`, `phone`, `website` and socials, scored 0–100 by `leadScore`. Perfect for wedding SaaS/CRMs (booking, planning, payments), insurance, supply & rental brands, photographers/planners looking for partner vendors, and marketing agencies serving the wedding niche.
- **Market & pricing intelligence** — benchmark venue hire and supplier prices (`priceFrom`, `priceTo`, `pricePerHeadMin`, `pricingIndicator`) by city, county, country and category.
- **Vendor directories & lead-gen sites** — power your own wedding marketplace, county guides, or newsletters with structured, photo-rich vendor data.
- **Competitor & partner mapping** — find every photographer, caterer or florist in a region, with reviews, weddings hosted and specialties.
- **Monitoring** — schedule recurring runs and capture only **new or changed** vendors (price drops, new reviews, fresh listings) for a continuously updated lead feed.

### 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 **Bridebook Scraper**, choose your **categories** (e.g. `venues`, `photographers`), **locations** (e.g. `london`, `manchester`), and a **market** (country) — or paste Bridebook URLs into **Start URLs** — and click **Start**.
3. Watch vendor leads stream into the dataset table.
4. **Export** as JSON, CSV, Excel, XML, or RSS — or pull results via the [Apify API](https://docs.apify.com/api/v2).

### Input

```json
{
    "categories": ["venues", "photographers"],
    "locations": ["london", "kent"],
    "market": "uk",
    "maxResults": 200,
    "includeVendorDetails": true,
    "enrichContactEmails": false,
    "monitorMode": false
}
```

- **categories** — wedding vendor types, combined with every location: `venues`, `photographers`, `videographers`, `catering`, `florists`, `cakes`, `music` (bands & DJs), `planners`, `beauty` (hair & makeup), `bridalwear`, `menswear`, `jewellery`, `transport`, `stationery`, `marquee`, `entertainment`, `decoration`.
- **locations** — towns, cities, regions or counties (`london`, `manchester`, `edinburgh`, `kent`, `yorkshire`). Match them to your **market**.
- **market** — country site: `uk`, `ie`, `au`, `ca`, `nz`, `za`, `de`, `at`, `ch`, `fr`, `pl`.
- **startUrls** — direct Bridebook URLs: vendor profiles (`/uk/wedding-venues/...`) or search/listing pages (`/uk/search/wedding-photographers/london`).
- **maxResults** — cap on total vendor records.
- **Filters** — `minReviews`, `minRating`, `maxPrice`, `hasEmailOnly`, `hasPhoneOnly`, `hasWebsiteOnly`.
- **includeVendorDetails** *(default true)* — fetch the full vendor record: direct email, phone, website, all socials, full address & geo, description, exact price range, capacity, team size, manager name, weddings hosted, insurance, inclusivity options and specialties. This is the lead-gen wedge.
- **enrichContactEmails** *(default false)* — additionally crawl the vendor's own website (home + contact/about, max 3 pages) for extra emails, phones and social links.
- **monitorMode** *(default false)* — remember vendors from previous runs and output only those that are **new** or **changed**; each record is tagged with `changeType`.

### Output

One clean record per wedding vendor (`type: "vendor"`):

```json
{
    "type": "vendor",
    "publicId": "csmgbq6lNX",
    "supplierId": "CS00348023",
    "name": "Clapton Country Club",
    "vendorType": "Venue",
    "market": "uk",
    "country": "GB",
    "currency": "GBP",
    "city": "London",
    "county": "Greater London",
    "customArea": "East London",
    "postcode": "E5 0RT",
    "addressFull": "Clapton, London, E5 0RT",
    "latitude": 51.561,
    "longitude": -0.056,
    "reviewsStars": 5,
    "reviewsCount": 11,
    "testimonialsCount": 4,
    "photosCount": 42,
    "weddingsHosted": 120,
    "pricingIndicator": "$$",
    "priceFrom": 4550,
    "priceTo": 9150,
    "pricePerHeadMin": 85,
    "capacityDining": 120,
    "teamSize": 14,
    "hasInsurance": true,
    "inclusivityOptions": ["lgbtqPlusExpert", "multiFaith"],
    "managerName": "Terence",
    "tags": ["asian-weddings", "jewish-weddings"],
    "attributes": { "style": ["modern", "industrial"], "details": ["exclusiveUse", "outdoorSpace"] },
    "descriptionShort": "A relaxed, independent East London wedding venue…",
    "email": "terence@claptoncountryclub.com",
    "phone": "+442036693594",
    "website": "https://claptoncountryclub.com",
    "instagram": "https://instagram.com/claptoncountryclub",
    "facebook": "https://www.facebook.com/claptoncountryclub",
    "leadScore": 94,
    "profileUrl": "https://bridebook.com/uk/wedding-venues/clapton-country-club-london-greater-london",
    "searchCategory": "venues",
    "searchLocation": "london",
    "scrapedAt": "2026-06-16T16:00:00.000Z"
}
```

Supplier records (photographers, caterers, etc.) add exact `priceFrom`/`priceTo`, `pricingDescription`, and a type-specific `attributes` block (e.g. `photographyStyle`, `productsServices`).

### 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 with `monitorMode` to capture only new or changed wedding vendors for a fresh lead pipeline.
- **[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/bridebook-scraper').call({
    categories: ['venues', 'photographers'],
    locations: ['london'],
    market: 'uk',
    maxResults: 200,
    includeVendorDetails: true,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} wedding-vendor 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 wedding-vendor leads straight into your CRM.
- **[Slack](https://docs.apify.com/platform/integrations/slack)** — get notified when a monitored search finds new vendors.
- **[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. 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 wedding venues in Kent under £6,000 with 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 **local-business & events lead-gen stack**:

- **[Fresha Scraper](https://apify.com/scrapesage/fresha-scraper)** — salon, spa & beauty business leads.
- **[Booksy Scraper](https://apify.com/scrapesage/booksy-scraper)** — beauty & wellness provider leads.
- **[Eventbrite Scraper](https://apify.com/scrapesage/eventbrite-scraper)** — events with ticket prices and organizer leads.
- **[Bark Listing Scraper](https://apify.com/scrapesage/bark-listing-scraper)** — service-provider leads from Bark.
- **[Houzz Scraper](https://apify.com/scrapesage/houzz-scraper)** — home pros, contacts and reviews.
- **[GetYourGuide Scraper](https://apify.com/scrapesage/getyourguide-scraper)** — tours, activities, prices and reviews.
- **[Caring.com Senior Living Scraper](https://apify.com/scrapesage/caring-senior-living-scraper)** — assisted-living facility leads.
- **[DesignRush Scraper](https://apify.com/scrapesage/designrush-scraper)** — marketing, design & dev agency leads.

### Tips

- **Exhaust a big city**: large markets cap at ~700+ venues per location. Split by category and/or by sub-region (e.g. `london`, then specific London areas) to go deeper.
- **Stable monitoring**: set `maxResults` high enough to cover a location — Bridebook rotates "boosted" suppliers in the top results, so a small cap with `monitorMode` will keep surfacing different vendors until the location is covered.
- **Cost control**: keep `includeVendorDetails` on (it's cheap — contacts come straight from Bridebook, no website crawl). Only turn on `enrichContactEmails` when you want *extra* emails beyond the one already provided.
- **Proxies**: the default Apify Proxy (datacenter) is verified clean and fast for Bridebook.

### FAQ

**How do I scrape wedding venues for a specific city?** Put the city in `locations` (e.g. `london`, `manchester`, `dublin`) and `venues` in `categories`, then pick the matching `market` (country). Combine with supplier categories to pull photographers, caterers, florists and more in the same run.

**Where do the emails and phone numbers come from?** From the vendor's own public Bridebook listing data — the same contact details a couple would use to enquire. With `enrichContactEmails` on, the actor additionally visits the vendor's website for any extra emails.

**Which countries are supported?** UK, Ireland, Australia, Canada, New Zealand, South Africa, Germany, Austria, Switzerland, France and Poland — set the `market` field.

**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 get only new vendors automatically?** Turn on `monitorMode` and create a [Schedule](https://docs.apify.com/platform/schedules). The scheduler decides *when* to run; monitor mode returns *only* new or changed vendors (tagged with `changeType`). They work together — no conflict.

**Is scraping Bridebook 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 Bridebook's terms.

**A field is null — why?** Some vendors genuinely don't publish a price, website, or capacity. Fields are `null` only when the data doesn't exist, not because the scraper skipped them.

### 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`):

Wedding vendor types to scrape (combined with every location). Use <code>venues</code> or any supplier type: <code>photographers</code>, <code>videographers</code>, <code>catering</code>, <code>florists</code>, <code>cakes</code>, <code>music</code> (bands & DJs), <code>planners</code>, <code>beauty</code> (hair & makeup), <code>bridalwear</code>, <code>menswear</code>, <code>jewellery</code>, <code>transport</code>, <code>stationery</code>, <code>marquee</code>, <code>entertainment</code>, <code>decoration</code>.

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

Towns, cities, regions or counties to search, e.g. <code>london</code>, <code>manchester</code>, <code>edinburgh</code>, <code>kent</code>, <code>yorkshire</code>. Each location is combined with every category above. Match the country to the <b>Market</b> below (e.g. <code>dublin</code> for Ireland, <code>sydney</code> for Australia).

## `market` (type: `string`):

Bridebook country site to search. Bridebook covers the UK, Ireland, Australia, Canada, New Zealand, South Africa, Germany, Austria, Switzerland, France & Poland.

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

Direct Bridebook URLs — vendor profile pages (<code>/uk/wedding-venues/...</code>) or search/listing pages (<code>/uk/search/wedding-photographers/london</code>). Used in addition to the searches above.

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

Maximum number of vendor records to scrape across all searches.

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

Only include vendors with at least this many reviews.

## `minRating` (type: `integer`):

Only include vendors with at least this average star rating.

## `maxPrice` (type: `integer`):

Only include vendors whose starting price is at or below this value (in the market's local currency). Vendors that don't publish a price are kept.

## `hasEmailOnly` (type: `boolean`):

Only keep vendors that expose a contact email (requires Include vendor details).

## `hasPhoneOnly` (type: `boolean`):

Only keep vendors that expose a phone number (requires Include vendor details).

## `hasWebsiteOnly` (type: `boolean`):

Only keep vendors that link their own website (requires Include vendor details).

## `includeVendorDetails` (type: `boolean`):

Fetch the full vendor record for every result: <b>direct email, phone, website</b>, Instagram / Facebook / TikTok / Pinterest / LinkedIn / YouTube, full address & geo, description, exact price range, capacity, team size, manager name, weddings hosted, insurance, inclusivity options and specialties. This is the lead-gen wedge — keep it on.

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

On top of the email Bridebook already exposes, crawl the vendor's own website (home + contact/about, max 3 pages) for any additional emails, phone numbers and social links. Only runs for vendors that have a website.

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

Remember vendors seen on previous runs (by ID) and only output vendors that are <b>new</b> or whose price / reviews / details <b>changed</b> since last run. Perfect with a Schedule for a fresh wedding-lead feed. Each output record is tagged with <code>changeType</code> (new / updated).

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

Named key-value store that holds the 'seen' state for monitor mode. Change it to track several searches independently.

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

Proxy used for Bridebook's search pages. The default Apify Proxy (datacenter) is verified clean and fast for Bridebook; switch to residential only if you scrape very aggressively.

## Actor input object example

```json
{
  "categories": [
    "venues"
  ],
  "locations": [
    "london"
  ],
  "market": "uk",
  "maxResults": 100,
  "hasEmailOnly": false,
  "hasPhoneOnly": false,
  "hasWebsiteOnly": false,
  "includeVendorDetails": true,
  "enrichContactEmails": false,
  "monitorMode": false,
  "monitorStoreName": "bridebook-monitor",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

All scraped wedding vendor records (venues & suppliers) with contact and lead data 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": [
        "venues"
    ],
    "locations": [
        "london"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapesage/bridebook-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": ["venues"],
    "locations": ["london"],
    "proxyConfiguration": { "useApifyProxy": True },
}

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

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

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

```

## CLI example

```bash
echo '{
  "categories": [
    "venues"
  ],
  "locations": [
    "london"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call scrapesage/bridebook-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapesage/bridebook-scraper"
        }
    }
}

```

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

## OpenAPI specification

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