# Fever Events Scraper — Tickets, Sessions & Reviews (`hypebridge/fever-events-scraper`) Actor

Extracts events and experiences from Fever: candlelight concerts, immersive exhibitions, theatre, food and drink experiences, nightlife and attractions. For every event you get the title, venue, prices, ratings, session dates, ticket tiers with availability, photos and, optionally, text reviews

- **URL**: https://apify.com/hypebridge/fever-events-scraper.md
- **Developed by:** [Hypebridge](https://apify.com/hypebridge) (community)
- **Categories:** Automation, E-commerce, Integrations
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 fever event details

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

### What does Fever Events Scraper do?

**Fever Events Scraper** extracts events and experiences from [Fever](https://feverup.com) (feverup.com): candlelight concerts, immersive exhibitions, theatre, food and drink experiences, nightlife and attractions. For every event you get the title, venue, prices, ratings, session dates, ticket tiers with availability, photos and, optionally, text reviews. No Fever account or API key is needed.

It covers Fever's five largest markets: **United States, Brazil, Spain, United Kingdom and France**. Cities in other countries are skipped with a warning instead of failing the run.

### Why scrape Fever?

- **Event discovery and market research**: see what is on in a city, at what price, and how it is rated.
- **Price and availability tracking**: compare ticket tiers, service fees and "last tickets" signals across dates.
- **Venue and promoter intelligence**: find which venues and organisers run the best-reviewed experiences.
- **Content and aggregation**: build local "what's on" feeds with photos, descriptions and session times.

### What data can Fever Events Scraper extract?

| Field | Type | Description |
|-------|------|-------------|
| `id` / `url` | Number / String | Fever event ID and canonical link |
| `title` | String | Event name in the page language |
| `market`, `language`, `cityCode` | String | ISO country (UK is reported as `GB`), text language, Fever city code |
| `venueName` | String | Venue (null if Fever hides it) |
| `priceFrom`, `priceTo`, `currency` | Number / String | Cheapest price above zero and the event's own ISO currency |
| `rating`, `ratingCount` | Number | Average rating and number of ratings |
| `firstSessionAt`, `lastSessionAt`, `nextSessionTimes` | String | ISO 8601 dates with the correct local offset |
| `timezone` | String | IANA timezone of the event |
| `description`, `categories`, `venues`, `gallery` | Mixed | Full details (detail option) |
| `ticketTiers`, `dateAvailability` | Array | Ticket tiers per date and time with price, service fee and availability (ticket tiers option) |
| `reviews` | Array | Text reviews with rating, date and helpful votes (reviews option) |

Some fields depend on where the event was found: `nextSessionTimes` comes from search results, `lastSessionAt` and `isTimeless` from category pages and detail records. The full list is in the **Output** tab.

### How to scrape Fever

1. [Create a free Apify account](https://apify.com) if you don't have one.
2. Open **Fever Events Scraper** and click **Try for free**.
3. Paste one or more Fever URLs: a city (`https://feverup.com/en/chicago`), a category (`https://feverup.com/en/chicago/things-to-do`), a country page (`https://feverup.com/en/country/united-states`) or a single event (`https://feverup.com/m/588851`).
4. Set **Max events** to cap the run, and switch on **Get event details** if you want descriptions, addresses, photos and categories.
5. Click **Start** and download the results from the **Dataset** tab (JSON, CSV, Excel, HTML).

### Input

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `startUrls` | Array | required | City, category, country or event URLs |
| `maxEvents` | Number | 100 | Total events returned across all URLs (max 5,000) |
| `getEventDetails` | Boolean | true | Add description, venue address and coordinates, photos, categories; set to false for listing-only events |
| `includeTicketTiers` | Boolean | false | Add per-date availability and ticket tiers (implies details) |
| `includeReviews` | Boolean | false | Add text reviews (implies details) |
| `maxReviewsPerEvent` | Number | 15 | Reviews per event (max 200) |
| `includeNearbyCities` | Boolean | false | Also keep events from neighbouring cities that appear in a city's search |
| `maxCities` | Number | 3 | Cap on distinct cities per run (useful with country pages) |

A direct event URL always returns the full detail record, even with **Get event details** off. Advanced limits (`maxSearchPages`, `maxPagesPerFilter`, `maxRequests`, `maxConcurrency`, `sessionWindowDays`, `maxSessionDates`) are in the Input tab.

#### Example input

```json
{
  "startUrls": [
    { "url": "https://feverup.com/en/london" },
    { "url": "https://feverup.com/fr/paris/choses-a-faire" },
    { "url": "https://feverup.com/m/588851" }
  ],
  "maxEvents": 200,
  "getEventDetails": true
}
```

#### Example: ticket tiers and reviews for one event

```json
{
  "startUrls": [{ "url": "https://feverup.com/m/588851" }],
  "includeTicketTiers": true,
  "includeReviews": true,
  "maxReviewsPerEvent": 30
}
```

### Output

Saved to the **Dataset** tab. Each item includes event identity, market and city, venue, pricing, ratings, session dates and, depending on your options, details, ticket tiers and reviews. A **Run summary** (`RUN_SUMMARY` in the key-value store) lists how many events each discovery source found, which limits were reached and any skipped URLs.

#### Sample output

```json
{
  "id": 470430,
  "url": "https://feverup.com/m/470430",
  "title": "Candlelight: Tribute to Juan Gabriel on Strings",
  "detailLevel": "basic",
  "market": "US",
  "language": "en",
  "cityCode": "ORD",
  "venueName": "Stan Mansion",
  "priceFrom": 40.0,
  "priceTo": 82.0,
  "currency": "USD",
  "rating": 4.94,
  "ratingCount": 142,
  "nextSessionTimes": ["2026-11-01T20:45:00-06:00", "2026-11-08T20:45:00-06:00"],
  "timezone": "America/Chicago",
  "scrapedAt": "2026-10-04T03:18:59Z"
}
```

### Tips

- **Coverage is partial by design.** Fever offers no complete public catalog. The actor combines city search, category pages and the city page's own links, and reports in the run summary when a limit cut a list short. Treat results as a large, bounded sample of what is publicly browsable.
- Ticket **price** excludes Fever's per-ticket service fee, which is returned separately as `surchargePerTicket`.
- `availableTickets` is the count Fever reports for that ticket type, not necessarily the venue's capacity.
- Ticket tiers cover the event's main venue only; events with several venues are flagged with `hasMultipleVenues`.
- Reviewer names appear as Fever publishes them (first name and last initial) and count as personal data.
- Start small: set `maxEvents` before committing to a large run.

### FAQ

#### Which countries are supported?

United States, Brazil, Spain, United Kingdom and France, in English, Portuguese, Spanish and French. Other countries are skipped with a warning.

#### Is scraping Fever legal?

The actor only extracts publicly available data. Always check Fever's Terms of Service and make sure you have a legitimate purpose, especially when you collect reviews.

#### Why are some fields empty?

Fields such as `lastSessionAt` or `nextSessionTimes` come from different parts of Fever. Switch on **Get event details** to fill the detail fields for every event.

### Support

- Bugs / feature requests → **Issues** tab
- Programmatic access → **API** tab

> **Disclaimer**: Our Actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our Actors, when used for ethical purposes by Apify users, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

# Actor input Schema

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

Fever city pages (https://feverup.com/en/chicago), category pages (https://feverup.com/en/chicago/things-to-do), country pages (https://feverup.com/en/country/united-states) or single event pages (https://feverup.com/m/588851). Supported markets: US, Brazil, Spain, UK, France.

## `maxEvents` (type: `integer`):

Total events returned across all start URLs. The run stops as soon as this many are produced.

## `getEventDetails` (type: `boolean`):

Visit each event's detail API for the full description, venue address and coordinates, photos, categories and default ticket. Off returns the listing fields only (cheaper and faster).

## `includeTicketTiers` (type: `boolean`):

Adds per-date availability and the ticket tier tree (price, service fee, availability) for the next bookable dates. Implies detail level. Uses the event's main venue only.

## `sessionWindowDays` (type: `integer`):

How many days ahead of today to look for bookable dates when ticket tiers are on.

## `maxSessionDates` (type: `integer`):

Number of bookable dates per event to expand into ticket tiers. Each date is one 150-200 KB request.

## `includeReviews` (type: `boolean`):

Adds text reviews. Implies detail level.

## `maxReviewsPerEvent` (type: `integer`):

Reviews are fetched 15 per page. Rating counts are larger than text review counts, so fewer may be returned.

## `includeNearbyCities` (type: `boolean`):

Search results can include events from other cities in the same country (for example Brighton or Cambridge when scraping London). Off keeps only events in the requested city, plus anything Fever itself lists on that city's page.

## `maxCities` (type: `integer`):

Hard cap on distinct cities processed in one run, including cities expanded from a country page.

## `maxSearchPages` (type: `integer`):

Search returns 100 rows per page. A large city such as London needs about 28 pages to exhaust. If this cap cuts the walk, the run summary reports truncation.

## `maxPagesPerFilter` (type: `integer`):

Category grids appear to stop at about 250 results. A cap or early end is reported as a coverage warning.

## `maxRequests` (type: `integer`):

Hard cap on HTTP requests for the whole run. Reaching it stops the run and reports truncation.

## `maxConcurrency` (type: `integer`):

Parallel requests. Fever's tolerance at volume is unmeasured; keep this low.

## `debugMode` (type: `boolean`):

Saves up to 5 failing responses (status, headers, first 20 KB) to the key-value store.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://feverup.com/en/chicago"
    }
  ],
  "maxEvents": 100,
  "getEventDetails": true,
  "includeTicketTiers": false,
  "sessionWindowDays": 14,
  "maxSessionDates": 3,
  "includeReviews": false,
  "maxReviewsPerEvent": 15,
  "includeNearbyCities": false,
  "maxCities": 3,
  "maxSearchPages": 30,
  "maxPagesPerFilter": 5,
  "maxRequests": 3000,
  "maxConcurrency": 3,
  "debugMode": false
}
```

# Actor output Schema

## `dataset` (type: `string`):

Every field for every event.

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

Compact event table.

## `files` (type: `string`):

RUN_SUMMARY with discovery counts and truncation flags, plus debug artifacts when enabled.

# 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://feverup.com/en/chicago"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("hypebridge/fever-events-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://feverup.com/en/chicago" }] }

# Run the Actor and wait for it to finish
run = client.actor("hypebridge/fever-events-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://feverup.com/en/chicago"
    }
  ]
}' |
apify call hypebridge/fever-events-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hypebridge/fever-events-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/m4VEznf54AHIXHHQR/builds/hWhDXpbGcMZ8eLicY/openapi.json
