Eventim Scraper - Events, Venues & Ticket Prices avatar

Eventim Scraper - Events, Venues & Ticket Prices

Pricing

from $2.20 / 1,000 results

Go to Apify Store
Eventim Scraper - Events, Venues & Ticket Prices

Eventim Scraper - Events, Venues & Ticket Prices

Collect public Eventim events, venues, ticket prices and availability across national shops, including Germany, Austria and Switzerland. Pay per delivered row plus a start fee; offers and inventory are optional.

Pricing

from $2.20 / 1,000 results

Rating

0.0

(0)

Developer

kane liu

kane liu

Maintained by Community

Actor stats

1

Bookmarked

7

Total users

3

Monthly active users

2 days ago

Last modified

Security

Limited permissions

Share

Eventim Scraper

Collect public Eventim events, venues and ticket prices as rows you can export or use through the API.

  • Event names, dates, venues, cities, prices and availability.
  • Search, city, category, artist, tour and direct event inputs across national shops.
  • Optional ticket-offer and inventory rows, with event details attached.
  • $3.00 per 1,000 delivered rows on the Free plan, plus a $0.005 start fee.

What does Eventim Scraper do?

Eventim Scraper collects public listings from Eventim shops, including Germany (de), Austria's oeticket (at), Switzerland's Ticketcorner (ch) and the Netherlands (nl). The market list also includes TicketOne (it) and FNAC Spectacles (fr); field availability differs by shop. This is an unofficial Actor, not affiliated with CTS EVENTIM AG.

  • Find events: search by keyword, category, city or venue.
  • Follow performers: collect artist, tour and event-series pages; optionally expand a series into dated events.
  • Read selected pages: provide event IDs, event URLs or list URLs.
  • Browse information: homepage promotions, current categories, help information and market/category catalogs.
  • Optional rows: includeOffers and includeInventory are off by default. Each offer or inventory listing is a separate row, charged at the same rate as an event row.

What data can you extract from Eventim?

Fields depend on the row type and what the page publishes. Missing values may be omitted or empty. The examples below illustrate the format, not current ticket availability.

Event rows

FieldDescriptionExample
recordTypeActor's row classificationevent
rowTypeEntity represented by this rowevent
idEntity identifier21548002
nameEvent titleExample concert
urlPublic source URLhttps://www.eventim.de/event/example-21548002/
hostMarket keyde
startDatePublished start date/time2027-06-12T19:30:00+02:00
venueNameVenue nameExample Hall
cityVenue cityBerlin
lowPriceLowest published price49.90
priceCurrencyCurrency codeEUR
availabilityPublished ticket statusInStock
offerCountNumber of known ticket offers2
scrapedAtCollection time2026-10-24T10:00:00+00:00

Offer rows

FieldDescriptionExample
rowTypeOne ticket offeroffer
offerIdOffer identifierde:21548002:offer:1
eventIdAssociated event identifier21548002
eventNameAssociated event nameExample concert
priceThis offer's price49.90

Listing rows

FieldDescriptionExample
rowTypeInventory or separately sold productlisting
listingIdInventory listing identifierde:21548002:inventory:category:1
listingKindInventory groupingseatCategory
availableSeatsAvailable seats in the exposed group120
mappedSeatsSeats mapped in that group200

Venue rows

FieldDescriptionExample
venueNameVenue nameExample Hall
venueWebsiteVenue's own website, when publishedhttps://example.com
addressStructured venue address{"locality":"Berlin"}

Artist rows

FieldDescriptionExample
artistSlugArtist's URL identifierremode
nameArtist nameExample artist

Tour rows

FieldDescriptionExample
productGroupIdRelated event-group identifier864624
urlTour pagehttps://www.eventim.de/artist/remode/remode-864624/

Event-series rows

FieldDescriptionExample
productGroupIdRelated event-group identifier864624
urlSeries pagehttps://www.eventim.de/eventseries/remode-864624/

Category rows

FieldDescriptionExample
nameNavigation category nameKonzerte
urlCategory pagehttps://www.eventim.de/events/konzerte-1/

Catalog rows

FieldDescriptionExample
recordTypeReference information rather than an eventcatalog
rowTypeCatalog entitycatalog

Help rows

