Fever Scraper - Events, Prices, Venues & Dates avatar

Fever Scraper - Events, Prices, Venues & Dates

Pricing

from $1.50 / 1,000 event records

Go to Apify Store
Fever Scraper - Events, Prices, Venues & Dates

Fever Scraper - Events, Prices, Venues & Dates

Scrape Fever events by city, category, keyword or URL. Extract from-prices, venues, dates and ratings, with optional enrichment for event descriptions, venue addresses and available sessions.

Pricing

from $1.50 / 1,000 event records

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

11 days ago

Last modified

Categories

Share

Fever Scraper: Events, Experiences and Prices by City

Fever Scraper turns feverup.com into a clean events data feed. Browse a city's whole catalogue of immersive experiences, pop-ups, concerts and local events by name, category or keyword, or paste Fever links straight in. Every row carries the event identity, the from-price in its own currency, the venue, the date range and the rating pair from the listing itself. The description, venue address with coordinates, categories, session dates and ticket availability are one toggle away, then export to JSON, CSV or Excel, or pull results straight into your app through the API.

Why This Scraper?

  • Two ways to find events. Browse city catalogues by name with an optional category and keyword, or paste any Fever event, city or category link and let the URL decide the scope.
  • No page-by-page crawl to get stuck on. A city catalogue page renders its whole feed in one request. A category page can serve only its first window behind the site's Load more control; when that happens the run reports "Partial results" instead of silently under-counting.
  • Identity, price and rating on every row. The event title, from-price with its own currency, venue, date range and rating pair come straight from the listing, with no toggle required.
  • Event-page depth on demand. Switch on the description, venue address with coordinates, categories, session dates and ticket availability, and the extra fee applies only to the records you actually enrich.
  • Built for schedules. Incremental mode returns only new and changed events on repeat runs, and a fully refused run fails loudly instead of quietly returning an empty dataset.
  • Keyword and price filters the site itself lacks. Both are applied to what this run actually reads, checked against each event's own currency.
  • Wide city coverage. Dozens of cities across several languages, from New York and London to Madrid, Paris, Milan and Sao Paulo.

Use Cases

  • Local event guides and newsletters: pull a city's candlelight, music, exhibition or food events with prices and dates for a weekly roundup.
  • Price and availability monitoring: schedule incremental mode against one city or category to catch price drops, new sessions or events going on sale.
  • Travel and city-guide apps: feed nearby experiences, venues and ratings into your own app or itinerary tool.
  • Competitive and market research: track which immersive experiences and pop-ups are launching across cities and how they are priced.
  • Ticketing aggregators: build a cross-city catalogue of experiences with venue, price and session data for comparison.

Data You Get

Sample shape: values are illustrative placeholders, not from a live record.

FieldExample
recordId"9000001"
rowType"event"
eventId"9000001"
url"https://feverup.com/m/9000001"
title"Sample Concert Evening"
citySlug"new-york"
locale"en"
category"candlelight"
priceFrom25
priceText (category agenda rows)"$25"
originalPrice30
onSaletrue
discountPercent16.7
currency"USD"
startDate"2026-11-01T19:00:00-04:00"
endDate"2026-11-30T21:00:00-04:00"
venueName"Sample Hall"
rating4.5
ratingCount320
isNewfalse
description (Fetch event details)"A candlelit evening of chamber music for all ages."
venueAddress (Fetch event details)"100 Sample Street, New York, 10001"
ticketsAvailable (Fetch event details)true
changeType (incremental mode)"UPDATED"

