# Tagvenue Scraper (`lexis-solutions/tagvenue-scraper`) Actor

Scrape venue and room details from Tagvenue.com—including location, capacity, amenities, pricing, reviews, and accessibility. Supports direct URLs or search queries with rich filters. Ideal for event planning, lead generation, market research, and venue analytics. Structured, fast, customizable.

- **URL**: https://apify.com/lexis-solutions/tagvenue-scraper.md
- **Developed by:** [Lexis Solutions](https://apify.com/lexis-solutions) (community)
- **Categories:** Travel, Lead generation, News
- **Stats:** 10 total users, 1 monthly users, 83.9% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $6.40 / 1,000 results

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

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Tagvenue Scraper

![banner](https://i.imgur.com/aFX4UGf.png)

👋 Welcome to the Tagvenue Scraper! This actor extracts detailed venue and room data from tagvenue.com, including location, capacity, amenities, pricing range, reviews, accessibility, and more.

### Introduction

The Tagvenue Scraper is a web scraping actor that collects venue and room details from tagvenue.com. It supports both direct room URLs and search-based discovery with rich filtering, making it useful for event planning, lead generation, market research, and venue analytics.

### Use Cases

- **Event Planning**: Find rooms with specific capacity, layout, amenities, catering, and accessibility.
- **Lead Generation**: Build structured datasets of venues and rooms for outreach.
- **Competitive Analysis**: Compare ratings, reviews, and pricing ranges across venues.
- **Market Research**: Analyze venue distribution by area, type, and features.

### Input 📥

Provide at least one of `startUrls` or `eventQuery`.

- **startUrls** (array, optional): Direct URLs to scrape. Supports room detail pages or event-venue search pages.
- **eventQuery** (string, optional): Search tag to discover venues (e.g., "wedding", "conference").
- **maxItems** (integer, required): Maximum number of rooms to extract.
- **page** (integer, optional): Starting page for search results. Default: `1`.
- **location** (string, optional): Location text, resolved via Tagvenue autocomplete (e.g., "London").
- **people** (integer, optional): Number of attendees.
- **roomLayout** (string, optional): Room layout key. Options include: `0` (Standing), `100` (Seating), `1` (Dining), `5` (Theatre), `3` (Cabaret), `2` (Boardroom), `4` (Classroom), `6` (U-Shaped).
- **date** (string, optional): Date in a parseable format; converted to `DD/MM/YYYY`.
- **timeFrom** (string, optional): Time slot key (see Tagvenue enumerations, e.g., `1` → `06:00`).
- **timeTo** (string, optional): Time slot key (validated and capped to available range).
- **minPrice** (number, optional): Minimum price filter.
- **maxPrice** (number, optional): Maximum price filter.
- **cateringOptions** (array\[string], optional): Keys for catering options (e.g., `1`, `8`, `16`, `7`, `1001`, `1000`, `18`, `20`, `14`, `2`, `15`, `3`, `21`).
- **venueParts** (array\[string], optional): Venue parts (e.g., `the_whole_venue`, `private_space_within_the_venue`).
- **venueTypes** (array\[string], optional): Venue type keys (e.g., `196` Bar, `187` Hotel, `197` Restaurant, ...).
- **roomFeatures** (array\[string], optional): Room feature keys (e.g., `12` Speakers, `5` Wifi, `8` Projector, ...).
- **accessibilityFeatures** (array\[string], optional): Keys (e.g., `wheelchairAccessible`, `disabledToilets`, `groundLevel`, `disabledParking`, `liftAllFloors`, `cargoLift`).
- **ageRestriction** (boolean, optional): Only venues without age restriction.
- **onlyShowSuperVenues** (boolean, optional): Filter for super venues only.
- **cancellationFlexibility** (boolean, optional): Filter for flexible cancellation only.
- **proxyConfiguration** (object, optional): Apify proxy configuration. Default: `{ "useApifyProxy": false }`.

Example input using `eventQuery`:

```json
{
  "eventQuery": "wedding",
  "location": "London",
  "people": 120,
  "roomLayout": "5",
  "date": "2025-10-24",
  "timeFrom": "9",
  "timeTo": "21",
  "minPrice": 100,
  "maxPrice": 2000,
  "cateringOptions": ["1", "8", "18"],
  "venueParts": ["the_whole_venue"],
  "venueTypes": ["196", "197"],
  "roomFeatures": ["5", "8"],
  "accessibilityFeatures": ["wheelchairAccessible", "disabledToilets"],
  "ageRestriction": true,
  "onlyShowSuperVenues": false,
  "cancellationFlexibility": true,
  "maxItems": 50,
  "proxyConfiguration": { "useApifyProxy": true }
}
```

Example input using `startUrls`:

```json
{
  "startUrls": [
    { "url": "https://www.tagvenue.com/rooms/london/12345-some-venue" },
    { "url": "https://www.tagvenue.com/search/event-venue/london?view=results" }
  ],
  "maxItems": 50
}
```

### Output 📤

Each dataset item represents a room/venue detail with the following fields:

```json
{
  "name": "Mala Madre Events Space at The Last Talisman",
  "url": "https://www.tagvenue.com/rooms/london/25426/the-last-talisman/mala-madre-events-space?event-offer=baby-shower",
  "priceRange": "from £10 per person / per session",
  "mainImage": "https://www.tagvenue.com/resize/07/49/widen-1680-noupsize;25426-mala-madre-events-space-room.jpg",
  "hasMap": "https://www.google.com/maps/search/?api=1&query=51.499067,-0.0808991",
  "addressLocality": "London",
  "addressRegion": null,
  "postalCode": "SE1 3UW",
  "streetAddress": "171-173 Bermondsey Street",
  "addressCountry": "GB",
  "longtitude": "-0.0808991",
  "latitude": "51.499067",
  "maximumAttendeeCapacity": 90,
  "maxSittingCapacity": 60,
  "minAttendeesPerEvent": 30,
  "minimumHoursForBooking": null,
  "maxBoardRooms": 18,
  "additionalProperty": [
    {
      "name": "Seated capacity",
      "value": 60
    },
    {
      "name": "Standing capacity",
      "value": 90
    }
  ],
  "reviews": [
    {
      "author": {
        "@type": "Person",
        "name": "Luisa P."
      },
      "datePublished": "2025-09-09",
      "reviewBody": "I celebrated my 30's at Mala Madre and it was amazing!! Lovely space, staff was always ready to help, food was really good and delicious cocktails! The whole vibe was great and I'd 200% recommend and come back. Thank you so much!!",
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": 4.8,
        "bestRating": 5,
        "worstRating": 1
      }
    }
  ],
  "ratingValue": 4.7,
  "reviewCount": 588,
  "worstRating": 1,
  "bestRating": 5,
  "openingHours": [
    {
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday"],
      "opens": "09:00",
      "closes": "23:00"
    }
  ],
  "images": [
    "https://www.tagvenue.com/resize/07/49/widen-1680-noupsize;25426-mala-madre-events-space-room.jpg",
    "https://www.tagvenue.com/resize/85/75/widen-1680-noupsize;25426-mala-madre-events-space-room.jpg",
    "https://www.tagvenue.com/resize/b2/5d/widen-1680-noupsize;25426-mala-madre-events-space-room.jpg"
  ],
  "categories": "Event Space in a Restaurant; Private space",
  "nearestStationName": "London Bridge Station (0.5 mi)",
  "roomId": 25426,
  "venueName": "The Last Talisman",
  "venueId": 11896,
  "companyId": 67,
  "managerName": "Dovile S.",
  "responseTime": 39,
  "responseRate": 0.9991,
  "rating": 4.7,
  "photosCount": 69,
  "reviewsCount": 588,
  "aboutSpace": "A stone’s throw from London Bridge Station, The Last Talisman’s Mala Madre is a well-loved birthday and hen party venue. Their highly rated communication and value-for-money make it a popular choice. Looking for the perfect venue to host your next special occasion? Look no further than Mala Madre – where every event....",
  "cateringAndDrinks": [
    {
      "name": "In-house catering available",
      "list": [
        "Extensive vegan menu",
        "Extensive gluten-free menu",
        "Complimentary water"
      ]
    },
    {
      "name": "Asian cuisine",
      "list": []
    },
    {
      "name": "No external catering allowed",
      "list": []
    },
    {
      "name": "Venue provides alcohol",
      "list": ["Alcohol licence until 1:30"]
    },
    {
      "name": "No BYO alcohol allowed",
      "list": []
    }
  ],
  "facilities": {
    "Wi-Fi available": true,
    "Projector": true,
    "Flatscreen TV": true,
    "Whiteboard": true,
    "Flipchart": true,
    "PA system / speakers": true,
    "Air conditioner": true,
    "Natural light": true,
    "Paid parking facilities available nearby": true,
    "Private Bar": true,
    "Private Entrance": true,
    "Private Toilets": true,
    "Conference call facilities": false,
    "Storage space": false,
    "Quiet space": false,
    "Alcohol licence": false
  },
  "musicAndSoundEquipment": {
    "Play your own music": true,
    "Space has noise restriction after 23:00": true,
    "Bring your own DJ not allowed": true
  },
  "accessibility": {
    "Accessible toilets": false,
    "Ground level": false,
    "Accessible parking spot available": false,
    "Lift to all floors": false,
    "Cargo lift": false,
    "Wheelchair accessible": false
  },
  "allowedEvents": [
    "No promoted and ticketed events allowed",
    "Temporary event notices available",
    "No wedding licence"
  ],
  "hostRules": [
    "No smoking in the building ",
    "Outside catering is not allowed"
  ],
  "aboutTheParcelYard": "Reviews and ratings 4.7 (588 reviews and ratings - Read all) Verified...."
}
```

### How many items can the Tagvenue Scraper extract?

The actor paginates through listing results and stops when it reaches `maxItems`. For complete coverage, set a high `maxItems` value.

### Why use the Tagvenue Scraper?

- ⚡️ **Fast**: Efficiently traverses Tagvenue search and detail pages.
- 🤙 **Easy to use**: Works with either direct URLs or a simple `eventQuery`.
- ☑️ **Reliable**: Uses robust selectors and normalization for consistent output.
- 🎯 **Flexible**: Rich filtering by location, time, layout, features, and more.
- 🔍 **Comprehensive**: Captures ratings, reviews, amenities, and accessibility details.

### FAQ 💬

- **Do I need `eventQuery` and `startUrls`?**\
  Provide at least one. `eventQuery` enables discovery; `startUrls` targets known pages.

- **What if `eventQuery` does not match a tag?**\
  The actor fails fast with a helpful message if the tag cannot be resolved.

- **How are `location` values resolved?**\
  Via Tagvenue autocomplete and place details APIs to coordinates and neighbourhood names.

- **How are `eventQuery` and `location` interpreted internally?**\
  Both are matched against Tagvenue’s live suggestions and the first suggestion is used automatically (for `eventQuery`, the first tag match; for `location`, the first autocomplete result), mirroring the website’s behavior.

### Related actors

Explore related actors maintained in this monorepo:

- [Barnes & Noble Scraper](https://apify.com/lexis-solutions/barnesandnoble-scraper) - Books and publications
- [Companies House UK Scraper](https://apify.com/lexis-solutions/companies-house-uk-scraper) - UK company registry data
- [Kununu](https://apify.com/lexis-solutions/kununu-scraper) - Employer reviews
- [Jobs.ch](https://apify.com/lexis-solutions/jobs-ch-scraper) - Swiss job listings
- [InfoJobs](https://apify.com/lexis-solutions/infojobs-net-scraper) - Job listings

***

👀 Need help or want a custom solution?

Lexis Solutions is a certified Apify Partner. We can help you with custom data extraction projects.

Contact us via [Email](mailto:scraping@lexis.solutions) or [LinkedIn](https://www.linkedin.com/company/lexis-solutions)

# Actor input Schema

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

URLs to start with.

## `maxItems` (type: `integer`):

Maximum number of items that will be extracted.

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

Your proxy configuration from Apify

## `eventQuery` (type: `string`):

Event Query

## `location` (type: `string`):

Location

## `page` (type: `integer`):

Page

## `people` (type: `integer`):

People

## `roomLayout` (type: `string`):

Room Layout

## `date` (type: `string`):

Start date in the format YYYY-MM-DD

## `timeFrom` (type: `string`):

Time From

## `timeTo` (type: `string`):

Time To

## `minPrice` (type: `integer`):

Page

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

Page

## `cateringOptions` (type: `array`):

Catering Options

## `venueParts` (type: `array`):

Venue Parts

## `venueTypes` (type: `array`):

Venue Types

## `roomFeatures` (type: `array`):

Room Features

## `accessibilityFeatures` (type: `array`):

Accessibility Features

## `ageRestriction` (type: `boolean`):

Age Restriction

## `onlyShowSuperVenues` (type: `boolean`):

Only Show Super Venues

## `cancellationFlexibility` (type: `boolean`):

Cancellation Flexibility

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.tagvenue.com/uk/search/event-venue?longitude_from=-18.27310078124999&longitude_to=12.181000781250008&latitude_from=45.153378402503485&latitude_to=64.13122223751947&form_timestamp=1758682558&getAllRoomsPositions=true&hideRoomsData=false&items_per_page=36&map_zoom=5&people=&date=&time_from=&time_to=&room_layout=0&min_price=&max_price=&price_range=&price_method=&neighbourhood=United%20Kingdom&page=1&room_tag=event-venue&supervenues_only=false&flexible_cancellation_only=false&no_age_restriction=false&iso_country_code=GB&view=results&trigger=initMap"
    }
  ],
  "maxItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": false,
    "apifyProxyGroups": []
  },
  "ageRestriction": false,
  "onlyShowSuperVenues": false,
  "cancellationFlexibility": false
}
```

# Actor output Schema

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

No description

# API

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

## JavaScript example

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

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

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.tagvenue.com/uk/search/event-venue?longitude_from=-18.27310078124999&longitude_to=12.181000781250008&latitude_from=45.153378402503485&latitude_to=64.13122223751947&form_timestamp=1758682558&getAllRoomsPositions=true&hideRoomsData=false&items_per_page=36&map_zoom=5&people=&date=&time_from=&time_to=&room_layout=0&min_price=&max_price=&price_range=&price_method=&neighbourhood=United%20Kingdom&page=1&room_tag=event-venue&supervenues_only=false&flexible_cancellation_only=false&no_age_restriction=false&iso_country_code=GB&view=results&trigger=initMap"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("lexis-solutions/tagvenue-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": [{ "url": "https://www.tagvenue.com/uk/search/event-venue?longitude_from=-18.27310078124999&longitude_to=12.181000781250008&latitude_from=45.153378402503485&latitude_to=64.13122223751947&form_timestamp=1758682558&getAllRoomsPositions=true&hideRoomsData=false&items_per_page=36&map_zoom=5&people=&date=&time_from=&time_to=&room_layout=0&min_price=&max_price=&price_range=&price_method=&neighbourhood=United%20Kingdom&page=1&room_tag=event-venue&supervenues_only=false&flexible_cancellation_only=false&no_age_restriction=false&iso_country_code=GB&view=results&trigger=initMap" }] }

# Run the Actor and wait for it to finish
run = client.actor("lexis-solutions/tagvenue-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 '{
  "startUrls": [
    {
      "url": "https://www.tagvenue.com/uk/search/event-venue?longitude_from=-18.27310078124999&longitude_to=12.181000781250008&latitude_from=45.153378402503485&latitude_to=64.13122223751947&form_timestamp=1758682558&getAllRoomsPositions=true&hideRoomsData=false&items_per_page=36&map_zoom=5&people=&date=&time_from=&time_to=&room_layout=0&min_price=&max_price=&price_range=&price_method=&neighbourhood=United%20Kingdom&page=1&room_tag=event-venue&supervenues_only=false&flexible_cancellation_only=false&no_age_restriction=false&iso_country_code=GB&view=results&trigger=initMap"
    }
  ]
}' |
apify call lexis-solutions/tagvenue-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,lexis-solutions/tagvenue-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/ZT9FdQPKCxrHhgi2L/builds/MhptsKJx9F1dpcQq5/openapi.json