FieldDescriptionExample
platformContactsPlatform support contacts, not venue contacts[]
urlPublic help pagehttps://www.eventim.de/help/

How to scrape Eventim

  1. Open Eventim Scraper in Apify Console.
  2. Fill one target field, such as query, and select the market with host.
  3. Set maxResults to 3 for a small first run.
  4. Click Start and wait for completion.
  5. Download the dataset or read its rows through the API.

Empty input starts an example search for Konzert on de, limited to 3 rows. Normal start and row charges apply. With mode: "auto", filling one target field selects its mode automatically. When combining targets, URL inputs take priority over IDs, then keywords, artist/tour/series, categories, venues and cities. Remove unrelated targets to avoid ambiguity.

Fill query. Common English terms can be localized, such as concert to Konzert on de.

Category

Fill category, optionally subcategory, or copy categoryPath from the shop. Use categoryPaths for several inputs.

City

Use the city slug from its URL, such as berlin-1. cities and cityPack accept batches. City fields are not keyword-search filters: combining query with city fields is rejected.

Venue

Use venuePath, or venue with city to identify the venue page.

Event

Supply eventUrls or numeric strings in eventIds. Use the matching host for IDs.

Artist

Fill artistSlug or artist with the page's artist identifier.

Tour

Fill tourPath with the tour's path under the artist page; set mode: "tour" explicitly when also supplying an artist.

Event series

Fill eventseriesPath. Set expandSeries to true for child events; maxSeriesEvents defaults to 20 and futureOnly to true.

Start URLs

Supply public list or detail pages in startUrls. Copy URLs from the appropriate shop rather than translating paths.

Home

Set mode: "home" for promoted artists and series, not a complete calendar of dated events.

Live categories

Set mode: "live_categories" for current navigation links.

Help

Set mode: "help" for public help information and platform contacts.

Categories

Set mode: "categories" for reference category information, not event listings.

Hosts

Set mode: "hosts" for registered shops and market information. Registration is not a guarantee that every page works.

What to fill in

FieldWhat to enterDefault
modeCollection mode; automatic selection is usually enoughauto
host / hosts / hostPackOne market, several markets, or a pack such as dachde / empty / empty
queryOne search keywordEmpty; example Konzert
startUrls / eventUrls / eventIdsLists of URLs or event IDsEmpty
category / subcategory / categoryPath / categoryPathsCategory identifiers or pathsEmpty
city / cities / cityPath / cityPackCity slug, list, path, or de-top15 / de-capitalsEmpty
venue / venuePathVenue slug or pathEmpty
artist / artistSlug / tourPath / eventseriesPathPerformer or series targetEmpty
maxResultsRows per input; 1–500, counting all row types70; form prefill 3
page / maxPagesStarting page / page limit per list input1 / 1
dateFrom / dateToDate boundaries, YYYY-MM-DDEmpty
priceMin / priceMaxTicket price boundariesEmpty
onlyAvailable / isFree / onlineOnlyAvailability, free admission or online attendancefalse
sortDateAsc, DateDesc, NameAsc, NameDesc, Rating, RecommendationUnset
includeOffers / includeInventoryAdd separately billed offer or inventory rowsfalse
expandSeries / maxSeriesEvents / futureOnlyExpand series / child-event cap / future children onlyfalse / 20 / true
enrichDetails / enrichVenues / enrichTopNAdd detail fields / venue details / limit detail expansiontrue / true / unset
localizeQueryLocalize recognized English search termstrue
fieldsOptional list of output field namesAll available fields

Examples use small limits. Replace illustrative event IDs and tour/series paths with current targets.

Automatic example:

{"mode":"auto","maxResults":3}

Search:

{"query":"Konzert","host":"de","maxResults":3}

Category:

{"category":"konzerte-1","subcategory":"rock-pop-1","maxResults":3}

City:

{"cities":["berlin-1","hamburg-7"],"maxResults":3}

Venue:

{"venuePath":"/city/berlin-1/venue/uber-arena-berlin-2/","maxResults":3}

Event:

{"eventIds":["21548002"],"host":"de","maxResults":3}

Artist:

{"artistSlug":"remode","maxResults":3}

Tour:

{"mode":"tour","tourPath":"/artist/remode/remode-864624/","maxResults":3}

