Fever Scraper icon

Fever Scraper

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

Start using this actor on Apify ↗Need a custom scraper?Contact us ↗

Fever Scraper at a glance

Fever Scraper is a ready-to-run Apify actor from abotapi for collecting web data. Its documented output includes id, rowtype, event, city and category, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $1.80 per 1,000 results on the Apify Free plan and from $1.50 on paid plans, with smaller per-run or optional feature charges listed on Apify.

Runs on
Apify cloud: console, API, schedules and integrations
Data type
Web data
Pricing
$1.80 per 1,000 results (Free plan), from $1.50 on paid plans
Output
Documented below · JSON, CSV, Excel
Inputs
26 options

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.

What Fever Scraper can do

  • 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.

Choose what to collect

These inputs let you configure Fever Scraper - Events, Prices, Venues & Dates. Open the actor on Apify to enter your values and review the current options.

Supported input fields
InputWhat it controls
modestring · requiredHow to start the scrape. 'search' walks city catalogues. 'url' processes the Fever URLs you paste: an event URL is fetched as a single event, and a city or category URL is read like a search, its own city and category deciding the scope. The filters below apply to every walk in both modes; a pasted event URL is the one exception and returns that single event in full.

Choices: search, url

citiesarrayCity slugs to browse, for example 'new-york', 'london', 'madrid', 'paris', 'milan', 'sao-paulo'. Each city is scraped independently. Search mode only: in URL mode the scope is read out of each pasted URL instead. Defaults to New York when empty. Plain names ('New York', 'London') and Fever codes (NYC, LON) are accepted; an unreadable name fails the run loudly.
queryTypestringAlias for Mode using the vocabulary of other Fever scrapers: 'browse' means mode 'search', 'event' means reading the single event in 'Event ID'. Leave empty to use Mode.

Choices: browse, event

citystringSingle city as a name, slug or Fever code (LON, NYC, PAR). In search mode it replaces the Cities list, so only this city is scraped.
localestringThe site language prefix for city pages: en, es, fr, it, pt or de. Unknown values fall back to en. Search mode only: in URL mode the pasted URL carries its own language.

Choices: en, es, fr, it, pt, de

