# Virgin Megastore Tickets Scraper (`aboo.script/tickets-virginmegastore-me-scraper`) Actor

⚡ Fast Virgin Megastore Tickets scraper. No login, no API key. Extract concerts, shows, sports and attractions in the UAE, Qatar, Bahrain and Oman by keyword or URL. Get every ticket type with price and group offers, showtimes, venue & GPS, organizer and images.

- **URL**: https://apify.com/aboo.script/tickets-virginmegastore-me-scraper.md
- **Developed by:** [Aboo Script](https://apify.com/aboo.script) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.80 / 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/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

## Virgin Megastore Tickets Scraper

![Virgin Megastore Tickets Scraper](https://i.ibb.co/Mkc7yxp1/tickets-virginmegastore-me-banner.png)

**Virgin Megastore Tickets Scraper** extracts concerts, shows, sports events, and attractions from [Virgin Megastore Tickets](https://tickets.virginmegastore.me/) in the UAE, Qatar, Bahrain, and Oman into clean, structured data you can download as JSON, CSV, Excel, or HTML. Paste a country, category, search, or event URL, or type a few keywords, and get every ticket type with its price, showtimes, venue with GPS coordinates, organizer, and images for each event. No account or login required.

### Introduction

[Virgin Megastore Tickets](https://tickets.virginmegastore.me/) is the ticketing platform of Virgin Megastore in the Middle East. It sells tickets for concerts, comedy, family shows, sports, exhibitions, nightlife, and attractions such as theme parks and city experiences in Dubai, Abu Dhabi, Doha, Manama, Muscat, and more.

This actor collects the same public information you see in your browser and turns it into a ready-to-use dataset. You can run it once, schedule it to run daily, or connect it to your own tools.

### What data can you extract from Virgin Megastore Tickets?

- 🎤 Event name, category, summary, and full description
- 📅 Start and end date, date label, doors-open time, and every showtime for multi-date shows
- 🎟️ Every ticket type with price, currency, availability, and group discount price
- 💲 Lowest price and sold-out status
- 📍 Venue name, address, city, country, latitude, and longitude
- 🏢 Organizer name and promotion badge (Best Seller, Recommended, Exclusive)
- 🖼️ Event image, banner, and thumbnail
- 📝 Visitor notice, age restriction, and event terms
- 🔗 Direct URL to each event page

### Use Cases

- 📈 **Market research**: track which artists, shows, and attractions are on sale across the Gulf and how they are priced.
- 🕵️ **Competitor monitoring**: follow ticket prices, price levels, and sold-out events of promoters and venues.
- 🤝 **Lead generation**: build lists of event organizers and venues in the UAE, Qatar, Bahrain, and Oman.
- 🗂️ **Database building**: create your own events calendar or what's-on guide for the Middle East.
- 🤖 **AI and automation**: feed clean, structured data into spreadsheets, dashboards, or AI workflows.

### How to scrape Virgin Megastore Tickets step by step

1. Paste one or more Virgin Megastore Tickets URLs into **Start URLs**, or type keywords into **Search queries**.
2. Optionally pick a **Country**, **Categories**, and a **Date** or **Date from** / **Date to** range for your search queries.
3. Set **Maximum number of results** to how many events you want per URL or per query.
4. Click **Start** and wait for the run to finish.
5. Download your data in JSON, CSV, Excel, or HTML from the **Output** tab.

### Input

- **Start URLs**: Virgin Megastore Tickets URLs to scrape. Supported pages: a country home page (`https://tickets.virginmegastore.me/ae`), category pages (`/ae/music`, `/ae/Sport`, `/ae/family`, `/ae/experiences`, `/qa/music`, ...), search pages (`/ae/search?query=...`), and single event pages. A date filter in a category URL (such as `?date=thisweek`) is kept in the results.
- **Search queries**: keywords to search for, such as an artist, event, or venue name, one per line. Each query is scraped separately.
- **Country**: the country to search in (United Arab Emirates, Qatar, Bahrain, or Oman). Applies to search queries only.
- **Categories**: only return events from these categories, such as Music, Sports, Comedy, Family, Theater, or Experiences & attractions. Applies to search queries only.
- **Date**: only return events in a period such as today, this weekend, or next month. Applies to search queries only.
- **Date from** / **Date to**: only return events within a custom date range. Applies to search queries only and cannot be combined with **Date**.
- **Maximum number of results**: how many events to collect for each start URL or search query.

You can use start URLs, search queries, or both in the same run.

### Input Examples

Scrape music events in the UAE:

```json
{
  "startUrls": [{ "url": "https://tickets.virginmegastore.me/ae/music" }],
  "maxResults": 5
}
```

Search by keyword with filters:

```json
{
  "searchQueries": ["live"],
  "country": "ae",
  "categories": ["music"],
  "dateFrom": "2026-11-01",
  "dateTo": "2026-11-30",
  "maxResults": 5
}
```

### Output

Each event is saved as one item in the dataset. Here is an example of a single item:

```json
{
  "url": "https://tickets.virginmegastore.me/ae/event/30333/music/a1-and-music-travel-love",
  "id": "30333",
  "name": "A1 AND MUSIC TRAVEL LOVE",
  "category": "Music",
  "categorySlug": "music",
  "summary": "Pop icons A1 and global acoustic sensation Music Travel Love will perform together for the first time on the same night at Coca-Cola Arena on 28 March 2026.",
  "description": "Pop icons A1 and global acoustic sensation Music Travel Love will perform together for the first time on the same night at Coca-Cola Arena on 17 April 2027...",
  "startDate": "2027-04-17T20:00:00+04:00",
  "endDate": null,
  "dateLabel": "Sat, 17 Apr 2027, 8:00 PM",
  "doorsOpen": null,
  "showtimes": [],
  "minPrice": 195,
  "currency": "AED",
  "ticketTypes": [
    {
      "id": "296628",
      "name": "Bronze",
      "description": null,
      "price": 195,
      "currency": "AED",
      "available": true,
      "groupDiscountPrice": null,
      "groupDiscountMinQuantity": null
    },
    {
      "id": "296629",
      "name": "Silver",
      "description": null,
      "price": 295,
      "currency": "AED",
      "available": true,
      "groupDiscountPrice": null,
      "groupDiscountMinQuantity": null
    }
  ],
  "soldOut": false,
  "badge": "Best Seller",
  "venueName": "Coca-Cola Arena",
  "venueAddress": "City Walk, Dubai, United Arab Emirates",
  "city": "Dubai",
  "country": "United Arab Emirates",
  "countryCode": "AE",
  "latitude": 25.204310200000002,
  "longitude": 55.26538219999999,
  "organizer": "Coca Cola",
  "image": "https://tixity.virginmegastore.me/files/event_image_30333__1774266000.jpg",
  "bannerImage": "https://tixity.virginmegastore.me/files/event_banner_30333__1774266000.jpg",
  "thumbnail": "https://tixity.virginmegastore.me/files/event_thumb_30333__1774266000.jpg",
  "notice": "Your e-tickets will be sent to you 5 days before event day.\n\nAll guests, including children over 12 months of age, must have a valid ticket to enter Coca-Cola Arena...",
  "ageRestriction": null,
  "eventTerms": null
}
```

You can download the dataset in JSON, CSV, Excel, XML, or HTML, or access it through the Apify API.

### Notes

- Supported countries are the United Arab Emirates (`/ae`), Qatar (`/qa`), Bahrain (`/bh`), and Oman (`/om`). Other site pages, such as FAQ, cart, or account pages, are skipped.
- Category pages that only show promotions and no event list (for example Dubai Nights) return no results.
- Prices are in the local currency of the country (AED, QAR, BHD, or OMR) and match the prices shown on the website.
- Dates include the local time zone of the country. Attractions and experiences without a fixed time only have a date.
- For shows with many dates, every date and time is listed in `showtimes`, and the ticket types come from the next available showtime.
- `groupDiscountPrice` is the price per ticket when you buy at least `groupDiscountMinQuantity` tickets; it is empty when there is no group offer.
- Events sold through a partner page have no ticket types.
- The website search also matches words in event descriptions, so a keyword search can return related events too.
- An event that appears in several start URLs or queries is saved only once.

### Why use the Virgin Megastore Tickets Scraper?

- ✅ **No login needed**: works with public data only, so there is no account to manage.
- 🎟️ **Every ticket type**: get all price levels and group offers, not only the lowest price.
- 🌍 **Four countries**: scrape the UAE, Qatar, Bahrain, and Oman in one run.
- 🧹 **Clean data**: numbers are real numbers, dates use one standard format, and text is free of HTML.
- 💸 **Pay for what you need**: set a result limit per URL or query and keep every run small and cheap.
- 🔄 **Ready for automation**: schedule runs, export to Google Sheets, or connect to Make, Zapier, and n8n.

### FAQ

#### How many results can I scrape?

You can set any number in **Maximum number of results**. The actor keeps going until it reaches your limit or runs out of events.

#### Do I need a Virgin Megastore Tickets account?

No. The actor only collects publicly available data. You do not need to log in or provide any account details.

#### Can I scrape data on a schedule?

Yes. Use Apify Schedules to run the actor every hour, day, or week, and get fresh events and prices automatically.

#### Why are some fields empty?

Some events simply do not show every piece of information, such as doors-open time, age restriction, or venue location. When a field is not available on the website, it is returned as `null`.

#### Can I request a new feature or filter?

Yes. Right now the actor supports start URLs, search queries, country, category, and date filters. If you need other filters or inputs, such as city or venue, get in touch and they can be added.

#### Can I get a custom or private version?

Yes. The actor can be customized for your workflow, delivered as a private version, or a new scraper can be built for a different website. Use the contact details below.

### Need to scrape other event ticketing platforms?

- [Webook Scraper - Events & Experiences](https://apify.com/aboo.script/webook-scraper): events and experiences in Saudi Arabia and the Middle East with tickets and prices.
- [The Agenda Scraper - Dubai Concerts & Shows](https://apify.com/aboo.script/theagenda-scraper): Dubai concerts and shows with dates, venues, and ticket links.
- [Fever Scraper - Events & Experiences](https://apify.com/aboo.script/feverup-scraper): events and experiences in cities worldwide with prices and time slots.
- [Get-In Scraper - Events](https://apify.com/aboo.script/get-in-scraper): parties, festivals, and concerts with ticket tiers and lineups.
- [Ticketmaster Scraper](https://apify.com/aboo.script/ticketmaster-scraper): Ticketmaster events with venues, dates, and prices.

***

**Need help or want a custom solution?**

- 📧 Email: aboo.script@gmail.com
- 🧩 More scrapers: [Apify profile](https://apify.com/aboo.script)

### Image Credit

Image credit: [Virgin Megastore Tickets](https://tickets.virginmegastore.me/)

# Actor input Schema

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

Virgin Megastore Tickets URLs: a country home page (https://tickets.virginmegastore.me/ae), a category page (/ae/music, /ae/Sport, /qa/music, ...), a search page (/ae/search?query=...), or an event page (/ae/event/...). The date filter in a category URL (?date=thisweek) is respected.

## `searchQueries` (type: `array`):

Keywords to search for events (artist, event, or venue name). Each query is scraped separately.

## `country` (type: `string`):

Country to search in. Applies to search queries only; start URLs use the country in their path.

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

Only return events from these categories. Applies to search queries only. Leave empty for all categories.

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

Only return events in this period. Applies to search queries only. Cannot be combined with Date from / Date to.

## `dateFrom` (type: `string`):

Only return events taking place on or after this date (YYYY-MM-DD). Applies to search queries only.

## `dateTo` (type: `string`):

Only return events taking place on or before this date (YYYY-MM-DD). Applies to search queries only.

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

Maximum number of events to scrape per start URL or search query.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://tickets.virginmegastore.me/ae/music"
    }
  ],
  "country": "ae",
  "maxResults": 5
}
```

# 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://tickets.virginmegastore.me/ae/music"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("aboo.script/tickets-virginmegastore-me-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://tickets.virginmegastore.me/ae/music" }] }

# Run the Actor and wait for it to finish
run = client.actor("aboo.script/tickets-virginmegastore-me-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://tickets.virginmegastore.me/ae/music"
    }
  ]
}' |
apify call aboo.script/tickets-virginmegastore-me-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,aboo.script/tickets-virginmegastore-me-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/3nivpCkXzq6SdY0FZ/builds/yRQCDaiDaIGg0jtKK/openapi.json
