Songkick Scraper at a glance
Songkick Scraper is a ready-to-run Apify actor from abotapi for collecting web data. Its documented output includes kind, recordid, eventid, url and event, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.00 per 1,000 results on the Apify Free plan and from $1.20 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
- $2.00 per 1,000 results (Free plan), from $1.20 on paid plans
- Output
- Documented below · JSON, CSV, Excel
- Inputs
- 16 options
Scrape Songkick concert and event calendars: upcoming and past dates, venues, cities, artists, ticket availability and tour info across 100+ countries. Search by artist, venue or location, or paste event links. Incremental monitoring with NEW, UPDATED, REAPPEARED, EXPIRED, resume and MCP export.
What Songkick Scraper can do
- Any surface, one schema: search results, artist tour dates, venue calendars, metro-area calendars and festival listings all come back in the same event record shape.
- Rich location data: venue name, street address, city, region, postal code, country and coordinates arrive with every calendar event, not just on detail pages.
- Ticket and tour detail on demand: switch on a per-event detail read to add ticket availability, ticket vendors and link, tour name, doors time and venue capacity.
- Artist, venue and city search: resolve a keyword to the top artist, venue or metro area and read its upcoming calendar, or search upcoming and past events directly.
- Incremental monitoring: recurring runs against the same search or links return only what changed, tagged NEW, UPDATED, UNCHANGED, REAPPEARED or EXPIRED, so you never re-pay for events you already have.
- Resume support: point a run at a previous run or dataset and it skips every event already collected there.
Choose what to collect
These inputs let you configure Songkick Scraper - Concert & Event Calendar. Open the actor on Apify to enter your values and review the current options.
| Input | What it controls |
|---|---|
modestring · required | Search looks up concerts and events by keyword. URL mode reads specific Songkick pages you paste. |
querystring | Search mode: a keyword, for example an artist name, venue name or city. Used with Search type below. |
searchTypestring | Search mode: what the keyword should find. Events and Past events return matching upcoming or past concerts and festivals. Artists, Venues and Locations return the top matching entity's upcoming calendar. |
urlsarray | URL mode: Songkick pages to read, one per line. Artist, venue, metro-area, festival, gigography, venue calendar and search links are walked forward; a single concert or festival date link is read as one record. Multi-value supported. |
fetchDetailsboolean | Read each event's own page to add ticket availability, ticket vendors and link, tour name, doors time and venue capacity. Adds a per-event surcharge (see the section caption below). |
maxItemsinteger | Stop after this many events (0 = no limit; the run then stops when events run out). |
maxPagesinteger | Upper bound on how many pages each artist, venue, location or search is walked through. Defaults wide open so Max items is the only cap that stops a run early. |
Show 9 more inputs
| Input | What it controls |
|---|---|
resumeFromRunIdstring | Paste a previous run ID or dataset ID to continue a large pull without returning events already collected there. |
incrementalModeboolean | Turn this on for daily or recurring monitoring. The first run returns every matching event as NEW. Later runs normally return only NEW, UPDATED and REAPPEARED events. An event is UPDATED when any of its returned fields changes (title, dates, status, venue and address, performers, ticket availability, ticket vendors, ticket prices, tour, doors time, capacity and so on); changedFields names which. The order of lists such as performers never counts as a change, and fields you list in Ignore fields when detecting changes are excluded. Turn on Emit unchanged or Emit expired only when you also want those rows returned (and billed). State is kept separately for each search and link setup; use State key to name or deliberately share a monitoring campaign. |
stateKeystring | Optional. Name this monitoring campaign to keep its state stable, or deliberately share state across differently configured runs. Leave empty to let the actor derive a key automatically from the search and link settings. |
emitUnchangedboolean | Off by default. Turn on to also return events that have not changed since the last run, marked UNCHANGED. This returns, and bills, extra rows you already have. |
emitExpiredboolean | Off by default. Turn on to also return events 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. |
ignoreFieldsForChangesarray | Optional. Field names to leave out when deciding whether an event is UPDATED, for example a field that turns out to be noisy in your setup. Use a plain name such as ticketAvailability, or a dotted path such as performers.url to ignore one key inside every item of a list. Ignored fields are still returned in the output; they just never trigger UPDATED or appear in changedFields. No fields are excluded by default because a repeat scrape of the same events showed no field that changes without a real change. |
mcpConnectorsarray | Optionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API & Integrations, then select it here. Notion gets a rich page-per-item export; other connectors get a best-effort write or digest. Leave empty to skip; never changes the dataset output. |
notionParentPageUrlstring | URL or id of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors. |
maxNotifyListingsinteger | Cap on items 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.
kindkindrecordIdrecordIdeventIdeventIdurlURL (link)titleEvent (text)startDateStart (text)endDateendDateeventStatuseventStatuseventTypeType (text)headlinerHeadliner (text)artistNameartistNameartistUrlartistUrlShow 33 more fields
artistGenresartistGenresperformersperformersvenueNameVenue (text)venueUrlvenueUrlvenueStreetvenueStreetvenueCityCity (text)venueRegionvenueRegionvenuePostalCodevenuePostalCodevenueCountryCountry (text)venueLatitudevenueLatitudevenueLongitudevenueLongitudevenueCapacityvenueCapacitymetroAreaNamemetroAreaNamemetroAreaUrlmetroAreaUrllocationTextlocationTextsupportActssupportActsdescriptiondescriptionimageUrlimageUrlticketAvailabilityTickets (text)ticketVendorsticketVendorsticketUrlticketUrltourNametourNamedoorsTimedoorsTimeorganizerNameorganizerNameorganizerUrlorganizerUrleventAttendanceModeeventAttendanceModeticketPriceMinticketPriceMinticketPriceMaxticketPriceMaxticketPriceCurrencyticketPriceCurrencychangeTypeChange (text)changedFieldschangedFieldsfirstSeenAtfirstSeenAtlastSeenAtlastSeenAtExample output
An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.
{
"kind": "event",
"recordId": "00000000",
"eventId": "00000000",
"url": "https://www.songkick.com/concerts/00000000-sample-artist-at-sample-arena",
"title": "Sample Artist at Sample Arena",
"startDate": "2027-01-15T19:30:00",
"endDate": "2027-01-15",
"eventStatus": "scheduled",
"eventType": "concert",
"headliner": "Sample Artist",
"performers": [
{
"name": "Sample Artist",
"url": "https://www.songkick.com/artists/00000000-sample-artist",
"genres": [
"indie",
"rock"
]
},
{
"name": "Support Act",
"url": null,
"genres": []
}
],
"artistName": "Sample Artist",
"artistUrl": "https://www.songkick.com/artists/00000000-sample-artist",
"artistGenres": [
"indie",
"rock"
],
"venueName": "Sample Arena",
"venueStreet": "1 Sample Road",
"venueCity": "Sample City",
"venueRegion": "ST",
"venuePostalCode": "00000",
"venueCountry": "US",
"venueLatitude": 40.7,
"venueLongitude": -73.9,
"venueCapacity": 20000,
"venueUrl": "https://www.songkick.com/venues/00000000-sample-arena",
"metroAreaName": "Sample City, ST, US",
"metroAreaUrl": "https://www.songkick.com/metro-areas/00000-sample-region",
"locationText": "Sample Arena, Sample City, ST, US",
"description": "Sample Artist at Sample Arena at 2027-01-15T19:30:00",
"imageUrl": "https://images.sk-static.com/images/media/profile_images/artists/00000000/huge_avatar",
"ticketAvailability": "in_stock",
"ticketVendors": [
{
"vendor": "Sample Ticket Vendor",
"saleStatus": "On sale now"
}
],
"ticketUrl": "https://www.songkick.com/tickets/00000000",
"tourName": "Sample Tour",
"doorsTime": "18:30",
"organizerName": "Sample Artist",
"organizerUrl": "https://www.songkick.com/concerts/00000000-sample-artist-at-sample-arena",
"eventAttendanceMode": "offline",
"ticketPriceMin": 35,
"ticketPriceMax": 35,
"ticketPriceCurrency": "USD",
"raw": {}
}Ways to use this data
- Concert listing sites and apps: pull tour dates, venues and ticket links to power your own event calendar or app.
- Ticket availability monitoring: run Incremental mode on a search or artist page to catch new on-sale dates and sold-out changes.
- Artist and label tour tracking: watch an artist's gigography for new tour announcements and cancellations.
- Music industry research: build datasets of venue capacities, ticket prices and touring patterns across cities and countries.
- Local event aggregation: collect every upcoming concert in a metro area for a local guide or newsletter.
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 Songkick Scraper return?
The documented output for Songkick Scraper includes kind, recordid, eventid, url, event, start, enddate and eventstatus. Availability of each field depends on the source page and the selected mode.
How much does Songkick Scraper cost?
It costs $2.00 per 1,000 results on the Apify Free plan and from $1.20 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 and UPDATED events (plus EXPIRED when Emit expired is on, and REAPPEARED for an event that an earlier Emit expired run had marked EXPIRED), and unchanged events are not billed unless you turn on Emit unchanged.
Why is venue address or ticket info missing from some events?
Events and Past events search results start thin: title, date, location text and a support-acts line. With Fetch event details on (the default), each event's own page is read once more to add venue address, geo, performers, ticket availability and tour info. Turn it off to skip that extra read and its surcharge, and you'll get only the fields the list or calendar page already carried. Artists, Venues and Locations searches resolve straight to a calendar page and already return full data either way.
Why did my run fail instead of returning an empty dataset?
The run fails with a clear message when nothing could be read at all (zero events and at least one page refused or unreadable), when an Artists, Venues or Locations search finds no matching entity, or when there is no query and no valid link. A genuinely empty search still succeeds with zero events, and one unreadable page among otherwise successful ones does not fail the run. Run it again in a few minutes if the site refused every request.
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.