Event series:

{"eventseriesPath":"/eventseries/remode-864624/","expandSeries":true,"maxResults":3}

Start URLs:

{"startUrls":["https://www.eventim.de/city/berlin-1/"],"maxResults":3}

Home:

{"mode":"home","host":"de","maxResults":3}

Live categories:

{"mode":"live_categories","host":"de","maxResults":3}

Help:

{"mode":"help","host":"de","maxResults":3}

Categories:

{"mode":"categories","maxResults":3}

Hosts:

{"mode":"hosts","maxResults":3}

maxItems and limit are aliases for maxResults. Close misspellings are corrected; other unknown fields are ignored with a note. Invalid targets can stop before any row charge with INVALID_INPUT: <field> — <how to fix>; incompatible combinations also produce specific errors. Invalid optional filters may be ignored with a warning. Check INPUT_REPORT in the default key-value store for corrections and ignored fields.

Dates are never filled or advanced automatically. Localization covers recognized terms, not arbitrary translation. enrichTopN: 0 disables event-detail expansion.

Output example

Illustrative event row:

{
"recordType": "event",
"rowType": "event",
"id": "21548002",
"name": "Example concert",
"url": "https://www.eventim.de/event/example-21548002/",
"host": "de",
"startDate": "2027-06-12T19:30:00+02:00",
"venueName": "Example Hall",
"city": "Berlin",
"lowPrice": 49.9,
"priceCurrency": "EUR",
"offerCount": 2,
"scrapedAt": "2026-10-24T10:00:00+00:00"
}

Export the dataset as JSON, CSV, Excel, XML, RSS or an HTML table. Parent rows contain price and inventory summaries; offers and inventory groups are separate rows, not embedded lists.

Why use this Eventim scraper?

  • Pay per delivered row: failed page reads do not count as rows; the start fee still applies.
  • Useful partial results: available partial results can be delivered with warnings. Rows already written remain available; abrupt termination is not a guarantee of undelivered rows being saved.
  • Clear input feedback: inspect INPUT_REPORT, RUN_SUMMARY and, on failure, ERROR_SUMMARY.
  • No invented fields: missing prices, contacts or dates are not filled with guesses.
  • Several inputs: batch cities, categories, markets or event URLs.
  • No proxy setup: you do not need to set up proxies.

How much does it cost to scrape Eventim?

Pay-per-event pricing includes a $0.005 start event and a charge for each delivered row. The start event is charged per GB of memory, with a minimum of one; the default 512 MB run incurs one start event.

Apify planPrice per rowPrice per 1,000 rows
Free$0.003$3.00
Starter$0.003$3.00
Scale$0.0026$2.60
Business$0.0022$2.20

Platinum and Diamond have the same row price as Business.

maxResults applies per input: host, city, category path, event ID/URL or start URL. Default 70; larger requests are collected in parts of 70, up to the input maximum of 500. Event, offer and inventory rows count together: one event plus two offers uses three rows.

In city mode with several hosts, each city's hosts are tried in order until that city's limit is reached. Later hosts may contribute nothing. Packs count their individual cities or hosts.

Free-plan runs stop at 200 rows, with a developer-set limit of 10 runs of this Actor. The whole run also stops at Maximum cost per run (maxTotalChargeUsd in the API).

Example: two cities × three delivered rows = six rows. On the Free plan, 6 × $0.003 + $0.005 = $0.023 at default memory.

What happens when the run timeout is too short

A run can pause automatically when results need more time. It displays ABORTED and the message “Queued on the collection backend; this run will resume automatically when results are ready (about N s).” When ready, the same run resumes, reports “Resumed: delivering N rows.”, writes to the same dataset and finishes as SUCCEEDED. Already delivered rows are not delivered or charged twice; no manual restart is needed for this pause.

Automatic pauses are limited to 3 per run. Keep the default timeout of 3600 seconds to reduce them. Other failures or manual aborts do not imply automatic resumption.

The synchronous API endpoints run-sync and run-sync-get-dataset-items wait at most 300 seconds and can return an empty dataset during a pause. For longer runs, start asynchronously and read results after SUCCEEDED, or use a succeeded-event webhook.

Use with AI agents and the API

