# Dubai Tickets Scraper (`aboo.script/dubai-tickets-co-scraper`) Actor

⚡ Fast Dubai Tickets scraper. No login, no API key. Scrape Dubai attractions, tours and experiences by category, attraction or booking URL. Get every ticket option with prices, a price calendar per date, ratings, highlights, inclusions, GPS and images, in 56 currencies.

- **URL**: https://apify.com/aboo.script/dubai-tickets-co-scraper.md
- **Developed by:** [Aboo Script](https://apify.com/aboo.script) (community)
- **Security:** Limited permissions
- **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

## Dubai Tickets Scraper

![Dubai Tickets Scraper](https://i.ibb.co/pBJRQ3Qv/dubai-tickets-co-banner.png)

**Dubai Tickets Scraper** extracts attractions, tours, and experiences from [Dubai Tickets](https://www.dubai-tickets.co/) into clean, structured data you can download as JSON, CSV, Excel, or HTML. Paste a Dubai Tickets page URL and get the name, price, every ticket option, prices per date, rating, description, location, and images of each experience. No account or login required.

### Introduction

[Dubai Tickets](https://www.dubai-tickets.co/) is a booking site curated by Headout for things to do in Dubai: Burj Khalifa, theme parks, water parks, desert safaris, cruises, skydiving, city passes, airport transfers, and hundreds of other tours and attractions.

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

### What data can you extract from Dubai Tickets?

- 🏷️ Experience name, ID, attraction, category, subcategory, type, and combo flag
- 💲 Starting price, original price, discount, price type, and currency
- 🎟️ Every ticket option with its own price, original price, discount, description, duration, and group size limits
- 📅 Price calendar: price and original price for each available date
- ⭐ Rating, review count, and rating breakdown by stars
- 📝 Short description, full description, highlights, inclusions, exclusions, know before you go, and ticket delivery
- 🛡️ Features such as mobile tickets, instant confirmation, skip the line, hotel pickup, free cancellation, and the cancellation and reschedule windows
- 📍 City, country, address, and GPS coordinates
- 🖼️ Images, video link, supported languages, next available date, and availability

### Use Cases

- 📈 **Market research**: compare prices of Dubai attractions, tours, and combos.
- 🕵️ **Competitor monitoring**: see which experiences are sold, at what price, and with which ticket options.
- 💹 **Price tracking**: schedule daily runs to follow prices per date and per ticket option.
- 🗂️ **Database building**: build a catalog of Dubai things to do with descriptions, images, and locations.
- 🤖 **AI and automation**: feed clean, structured data into spreadsheets, dashboards, or AI workflows.

### How to scrape Dubai Tickets step by step

1. Paste one or more Dubai Tickets URLs into **Start URLs**.
2. Choose a **Currency** for all prices.
3. Set **Max results per start URL** to how many experiences you want from each URL.
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**: Dubai Tickets pages to scrape. Supported pages:

  - the home page (`https://www.dubai-tickets.co/`)
  - category pages (`https://www.dubai-tickets.co/tours/`, `https://www.dubai-tickets.co/attractions/`, `https://www.dubai-tickets.co/attractions/theme-parks-in-dubai/`)
  - attraction pages (`https://www.dubai-tickets.co/burj-khalifa/`, `https://www.dubai-tickets.co/skydive-dubai/`)
  - experience booking pages (`https://book.dubai-tickets.co/book/1866/`)

  Category pages that only list attractions are followed to every attraction they show.
- **Max results per start URL**: how many experiences to collect for each start URL. Set `0` for no limit.
- **Currency**: the currency of every price in the results (56 currencies, default AED).

### Input Examples

Scrape Burj Khalifa tickets and Dubai tours:

```json
{
  "startUrls": [
    { "url": "https://www.dubai-tickets.co/burj-khalifa/" },
    { "url": "https://www.dubai-tickets.co/tours/" }
  ],
  "maxResults": 5,
  "currency": "AED"
}
```

Scrape every attraction in a category with prices in US dollars:

```json
{
  "startUrls": [{ "url": "https://www.dubai-tickets.co/attractions/" }],
  "maxResults": 0,
  "currency": "USD"
}
```

### Output

Each experience is saved as one item in the dataset. Here is an example of a single item (long texts and lists are shortened):

```json
{
  "url": "https://book.dubai-tickets.co/book/59127/",
  "id": 59127,
  "name": "[Headout Exclusive] Burj Khalifa SKY Entry Ticket: Levels 148, 124 & 125 + Mini Tower Souvenir",
  "city": "Dubai",
  "country": "United Arab Emirates",
  "collection": "Burj Khalifa Tickets",
  "category": "Tickets",
  "subcategory": "Observation Decks",
  "experienceType": "Tour",
  "isCombo": false,
  "currency": "AED",
  "price": 477.5,
  "originalPrice": 477.5,
  "discountPercent": 0,
  "priceType": "Per Person",
  "ticketOptions": [
    {
      "id": 126719,
      "name": "[Exclusive] Burj Khalifa At The Top SKY Level 148, 124-125 + Metal Souvenir",
      "description": "Premium skip-the-line priority access\nTake home a Burj Khalifa mini tower metal keepsake\nPersonalized service and SKY Lounge access...",
      "price": 477.5,
      "originalPrice": 477.5,
      "discountPercent": 0,
      "priceType": "Per Person",
      "openDated": false,
      "tours": [
        {
          "id": 121155,
          "name": "[Exclusive] Burj Khalifa At The Top SKY Level 148, 124-125 + Metal Souvenir",
          "durationMinutes": null,
          "minPax": 1,
          "maxPax": 10
        }
      ]
    }
  ],
  "dailyPrices": [
    { "date": "2026-10-29", "price": 477.5, "originalPrice": 477.5, "paxType": "Adult" },
    { "date": "2026-10-30", "price": 477.5, "originalPrice": 477.5, "paxType": "Adult" }
  ],
  "rating": null,
  "reviewCount": 0,
  "ratingBreakdown": [
    { "stars": 5, "count": 0 },
    { "stars": 4, "count": 0 },
    { "stars": 3, "count": 0 },
    { "stars": 2, "count": 0 },
    { "stars": 1, "count": 0 }
  ],
  "nextAvailableDate": "2026-10-29",
  "availability": "Limited",
  "shortDescription": null,
  "description": "Your experience\nAccess the world’s highest observation deck at Burj Khalifa with premium skip-the-line entry, personalized SKY Lounge service, and a metal keepsake...",
  "highlights": [
    "Skip the ticket lines with priority entry and enjoy personalized service plus SKY Lounge access at Burj Khalifa.",
    "Begin your visit with fast-track access, then relax in the SKY Lounge with Arabic coffee, sweets, and city views."
  ],
  "inclusions": [
    "Premium skip-the-line priority access",
    "Take home a Burj Khalifa mini tower metal keepsake"
  ],
  "exclusions": [
    "Canapés and alcoholic beverages",
    "Outside food and beverage not allowed"
  ],
  "knowBeforeYouGo": "Know before you go\nWhat's not allowed\n- Outside food and beverages are not permitted inside Burj Khalifa...",
  "ticketDelivery": [
    "Your voucher will be emailed to you shortly.",
    "Display the voucher on your mobile phone with a valid photo ID at the starting point."
  ],
  "features": ["Explore at your pace", "Free cancellation"],
  "hasMobileTicket": true,
  "hasInstantConfirmation": false,
  "hasSkipTheLine": true,
  "hasHotelPickup": false,
  "hasFreeCancellation": true,
  "cancellable": true,
  "cancellableUpToHours": 24,
  "reschedulable": true,
  "reschedulableUpToHours": 24,
  "minDurationMinutes": null,
  "maxDurationMinutes": null,
  "address": "Burj Khalifa - Downtown Dubai - Dubai - United Arab Emirates, Burj Kfalifa, Dubai, United Arab Emirates",
  "latitude": 25.19719696044922,
  "longitude": 55.274375915527344,
  "languages": ["CS", "DA", "DE", "EL", "EN", "ES", "FR", "IT"],
  "images": [
    "https://cdn-imgix.headout.com/media/images/771d939ff2e79b0675321efea2e0295f-1864-dubai-tickets-to-burj-khalifa-at-the-top-sky-level-148--124---125-with-refreshments-06.jpg"
  ],
  "videoUrl": null,
  "listedDate": "2026-10-16"
}
```

### Notes

- Only pages on www.dubai-tickets.co and experience booking pages on book.dubai-tickets.co are supported. Travel guide articles, policy pages, and other websites are skipped with a warning.
- Each start URL returns the experiences shown on that page. The home page shows a selection of top experiences (including some outside Dubai, such as Abu Dhabi); for the full catalog, use category pages such as `/attractions/`, `/tours/`, or `/transportation/`.
- An experience found by two start URLs in the same run is saved only once.
- The starting price is the lowest price per person; see `ticketOptions` and `dailyPrices` for every option and date.
- `rating` is empty for new experiences without reviews.
- Descriptions are in English, as shown on the site.
- Other filters can be added on request.

### Why use the Dubai Tickets Scraper?

- ⚡ **Fast and light**: no browser needed, results in seconds.
- 🎟️ **Complete pricing**: every ticket option and a price calendar, not just the "from" price.
- 💱 **Any currency**: choose from 56 currencies.
- 🔓 **No login, no API key**: just paste a URL.

### FAQ

#### How many results can I scrape?

Set **Max results per start URL** to any number, or `0` for no limit. Each start URL returns the experiences listed on that page; category pages with attraction links can return several hundred experiences.

#### Do I need a Dubai Tickets account?

No. The actor only collects public information, so no account or login is needed.

#### Can I get prices in my currency?

Yes. Pick one of 56 currencies in **Currency**, and every price in the results uses it.

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

Yes. Use Apify schedules to run the actor daily or weekly and follow price changes over time.

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

Yes. Contact us using the details below and we will look into it.

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

Yes. We can customize this actor, build a private version, or create a new scraper for your needs.

### Need to scrape other attraction and ticket platforms?

- [Tickete Scraper](https://apify.com/aboo.script/tickete-co-scraper)
- [Tiqets Scraper](https://apify.com/aboo.script/tiqets-scraper)

***

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

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

### Image Credit

Banner image: screenshot of [Dubai Tickets](https://www.dubai-tickets.co/).

# Actor input Schema

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

Dubai Tickets pages to scrape. Supported: the home page, category pages (e.g. https://www.dubai-tickets.co/attractions/ or https://www.dubai-tickets.co/tours/), attraction pages (e.g. https://www.dubai-tickets.co/burj-khalifa/) and experience booking pages (e.g. https://book.dubai-tickets.co/book/1866/). Category pages that only link to attractions are followed to every attraction they list.

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

Maximum number of experiences to scrape for each start URL. Set 0 for unlimited.

## `currency` (type: `string`):

Currency of all prices in the results.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.dubai-tickets.co/burj-khalifa/"
    },
    {
      "url": "https://www.dubai-tickets.co/tours/"
    }
  ],
  "maxResults": 5,
  "currency": "AED"
}
```

# 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.dubai-tickets.co/burj-khalifa/"
        },
        {
            "url": "https://www.dubai-tickets.co/tours/"
        }
    ],
    "maxResults": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("aboo.script/dubai-tickets-co-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.dubai-tickets.co/burj-khalifa/" },
        { "url": "https://www.dubai-tickets.co/tours/" },
    ],
    "maxResults": 5,
}

# Run the Actor and wait for it to finish
run = client.actor("aboo.script/dubai-tickets-co-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.dubai-tickets.co/burj-khalifa/"
    },
    {
      "url": "https://www.dubai-tickets.co/tours/"
    }
  ],
  "maxResults": 5
}' |
apify call aboo.script/dubai-tickets-co-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,aboo.script/dubai-tickets-co-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/0Zy3D6tdhLV09OXD5/builds/tW0bGipHrf3z5qYMD/openapi.json