categorystringNarrow every city walk to one category slug, for example 'candlelight', 'music-events', 'exhibitions' or 'food'. Leave empty to browse the whole city catalogue. Search mode only: in URL mode a pasted category URL decides its own scope.
querystringOnly keep events whose title or categories contain this text, for example 'candlelight' or 'jazz'. The site has no keyword parameter, so it is applied to the rows this run reads. Search mode only: in URL mode the pasted URL decides its own scope.
Show 19 more inputs
More input fields
InputWhat it controls
urlsarrayPaste event URLs (https://feverup.com/m/653922), city URLs (https://feverup.com/en/new-york) or category URLs (https://feverup.com/en/london/candlelight). A pasted URL decides its own scope. The price bounds below narrow what the walks read; a pasted event URL is the exception and returns that single event in full. Trailing slashes, a www host, other locales (en, es, fr, it, pt, de) and tracking or ?page query strings are accepted (the query is ignored). Locale-only pages (/en), nested category paths and /en/m/ID are not supported and log a per-URL warning.
idstringNumeric Fever event ID, for example 653922. Reads that single event in full, like pasting https://feverup.com/m/653922. When it is filled, only this event is read: the Mode and Fever URLs fields (including the sample URL list) are ignored. Set Query type to 'browse' to ignore the ID and browse by city instead.
minPriceintegerOnly keep events whose from-price is at least this amount, in the row's own currency. The site has no parameter for this, so it is applied to the rows this run reads. Applies to every walk in both modes; a pasted event URL is the exception and returns that single event in full.
maxPriceintegerOnly keep events whose from-price is at most this amount, in the row's own currency. The site has no parameter for this, so it is applied to the rows this run reads. Applies to every walk in both modes; a pasted event URL is the exception and returns that single event in full.
fetchDetailsbooleanFetch each event's page for the description, the venue address with coordinates, the categories, the session dates and the ticket availability. Slower, and charged once per record. Leave off for a fast crawl: identity, from-price, venue, dates and rating are included either way.
maxReviewsPerEventintegerWith Fetch event details on, attach up to this many of the newest guest reviews (reviewer, rating, date, text, helpful votes) to each event, following the site's own pages. 0 turns reviews off. Capped at 500 per event. Reviews add no separate fee.
maxItemsintegerThe single cap on this run: stop after collecting this many records across all cities and URLs. A listing page serves what the site renders in one read (city pages render the catalogue; category pages serve a capped window per grid with the rest behind the site's Load more control), so there is no page cap. Set 0 for unlimited.
resumeFromRunIdstringPaste a previous run ID or dataset ID to continue a large crawl without returning or charging for records already collected there. Use this after an interrupted or capped run. For recurring monitoring of the same search, use Incremental mode below instead.
incrementalModebooleanTurn this on for daily or weekly recurring monitoring of the same search, for example a price watch. The first run returns everything matching as NEW. Later runs normally return only NEW, UPDATED and REAPPEARED records. COMPARED between runs: every returned field (price from, original price, on-sale flag, discount, currency, dates, venue, description, categories, tickets available and the rest). EXCLUDED because they drift without the event changing: rating, rating count, image URL, scrape time and the carried-forward marker; they are still returned. Price moves and new dates ARE reported as UPDATED: on an events catalogue they are the signal, not noise. To react only to price and availability, set Change scope to price and availability. Turn on Emit unchanged or Emit expired only when you also want those rows returned (and billed). State is kept separately per city, URL and filter setup; use State key to name or deliberately share a monitoring campaign. To continue one specific interrupted run instead, use Resume from a previous run above.
stateKeystringOptional. Name this monitoring campaign to keep its state stable, or to deliberately share state across differently configured runs. Leave empty to let the actor derive a key automatically from the cities, URLs and filters, so two different searches never mix state.
emitUnchangedbooleanOff by default. Turn on to also return records that have not changed since the last run, marked UNCHANGED. This returns, and bills, extra rows you already have, so leave it off unless you specifically want a full snapshot every run.
emitExpiredbooleanOff by default. Turn on to also return records that were present in a previous run but are no longer found, marked EXPIRED. Only produced once a run has fully scanned the tracked search: not when Max items capped it, not when Resume was used, not when the run was refused, and not when a category page served a capped window of its catalogue (the run says Partial results instead). This returns, and bills, extra synthetic rows, so leave it off unless you need expiry tracking.
changeScopestringAll fields (default): any change in a returned field makes a record UPDATED. Price and availability: only price, original price, on-sale flag, discount, currency and tickets available decide UPDATED; description, venue, dates and artwork changes never create a billable row. Rows are still returned in full.

Choices: all, priceAndStock

compactUpdatesbooleanOff by default. When on, UPDATED rows carry only the event id, URL, title, current price fields and a priceChanges object with old and new values. The event-page details fee is not charged for a compact row because the fields it covers are not in the row. NEW rows stay full.
expireAfterMissedScansintegerUsed only with Emit expired. A record is marked EXPIRED only after it is missing from this many CONSECUTIVE complete scans (default 1). EXPIRED means the event dropped out of the listing, which can be a sell-out, an ended run or a ranking change; it is not proof the event is unavailable.
ignoreFieldsForChangesarrayField names that never decide UPDATED and never appear in changedFields, for example description or venueName. They are still returned in the row. Rating, rating count and image URL are always ignored. Dotted paths like sessions.image drop that key inside every element of a list.
mcpConnectorsarrayOptionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API and Integrations, then select it here. Notion gets a page per record; other connectors get a best-effort write or digest. Each connector receives a condensed summary per record, not the full record; the complete record always stays in the dataset. Leave empty to skip; this never changes the dataset output. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com).
notionParentPageUrlstringURL or id of the Notion page under which record pages are created. Required to enable the Notion export; ignored by other connectors.
maxNotifyListingsintegerCap on records written to each connector per run. Does not affect the dataset.

Fields in the output

The documented dataset includes the fields below. Availability can depend on the source page and selected mode.

recordIdID (text)
rowTyperowType
titleEvent (text)
citySlugCity (text)
categoryCategory (text)
priceFromFrom price (number)
priceTextPrice (as shown) (text)
originalPriceOriginal price (number)
onSaleOn sale (text)
discountPercentDiscount % (number)
currencyCurrency (text)
startDateStarts (date)
Show 25 more fields
endDateEnds (date)
venueNameVenue (text)
venueAddressAddress (text)
ratingRating (number)
ratingCountRatings (number)
isNewNew (text)
descriptionDescription (text)
categoriesCategories (array)
firstSessionDateFirst session (date)
lastSessionDateLast session (date)
ticketsAvailableTickets available (text)
imageUrlImage (image)
urlURL (link)
changeTypeChange type (incremental mode) (text)
changedFieldsChanged fields (incremental mode) (array)
firstSeenAtFirst seen (incremental mode) (date)
lastSeenAtLast seen (incremental mode) (date)
latitudeLatitude (number)
longitudeLongitude (number)
sessionsTextSessions (text)
detailCarriedForwardDetail carried forward (text)
priceChangesPrice changes (object)
variantChangesSession changes (object)
scrapedAtScraped (date)
reviewsreviews

Example output

An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.

{
  "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,
  "priceText": "From 25.00 USD",
  "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,
  "longitude": -74,
  "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"
}

Ways to use this data

  • 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.

Before you run

Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.

Questions about this actor

What data does Fever Scraper return?

The documented output for Fever Scraper includes id, rowtype, event, city, category, from price, price (as shown) and original price. Availability of each field depends on the source page and the selected mode.

How much does Fever Scraper cost?

It costs $1.80 per 1,000 results on the Apify Free plan and from $1.50 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.

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.

Ready to collect with Fever Scraper?

Run it on Apify with your own input and export the results as JSON, CSV or Excel.