Apify MCP server (Claude, ChatGPT, Cursor, VS Code)

Add this remote MCP server:

https://mcp.apify.com?tools=lentic_clockss/eventim-scraper

Sign in with Apify using OAuth, or send Authorization: Bearer <YOUR_APIFY_TOKEN>. The tool starts a run and returns run and dataset IDs; the agent can read rows with get-dataset-items.

Without remote MCP support, use npx @apify/actors-mcp-server --tools lentic_clockss/eventim-scraper with APIFY_TOKEN set.

Example prompt: “Find three Eventim events in Berlin using city: berlin-1, host: de and maxResults: 3.”

Apify API

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("lentic_clockss/eventim-scraper").call(
run_input={"query": "Konzert", "host": "de", "maxResults": 3}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('lentic_clockss/eventim-scraper').call({
query: 'Konzert', host: 'de', maxResults: 3
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Over HTTP, send input JSON to POST https://api.apify.com/v2/acts/lentic_clockss~eventim-scraper/runs with the bearer token header. After completion, read GET https://api.apify.com/v2/datasets/<datasetId>/items?format=json.

Integrations

Use the Integrations tab to connect results to Google Sheets, Make, Zapier, n8n, Slack, Airtable or a webhook. Apify Schedules can start recurring runs.

Auf Deutsch

Mit dem Eventim Scraper erfassen Sie öffentlich sichtbare Veranstaltungen, Spielstätten und Ticketpreise. Für eine Suche tragen Sie einen Begriff in query ein; für Berlin verwenden Sie stattdessen city: "berlin-1". Über host wählen Sie den Shop: de für Deutschland, at für oeticket oder ch für Ticketcorner. Beginnen Sie mit maxResults: 3 und prüfen Sie die ausgegebenen Zeilen. Angebote und Bestandsgruppen werden nur auf Wunsch als zusätzliche, einzeln berechnete Zeilen ausgegeben. Fehlende Kontaktdaten werden nicht ergänzt. Sie zahlen pro gelieferter Zeile zuzüglich einer Startgebühr. Die Ergebnisse lassen sich als CSV, Excel oder JSON herunterladen. Bestandsangaben sind Momentaufnahmen und keine Reservierung; Umfang und Felder unterscheiden sich je nach Shop.

FAQ

The Actor collects public data. You are responsible for checking Eventim's terms and applicable data-protection law; processing personal data needs a lawful basis. Public visibility is not permission for every use.

Why did my run end as ABORTED?

An automatic timeout pause can temporarily show ABORTED. Look for the queued/resume message above. A manual abort or a different error should not be assumed to resume.

How many results can I get?

Request 1–500 rows per input. Page limits, available matches, the run's maximum cost and free-plan restrictions can reduce delivery. A limit is not a promise of that many matches.

Why are some fields empty?

Not every page publishes dates, venue contacts or availability. Detail expansion can add fields, but cannot supply unpublished information. Venue contacts exclude platform support contacts.

Can I filter keyword searches by city?

Not with the city input fields. Use city mode for city pages; use a keyword alone for search. In venue mode, city and cityPath can provide venue context.

Does inventory mean I can buy those seats?

No. Inventory is a snapshot of exposed ticket groups, not all sales channels. No seats are selected or reserved, and individual seats are not enumerated. Unavailable inventory does not mean zero seats.

Why are no rows returned?

A confirmed NO_MATCH is a successful empty run. Collection errors are separate failures. Check the status and summaries rather than treating every empty dataset as proof that no events exist.

Limitations

  • Registered markets are not all verified, and search coverage does not guarantee inventory coverage. Retired Serbia and Australia shops are rejected.
  • onlineOnly is rejected for de, at, ch and nl; elsewhere it requires explicit attendance data.
  • Filtering can exclude rows with insufficient date, price or availability information. Price sorting is not supported.
  • Page limits and repeated-page detection can end collection before the requested row count.
  • Parking and upgrades can be listing rows rather than events. Checkout, ticket purchases and private account data are excluded.

More event and ticketing scrapers from the same publisher:

Browse all of our scrapers at apify.com/lentic_clockss.

Support

Report problems or request another field through the Issues tab of this Actor's page. Include the run ID and the input you used.