# SoldOut Tickets Scraper - Cyprus Events (`aboo.script/soldoutticketbox-scraper`) Actor

Scrape events from SoldOut Tickets (soldoutticketbox.com), Cyprus' ticketing site: titles, categories, venues, dates, every session, prices, price levels, organizer contacts and descriptions. Start from any category, list or event URL, or search by keyword.

- **URL**: https://apify.com/aboo.script/soldoutticketbox-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.10 / 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

## SoldOut Tickets Scraper - Cyprus Events

![SoldOut Tickets Scraper - Cyprus Events](https://i.ibb.co/MyhyvBSs/soldoutticketbox-banner.png)

**SoldOut Tickets Scraper** extracts events from [SoldOut Tickets](https://www.soldoutticketbox.com/) (soldoutticketbox.com), the event ticketing site of Cyprus, into clean, structured data you can download as JSON, CSV, Excel, or HTML. Paste a category, list, or event URL, or type a few keywords, and get the title, categories, venue, every date and time, prices, price levels, organizer contacts, and description of each event. No account or login required, and it works on the site's Cloudflare-protected pages.

### Introduction

[SoldOut Tickets](https://www.soldoutticketbox.com/) sells tickets for concerts, theatre, dance, kids' shows, festivals, stand-up comedy, conferences, and charity events across Nicosia, Limassol, Larnaca, Paphos, and Famagusta. It is one of the main places to see what is on in Cyprus, which venues host it, and what tickets cost.

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 SoldOut Tickets?

- 🏷️ Event title, event ID, categories, duration, and language
- 📅 Overall dates plus the first and last show as ISO dates
- 🎟️ Every show date (sessions): date and time, day of the week, venue, ticket status, and direct ticket link
- 💲 Price text from the site, lowest and highest price, currency, and named price levels (for example Early Bird, Gold, VIP)
- 📍 Venue name and the venue's map coordinates for each show date
- 🏢 Producer or organizer name, phone, and email
- 📝 Full description, additional event info, and video links
- 🖼️ Event image and poster
- 🔗 Direct URL to each event page

### Use Cases

- 📈 **Market research**: track which shows, concerts, and festivals run in Cyprus, and how ticket prices compare across venues and categories.
- 🕵️ **Competitor monitoring**: follow what other promoters and venues put on sale, when, and at what price.
- 🤝 **Lead generation**: build a list of event organizers and producers with their phone numbers and emails.
- 🗂️ **Database building**: create your own event calendar or listings site for Cyprus, with dates, venues, and map locations.
- 🤖 **AI and automation**: feed clean, structured data into spreadsheets, dashboards, or AI workflows.

### How to scrape SoldOut Tickets step by step

1. Paste one or more SoldOut Tickets URLs into **Start URLs**, or type keywords into **Search queries**.
2. Set **Maximum number of results** to how many events you want per URL or per query.
3. Click **Start** and wait for the run to finish.
4. Download your data in JSON, CSV, Excel, or HTML from the **Output** tab.

### Input

- **Start URLs**: SoldOut Tickets URLs to scrape. Supported pages: the home page, category pages (such as Music, Theatre, Dance, Kids, or a venue category like Pattihio Theatre Limassol), the On Sale Now and Past Events pages, and single event pages. Greek, English, and Russian versions of these pages all work.
- **Search queries**: keywords to search on SoldOut Tickets (event, venue, or organizer name), one per line. Each query is scraped separately.
- **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 the Music category:

```json
{
  "startUrls": [
    {
      "url": "https://www.soldoutticketbox.com/easyconsole.cfm/page/category/cat_id/3/lang/en"
    }
  ],
  "maxResults": 5
}
```

Search by keywords:

```json
{
  "searchQueries": ["metallica", "theatre"],
  "maxResults": 5
}
```

### Output

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

```json
{
  "url": "https://www.soldoutticketbox.com/event/the-jacksons-concert-2026",
  "eventId": 4507,
  "title": "THE JACKSONS",
  "categories": ["MUSIC", "MONTE CAPUTO", "INTERNATIONAL EVENTS"],
  "venue": "MONTE CAPUTO LIMASSOL",
  "dates": "23/10/2026",
  "startDate": "2026-10-23T20:00:00+03:00",
  "endDate": "2026-10-23T20:00:00+03:00",
  "price": "From €79",
  "priceMin": 79,
  "priceMax": 500,
  "currency": "EUR",
  "priceLevels": [
    {
      "name": "EARLY BIRDS",
      "price": 79,
      "priceText": "EARLY BIRDS €79",
      "currency": "EUR"
    },
    {
      "name": "EARLY RELEASE",
      "price": 99,
      "priceText": "EARLY RELEASE €99",
      "currency": "EUR"
    }
  ],
  "duration": "~90'",
  "language": "English",
  "organizer": {
    "name": "PURPLE PERFECT LTD",
    "phone": "25834331",
    "email": "pa@straphael.com"
  },
  "description": "A Premium Live Concert Experience\nThe legendary Jacksons come to Cyprus.\nPrepare for an unforgettable evening of iconic music...",
  "additionalInfo": "CHOOSE YOUR EXPERIENCE\n€79 — EARLY BIRD\nLimited to the first 20 tickets...",
  "videos": [
    "https://player.vimeo.com/video/1223576302?badge=0&autopause=0&player_id=0&app_id=58479"
  ],
  "image": "https://www.soldoutticketbox.com/assets/image/imageoriginal/jacksons2200001.jpg",
  "poster": "https://www.soldoutticketbox.com/assets/image/imageoriginal/jacksonposter0001.jpg",
  "sessionCount": 1,
  "sessions": [
    {
      "eventDayId": 14658,
      "title": "THE JACKSONS",
      "dayOfWeek": "Friday",
      "startDate": "2026-10-23T20:00:00+03:00",
      "venue": "MONTE CAPUTO LIMASSOL",
      "venueLatitude": 34.7187199,
      "venueLongitude": 33.1889059,
      "status": "On sale",
      "buyUrl": "https://www.soldoutticketbox.com/easyconsole.cfm/page/select_seats/block_id/3217&event_day_id=14658&lang=en"
    }
  ]
}
```

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

### Notes

- Supported pages are the home page, category pages, On Sale Now, Past Events, search, and event pages. Other pages, such as the calendar or the venue overview by city, are skipped. To scrape one venue, use its category page.
- Field labels are always in English, but event titles, descriptions, durations, and prices are returned as the organizer wrote them, often in Greek.
- Price levels come from the ticket page of the first listed date. Other dates of the same event can have different prices.
- `priceMin` and `priceMax` follow the price shown on the event page. When the site only says "From €X", the highest price comes from the price levels, or is `null` when there are none.
- Times are Cyprus local time and include the time zone offset.
- Past events and events without online sales have no sessions, so `sessions` is empty and dates come from the event summary.
- An event that appears in several of your start URLs or queries is saved only once.

### Why use the SoldOut Tickets Scraper?

- ✅ **No login needed**: works with public data only, so there is no account to manage.
- 🛡️ **Works on Cloudflare-protected pages**: no proxy or extra setup needed.
- 🎟️ **Complete event data**: every show date, price levels, organizer contacts, and venue locations in one item.
- 🧹 **Clean data**: prices 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 on the page or search.

#### Do I need a SoldOut 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 data automatically.

#### Why are some fields empty?

Some events simply do not show every piece of information, such as language, duration, or video. When a field is not available on the website, it is returned as `null` or an empty list.

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

Yes. Right now the actor supports start URLs and search queries. If you need other filters or inputs, such as a city or date range, 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 platforms?

- [Ticketmaster Scraper](https://apify.com/aboo.script/ticketmaster-scraper): events, venues, dates, and ticket prices from Ticketmaster.
- [Fever Scraper - Events & Experiences](https://apify.com/aboo.script/feverup-scraper): events and experiences by city, category, keyword, or event URL.
- [Webook Scraper - Events & Experiences](https://apify.com/aboo.script/webook-scraper): events, concerts, matches, and experiences from Webook.
- [Virgin Megastore Tickets Scraper](https://apify.com/aboo.script/tickets-virginmegastore-me-scraper): concerts, shows, and sports events from Virgin Megastore Tickets.

***

**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: [SoldOut Tickets](https://www.soldoutticketbox.com/)

# Actor input Schema

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

SoldOut Tickets URLs: home page, category pages (e.g. Music, Theatre, a venue category), On Sale Now / Past Events pages, or event pages.

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

Keywords to search on SoldOut Tickets (event, venue or organizer). Each query is scraped separately.

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

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

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.soldoutticketbox.com/easyconsole.cfm/page/category/cat_id/3/lang/en"
    }
  ],
  "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://www.soldoutticketbox.com/easyconsole.cfm/page/category/cat_id/3/lang/en"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("aboo.script/soldoutticketbox-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.soldoutticketbox.com/easyconsole.cfm/page/category/cat_id/3/lang/en" }] }

# Run the Actor and wait for it to finish
run = client.actor("aboo.script/soldoutticketbox-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.soldoutticketbox.com/easyconsole.cfm/page/category/cat_id/3/lang/en"
    }
  ]
}' |
apify call aboo.script/soldoutticketbox-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,aboo.script/soldoutticketbox-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/50FtXsv05N45AlNda/builds/9qa0ev3cqBuaCaARw/openapi.json
