# Songkick Scraper — Concert & Tour Date Data (`aitorsm/songkick-events`) Actor

Scrape live concerts and gigs from Songkick by city: event name, date, venue with full address and coordinates, performing artists/lineup, ticket offers and links, organizer, and status. Structured JSON/CSV for tour managers, ticketing, music marketing, and event apps.

- **URL**: https://apify.com/aitorsm/songkick-events.md
- **Developed by:** [Aitor Sanchez-Mansilla](https://apify.com/aitorsm) (community)
- **Categories:** Automation, Developer tools, Travel
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Songkick Events Scraper — Concert, Artist & Venue Listing Intelligence

[![Songkick Events Scraper status](https://apify.com/actor-badge?actor=aitorsm/songkick-events)](https://apify.com/aitorsm/songkick-events)

The **Songkick Events Scraper** is a source of structured **concert data** for live music events and tour dates from [Songkick](https://www.songkick.com) — the global directory for live music, tours, and venue calendars. You give it a city (or a Songkick metro-area ID) and it returns a clean, structured row for every upcoming concert in that metro, including:

- Concert title, date/time, status, event page URL, and poster image
- **Performer lineup** — each act on the bill with its music genres and Songkick artist URL
- Full venue record — name, Songkick venue URL, street address, city, region, country, postal code, and latitude/longitude
- **Ticket offers** — provider link, availability, on-sale date, price, and currency
- Headliner name and a short event description

This is a **listings dataset**: every row is a concert. Songkick is artist/venue-centric, so the rows describe *what is playing where and when* — not promoter contact records. There is no organizer/promoter lead entity and no social-handle data on Songkick, so this Actor does not offer (and does not bill for) any contact-enrichment step. What you see is the full concert listing.

### Use Cases

#### 1. **Venue & Concert Calendar Intelligence**

Pull every upcoming concert in a metro to map which venues are active, how densely they are booked, and what genres dominate the calendar. Useful for venue-discovery tools, hospitality/tourism apps, and local "what's on" products.

#### 2. **Artist / Tour Tracking**

Each row's `performers[]` array lists every act on the bill with its genres and Songkick artist URL. Track which artists are touring a city, build tour-routing datasets, or feed talent-agency and music-data products.

#### 3. **Ticketing & Pricing Signals**

The `ticketOffers[]` array carries provider links, availability, on-sale date, price, and currency — useful for price-tracking, on-sale alerting, and resale/secondary-market monitoring.

#### 4. **Genre & Scene Mapping**

Performer genres plus venue geo coordinates let you map a city's live-music scene by style and neighborhood — input for editorial curation, recommendation engines, and music-tourism research.

#### 5. **Cross-Platform Event Database**

Combine Songkick concert listings with Eventbrite, Resident Advisor, DICE, and Bandsintown datasets for a unified multi-source live-music view. Shared fields (event name, venue, date, geo) make deduplication straightforward.

> **On the roadmap**: venue-specific listing mode and artist-specific tour mode. [Drop me a line](mailto:business@aitorsm.com) if either would unblock a use case — it helps me prioritize.

### Cost

This Actor uses simple **pay-per-event** pricing:

- **$0.03 per event scraped**

There is no enrichment add-on (Songkick exposes no promoter/contact entity to enrich), so the price is just the per-event rate. Apify's platform costs are included, so the total is predictable: a 250-concert metro sweep costs roughly **$7.50**.

### Input

- **`city`** — name of a city to pull concerts for (e.g. `"Los Angeles"`, `"London"`, `"New York"`, `"Berlin"`, `"Tokyo"`, `"Barcelona"`). The Actor resolves the name to a Songkick metro-area ID; ~25 major metros are recognized for instant lookup. For an unlisted metro, provide `metroAreaId` instead.
- **`metroAreaId`** *(advanced)* — Songkick's numeric metro-area ID. Find it on songkick.com → open a city page → the number in the URL before the country code (e.g. `17835` in `17835-us-los-angeles`). Overrides `city` when set.
- **`maxItems`** — maximum number of concerts to return. `0` = uncapped (paginates the entire metro calendar).
- **`startPage`** — listing page to begin from (`1` = first/soonest). Usually leave at `1`.

#### Sample inputs

**Quick city preview**:

```json
{ "city": "Los Angeles", "maxItems": 20 }
```

**Full metro sweep**:

```json
{ "city": "London", "maxItems": 0 }
```

**Direct metro-area access** (skips name resolution):

```json
{ "metroAreaId": 7644, "maxItems": 100 }
```

### Output

The data is returned in **JSON format**, ideal for direct ingestion into analytics platforms, CRMs, dashboards, or downstream pipelines. Every row is one concert.

#### Example entry

Input: `{ "city": "Los Angeles", "maxItems": 1 }`

```json
{
  "eventId": "42826361",
  "title": "Yungblud at Greek Theatre",
  "url": "https://www.songkick.com/concerts/42826361-yungblud-at-greek-theatre",
  "image": "https://images.sk-static.com/images/media/profile_images/artists/...",
  "eventDescription": "Yungblud live at Greek Theatre, Los Angeles.",
  "startDate": "2026-07-18T19:30:00-0700",
  "endDate": null,
  "eventStatus": "https://schema.org/EventScheduled",
  "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
  "venueName": "Greek Theatre",
  "venueSameAs": "https://www.songkick.com/venues/1730-greek-theatre",
  "addressLocality": "Los Angeles",
  "addressRegion": "CA",
  "addressCountry": "US",
  "streetAddress": "2700 N Vermont Ave",
  "postalCode": "90027",
  "latitude": 34.1197,
  "longitude": -118.2922,
  "performers": [
    {
      "name": "Yungblud",
      "genres": ["alternative rock", "pop punk"],
      "songkickUrl": "https://www.songkick.com/artists/8455674-yungblud"
    }
  ],
  "organizerName": "Yungblud",
  "ticketOffers": [
    {
      "url": "https://www.songkick.com/tickets/...",
      "availability": "https://schema.org/InStock",
      "validFrom": "2026-03-01T10:00:00-0800",
      "price": "55.00",
      "priceCurrency": "USD"
    }
  ],
  "scrapedFromMetroAreaId": 17835,
  "scrapedFromPage": 1,
  "scrapedAt": "2026-06-18T09:12:40.184Z"
}
```

#### Fields

| Field | Purpose |
|---|---|
| `eventId`, `url`, `title` | Concert identifier, canonical event page URL, and title |
| `image`, `eventDescription` | Event poster image and short description |
| `startDate`, `endDate`, `eventStatus`, `eventAttendanceMode` | Date/time, schedule status, and on-/offline attendance mode |
| `venueName`, `venueSameAs` | Venue name and Songkick venue URL |
| `streetAddress`, `addressLocality`, `addressRegion`, `addressCountry`, `postalCode` | Full venue address |
| `latitude`, `longitude` | Venue geo coordinates |
| **`performers[]`** | Lineup acts — each with `name`, `genres[]`, and `songkickUrl` |
| `organizerName` | Headliner artist name (Songkick's "organizer" is the headliner, **not** a promoter/contact) |
| **`ticketOffers[]`** | Ticket offers — each with `url`, `availability`, `validFrom`, `price`, `priceCurrency` |
| `scrapedFromMetroAreaId`, `scrapedFromPage`, `scrapedAt` | Source metro/page + capture timestamp (audit metadata) |

#### Simplified Overview

A simplified view of this data is shown directly in the **Apify console**:

```json
{
  "title": "Yungblud at Greek Theatre",
  "venueName": "Greek Theatre",
  "performers": [{ "name": "Yungblud", "genres": ["alternative rock"] }],
  "startDate": "2026-07-18T19:30:00-0700",
  "url": "https://www.songkick.com/concerts/42826361-yungblud-at-greek-theatre"
}
```

***

### How to Use

1. **Pick a city** — type a major city (LA, London, New York, Berlin, Tokyo, ~25 in fast lookup), or pass a `metroAreaId` directly.
2. **Set `maxItems`** — a small number for a quick test, `0` for the metro's full forward calendar.
3. **Run the Actor** — check the Overview tab to see concerts as they arrive.
4. **Export the dataset** — JSON, CSV, Excel, or HTML.

***

Start pulling Songkick concert listings today by running this Actor on Apify.

### FAQ

**What does this Actor return?**
Structured concert data for a city: every upcoming live-music event with its date, venue, full lineup (each act + genres), ticket offers, and geo coordinates. One row per concert.

**Does it give me promoter or organizer contacts?**
No. Songkick is artist/venue-centric — the "organizer" is the headliner, not a bookable promoter, and there are no contact records on the platform. For organizer/venue contacts, pair this with the [Email Extractor](https://apify.com/aitorsm/email-extractor) on venue websites, or use a contact-bearing source like [Eventbrite](https://apify.com/aitorsm/eventbrite).

**Can I build a multi-source live-music dataset?**
Yes. Concert data here shares event/venue/date/geo fields with the music siblings below, so deduplicating across platforms is straightforward.

**Is there a Songkick API — why use this instead?**
Songkick's API is gated behind a key and approval, rate-limited, and omits many of the fields you actually want (full lineups, ticket offers, geo). This Actor returns the complete structured record for every concert — date, venue, lineup with genres, ticket offers, and coordinates — with no API key and no quota: point it at a city and export to JSON, CSV, or Excel.

### Related Actors

Build a cross-platform live-music and event-data pipeline by combining Songkick with these:

- [Resident Advisor](https://apify.com/aitorsm/ra-events) — electronic music events, club nights, and festival listings.
- [DICE](https://apify.com/aitorsm/dice-events) — concert and venue data with ticketing signals.
- [Bandsintown](https://apify.com/aitorsm/bandsintown-events) — city-wide concert discovery with artist tour data + RSVP demand signals.
- [Eventbrite](https://apify.com/aitorsm/eventbrite) — broad event data and organizer listings across every category.
- [Luma Events](https://apify.com/aitorsm/luma-events) — tech, startup, and community event data.
- [Email Extractor](https://apify.com/aitorsm/email-extractor) — turn venue or organizer websites into emails and phone numbers.

### Contact

- **Email**: <business@aitorsm.com> — for custom features, advanced filtering, tailored data products, or anything off-spec.
- **Apify Discord**: find me as `aitor.sm`.

If this actor has been useful to you, please consider adding it to your bookmarks 📑 on Apify.

# Actor input Schema

## `city` (type: `string`):

City to pull concerts for (e.g. "Los Angeles", "London"). Resolves to a Songkick metro-area ID. For unlisted metros, provide `metroAreaId` directly.

## `metroAreaId` (type: `integer`):

Songkick numeric metro-area ID. Find it at songkick.com → city page → URL (number before the country code, e.g. 17835-us-los-angeles). Overrides `city` when set.

## `maxItems` (type: `integer`):

Maximum number of events to return. 0 = uncapped (paginates all available).

## `startPage` (type: `integer`):

Listing page to begin pagination from (1 = first/newest). Usually leave at 1.

## Actor input object example

```json
{
  "city": "Los Angeles",
  "maxItems": 100,
  "startPage": 1
}
```

# Actor output Schema

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

No description

# 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 = {
    "city": "Los Angeles",
    "maxItems": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("aitorsm/songkick-events").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 = {
    "city": "Los Angeles",
    "maxItems": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("aitorsm/songkick-events").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "city": "Los Angeles",
  "maxItems": 100
}' |
apify call aitorsm/songkick-events --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=aitorsm/songkick-events",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/a6XJGiJYO8HdvfJLy/builds/Ur7Xs4gXmy9ctnKc1/openapi.json