Every row also carries imageUrl, priceType ("from" on a from-priced event), sessionDate (the specific date a session card matched, on category agenda pages), latitude/longitude and categories (event details toggle), firstSessionDate/lastSessionDate and sessionsText (event details toggle), detailCarriedForward (present and true only when a failed details read was repaired from a previous run's snapshot instead of left blank), scrapedAt, and, in incremental mode, changedFields, firstSeenAt and lastSeenAt.

How to Use

  1. Pick a mode: search (browse city catalogues) or url (paste Fever links).
  2. In search mode, list one or more cities, and optionally a category and a keyword filter; in url mode, paste event, city or category links, each one deciding its own scope.
  3. Optionally set the price bounds and switch on Fetch event details for the description, venue address, categories, session dates and ticket availability.
  4. Set Max items to control run size and cost, then click Start.

Browse a city:

{
"mode": "search",
"cities": ["new-york"],
"maxItems": 20
}

Narrow to a category and a price band:

{
"mode": "search",
"cities": ["new-york"],
"category": "candlelight",
"minPrice": 20,
"maxPrice": 60,
"maxItems": 20
}

Browse a city with full event details:

{
"mode": "search",
"cities": ["london"],
"fetchDetails": true,
"maxItems": 10
}

Paste Fever links (an event and a category):

{
"mode": "url",
"urls": [
"https://feverup.com/m/653922",
"https://feverup.com/en/new-york/candlelight"
],
"maxItems": 10
}

Pasting a single event link returns its full detail fields (description, address, session dates) either way, since that page has to be read to identify the event; the details fee is only added when Fetch event details is switched on.

Run it from your code

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("abotapi/fever-com-scraper").call(run_input={"mode": "search", "cities": ["new-york"], "maxItems": 20})
for event in client.dataset(run["defaultDatasetId"]).iterate_items():
print(event["title"], event["priceFrom"], event["currency"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('abotapi/fever-com-scraper').call({ mode: 'search', cities: ['new-york'], maxItems: 20 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.

Resume and recurring updates

  • Resume (resumeFromRunId) continues one interrupted run: paste its run or dataset id and the actor skips every record id already collected there, so you don't pay twice. Every city page and every pasted URL is still read on each run (there is no page-by-page crawl to resume mid-page), so Resume saves the push and the charge for records already collected, not the read itself. A category page may still only reach its first window if the site's Load more control caps it, whether or not Resume is set.
  • Incremental mode (incrementalMode) is for running the same search again and again, for example daily. Each record is classified NEW, UPDATED (with changedFields), UNCHANGED (suppressed and not billed unless emitUnchanged is on), REAPPEARED or EXPIRED. A record only turns REAPPEARED if it was previously marked absent, and that only ever happens after an earlier run had emitExpired on and completed a full, uncapped, non-resumed scan of every tracked city or category with none of its sources refused; EXPIRED follows that same rule and is never produced by default. A category page that only served a capped window of its catalogue (behind the site's Load more control) is never treated as a complete scan, so that run skips EXPIRED detection and says so in the log.
  • Resume and Incremental mode do not mix on a state key that already has tracked records: the run stops with a message asking you to remove Resume or pick a different State key, so a resumed run never seeds a monitoring baseline from a partial dataset.
  • stateKey names or shares the stored state. With incremental mode off, output is exactly as before.

Send results into your apps (MCP connectors)

Optionally pipe the scraped events into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape: the Apify dataset is never changed.

What gets written to the connector: a condensed, human-readable summary of each event, not the full JSON record. Each item becomes one entry with a title and its key fields flattened to plain text. The complete record always stays in the Apify dataset.

  1. Authorize a connector once under Apify, Settings, Integrations (Notion, Linear, Airtable, or Apify).
  2. Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
  3. For Notion, also set notionParentPageUrl to the page where event pages should be created.

The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.

Input Parameters

ParameterTypeDefaultDescription
modestringsearchsearch walks city catalogues, url processes the Fever URLs you paste.
citiesarray["new-york"]City slugs to browse (search mode), for example new-york, london, madrid, paris, milan, sao-paulo.
localestringenSite language prefix for city pages: en, es, fr, it, pt or de (search mode).
categorystring(none)Narrow every city walk to one category slug, for example candlelight, music-events, exhibitions or food (search mode).
querystring(none)Keep only rows whose title or categories contain this keyword (search mode).
urlsarray(none; prefill ["https://feverup.com/en/new-york/candlelight"])Fever event, city or category URLs to process (url mode).
minPriceinteger(none)Keep only events whose from-price is at least this amount, in the row's own currency.
maxPriceinteger(none)Keep only events whose from-price is at most this amount, in the row's own currency.
fetchDetailsbooleanfalseFetch each event's page for description, venue address with coordinates, categories, session dates and ticket availability. Charged once per record.
maxItemsinteger20Stop after collecting this many records across all cities and URLs. 0 means unlimited.
resumeFromRunIdstring(none)Continue one interrupted run: paste its run or dataset id to skip records already collected there.
incrementalModebooleanfalseTurn on for recurring monitoring of the same search: later runs return only NEW, UPDATED and REAPPEARED records.
stateKeystring(none)Name this monitoring campaign, or deliberately share state across differently configured runs.
emitUnchangedbooleanfalseAlso return (and bill) records that have not changed since the last run.
emitExpiredbooleanfalseAlso return (and bill) records that were tracked before but are no longer found, once a run has fully scanned the tracked search.
mcpConnectorsarray(none)Optional: send a summary of each record to apps you authorized under Integrations.
notionParentPageUrlstring(none)Notion connector only: page under which event pages are created.
maxNotifyListingsinteger50Cap on records written to each connector per run. Does not affect the dataset.
proxyobject{"useApifyProxy": true}Connection settings. Leave the default unless a run reports it could not read any results.

Output Example

Sample shape: values are illustrative placeholders, not from a live record.

{
"recordId": "9000001",
"rowType": "event",
"eventId": "9000001",
"url": "https://feverup.com/m/9000001",
"title": "Sample Concert Evening",
"citySlug": "new-york",
"locale": "en",
"category": "candlelight",
"priceFrom": 25,
"originalPrice": 30,
"onSale": true,
"discountPercent": 16.7,
"currency": "USD",
"priceType": "from",
"startDate": "2026-11-01T19:00:00-04:00",
"endDate": "2026-11-30T21:00:00-04:00",
"venueName": "Sample Hall",
"rating": 4.5,
"ratingCount": 320,
"isNew": false,
"imageUrl": "https://feverup.com/images/sample-event.jpg",
"description": "A candlelit evening of chamber music for all ages.",
"venueAddress": "100 Sample Street, New York, 10001",
"latitude": 40.0,
"longitude": -74.0,
"categories": ["Music", "Family"],
"firstSessionDate": "2026-11-01T19:00:00-04:00",
"lastSessionDate": "2026-11-30T20:30:00-04:00",
"ticketsAvailable": true,
"sessionsText": "Nov 1 - Nov 30",
"scrapedAt": "2026-11-01T12:00:00Z",
"changeType": "UPDATED",
"changedFields": ["priceFrom", "originalPrice"],
"firstSeenAt": "2026-10-01T12:00:00Z",
"lastSeenAt": "2026-11-01T12:00:00Z"
}

Plan Requirement

The default connection setting works out of the box: Fever serves ordinary shared connections, and the run automatically retries with a different connection when one is refused. Only change the setting under Proxy configuration if a run reports it could not read any results.

FAQ

How much does it cost?

You pay a one time actor start fee plus a fee per event record returned, and a separate per record fee only for records that are returned with Fetch event details on and whose event page was successfully read. The Pricing tab shows the current rates. Use Max items to cap the cost of any run.

This actor collects only publicly available event listing data. You are responsible for how you use it: follow feverup.com's terms and the laws that apply to you, and get legal advice if you plan commercial redistribution. Event names, dates and prices are generally facts, but photos and descriptions may be subject to third-party rights.

Can I get only new or changed events on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only new, updated and reappeared records, and unchanged ones are not billed unless you ask for them.

Why did my run fail instead of returning an empty dataset?

If the run collected zero records and any pasted URL could not be opened or read, the run fails with a clear connection message instead of returning a false "zero results", since a URL you explicitly asked for was never resolved. A run that collected zero records only because some city or category pages were refused, while others returned records or genuinely matched nothing, stays a success whose status message names what could not be read.

What happens to an event whose date has passed?

Fever itself stops listing an event on its city and category pages once it is no longer bookable. On a monitored search with Incremental mode and Emit expired records both on, the next run that completes a full, uncapped scan of the tracked scope marks that event EXPIRED. If it ever reappears on the site later, it comes back as REAPPEARED, never as a fresh NEW record.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.

๐Ÿ”— More scrapers you might like

Pair this actor with these related scrapers from the same team:

โšฝ Eventim Scraper
Scrape CTS Eventim Germany and EU event catalogue: concerts, festivals, comedy, sports...
๐Ÿ›’ SeatGeek Scraper
Scrape SeatGeek events with ticket price ranges (lowest, highest, average, median)...
๐Ÿงฉ Viagogo Scraper
Scrape Viagogo events by artist, production, venue, city, category, or URL. Extract event...
๐Ÿงฉ Ticketmaster Scraper
Discover and scrape Ticketmaster events across the US, UK, Australia and Canada. Search...
โœˆ๏ธ Pollstar Scraper
Scrape Pollstar upcoming concerts and tour dates: play date, venue with full address and...
๐Ÿงฉ Songkick Scraper
Scrape Songkick concert and event calendars: upcoming and past dates, venues, cities...

๐Ÿ‘‰ Browse all abotapi scrapers

๐Ÿ’ฌ Support & custom scrapers

  • ๐Ÿž Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
  • ๐Ÿ› ๏ธ Need another site, extra fields or a private build? Email abotapi@proton.me or message Telegram @abotapi.
  • โญ Enjoying it? A quick review on the actor page helps other users find it.