# Shotgun Live (`hypebridge/shotgun-live`) Actor

Scrape event data from Shotgun.live - the platform for electronic music events, nightlife, concerts, and party events worldwide.

- **URL**: https://apify.com/hypebridge/shotgun-live.md
- **Developed by:** [Hypebridge](https://apify.com/hypebridge) (community)
- **Categories:** E-commerce, Other, Travel
- **Features:** Limited permissions
- **Stats:** 54 total users, 3 monthly users, 100.0% runs succeeded, 3 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.125 / result

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### What does Shotgun.live Event Scraper do?

**Shotgun.live Event Scraper** turns city listings and venue or organizer calendars into event datasets with **start times, advertised ticket prices, venue names, and music genres**. Build nightlife calendars, compare club programs, or discover electronic music events from [Shotgun.live](https://shotgun.live).

These fields are included in **basic results** with `scrapeEventDetails: false` whenever they appear on the listing. Enable full event details for descriptions, artist lineups, addresses, organizers, and numeric ticket prices with currency codes.

### Why scrape Shotgun.live?

- **Publish a city nightlife calendar:** collect event names, start times, venues, prices, and genre labels for your guide or newsletter.
- **Follow a venue or organizer:** export its published event schedule, including historical events when shown, and compare upcoming club nights.
- **Find events by music genre:** use city filters for techno, house, trance, Afro, and other electronic scenes.
- **Research lineups and venues:** enable full details when you also need artist names, descriptions, addresses, and ticket information.

### What event data do you get?

| Data | Basic city and venue results | Full event details |
|------|------------------------------|--------------------|
| Event name and page URL | Yes | Yes |
| Start date and time | Exact listing time when published | Event start and end times when published |
| Venue name | When shown on the listing | Venue and address when published |
| Advertised ticket price | Displayed price label, including free events | Price label, numeric amount, and currency code |
| Music genres | Named labels shown on the listing | Genres published on the event page |
| Artist lineup and description | — | When published |
| Organizer and ticket link | — | When published |

Past event listings often omit prices. Some events have no genre labels. Venue and organizer listings do not always identify the event city; full details can provide more location information.

### Input

| Field                | Type    | Description                                                             | Default |
| -------------------- | ------- | ----------------------------------------------------------------------- | ------- |
| `startUrls`          | array   | **Required.** City, venue, or event URLs to scrape                      | -       |
| `scrapeEventDetails` | boolean | Navigate to each event page for full details (additional charges apply) | `false` |
| `maxEvents`          | integer | Maximum events to scrape across all start URLs (1–500)                  | `5`     |
| `startDate`          | string  | Inclusive city-listing range start (`YYYY-MM-DD`)                       | -       |
| `endDate`            | string  | Inclusive city-listing range end (`YYYY-MM-DD`)                         | -       |

#### Supported URLs

- City: `https://shotgun.live/{lang}/cities/{slug}`
- Filtered city: `https://shotgun.live/{lang}/cities/{slug}/{genre}`
- Date-bounded city: `https://shotgun.live/{lang}/cities/{slug}/{genre-or--}/{YYYY-MM-DD}`
- Venue: `https://shotgun.live/{lang}/venues/{slug}`
- Event: `https://shotgun.live/{lang}/events/{slug}`

Supported genre slugs include `afro`, `dance`, `hard-music`, `hip-hop`, `house`, `industrial`, `latino-brazilian`, `metal`, `pop`, `rock`, `techno`, `trance`, and `uk`.

### Examples

#### Export a city nightlife calendar with basic results

```json
{
  "startUrls": [{ "url": "https://shotgun.live/en/cities/new-york/techno" }],
  "scrapeEventDetails": false,
  "maxEvents": 3
}
```

This example returns up to three events with the listing's start time, venue, advertised price, and named genres. Use `startDate` and `endDate` for an inclusive city date window. The result limit applies across all input URLs.

#### Export a venue calendar with basic results

```json
{
  "startUrls": [{ "url": "https://shotgun.live/en/venues/construction-lisbon-club" }],
  "scrapeEventDetails": false,
  "maxEvents": 5
}
```

This example keeps full event details off and returns up to five published events. Historical events may be included; their prices can be absent. Replace the URL with another Shotgun venue or organizer profile.

#### Scrape specific events

```json
{
  "startUrls": [
    { "url": "https://shotgun.live/en/events/example-event" }
  ],
  "scrapeEventDetails": true,
  "maxEvents": 1
}
```

### Output

#### Basic Event

`startDate` uses the card's exact ISO timestamp when published; city cards without one retain the listing-section date at midnight UTC. `price` preserves Shotgun's displayed label, including free labels and currency symbols. Numeric price and ISO currency require event details. `genres` contains published badges, excluding overflow counters such as `+3`; an empty array means no named badges are shown. `venueSlug` retains the input profile slug for venue and organizer listings. Past venue cards often omit prices. Venue-profile cards do not identify the event city reliably, so `city` and `citySlug` remain null there rather than being guessed from a venue name.

```json
{
  "eventId": "afro-encircle-halloween-edition",
  "eventUrl": "https://shotgun.live/en/events/afro-encircle-halloween-edition",
  "eventSlug": "afro-encircle-halloween-edition",
  "title": "Afro Encircle - Halloween Edition 👻🔥",
  "city": null,
  "citySlug": null,
  "venue": "Village Underground Lisboa",
  "venueSlug": "saga-party",
  "startDate": "2026-10-31T23:00:00.000Z",
  "price": "€15.00",
  "genres": ["Afrobeat", "Shatta", "Amapiano"],
  "scrapedAt": "2026-10-19T14:04:57.371Z",
  "source": "shotgun_live"
}
```

#### Detailed Event

```json
{
  "eventId": "event-slug",
  "eventUrl": "https://shotgun.live/en/events/event-slug",
  "eventSlug": "event-slug",
  "title": "Event Title",
  "city": "Paris",
  "citySlug": "paris",
  "venue": "Club Name",
  "venueSlug": "club-name",
  "description": "Event description...",
  "startDate": "2026-09-12T21:00:00.000Z",
  "endDate": "2026-09-13T09:00:00.000Z",
  "doorTime": "2026-09-12T21:00:00.000Z",
  "venueAddress": "123 Example Street, Paris, France",
  "imageUrl": "https://res.cloudinary.com/shotgun/...",
  "ticketUrl": "https://shotgun.live/en/events/event-slug",
  "genres": ["Techno", "House"],
  "lineup": ["Artist 1", "Artist 2"],
  "price": "€25.00",
  "priceAmount": 25,
  "priceCurrency": "EUR",
  "isSoldOut": false,
  "country": "France",
  "scrapedAt": "2026-01-07T12:00:00.000Z",
  "source": "shotgun_live"
}
```

### Pricing and limits

- Each dataset result is charged according to the current Actor pricing shown in Apify Console.
- Detailed scraping adds a detail charge for every event page visited.
- Use `maxEvents` to control both result volume and spend. Published examples use small explicit limits.

### Related event scrapers

Looking for events from other platforms or need a single unified dataset? Explore our specialized event scrapers:

| Actor | Best For | Key Data Extracted |
|---|---|---|
| [Find Events](https://apify.com/hypebridge/find-events) | **All-in-one multi-platform search** across 16+ event sources | Aggregated & deduplicated events, normalized dates, venues, pricing |
| [Eventbrite Scraper](https://apify.com/hypebridge/eventbrite-search) | Global concerts, business conferences, festivals & city life | Event search, categories, ticket tiers, performers, organizer info |
| [Luma Event Scraper](https://apify.com/hypebridge/luma-com-event-scraper) | Tech meetups, hackathons, demo days, startup & Web3 events | Hosts, guest lists, ticket tiers, venue coordinates, calendar links |
| [Meetup Scraper](https://apify.com/hypebridge/meetup-scraper-all-urls) | Local community groups, networking, hobbies & recurring clubs | Groups, member counts, event series, RSVPs, organizers, topics |
| [Partiful Events Scraper](https://apify.com/hypebridge/partiful-events-scraper) | Social parties, creator gatherings, birthday events & private RSVPs | Guest RSVP status, hosts, event themes, questionnaires, venue details |
| [Dice.fm Event Scraper](https://apify.com/hypebridge/dice-fm) | Live music, club nights, concerts & major music festivals | Lineups, ticket tiers, release phases, door policies, promoters |
| [Resident Advisor Scraper](https://apify.com/hypebridge/resident-advisor-scraper) | Electronic music, club culture, underground DJs & festivals | Event lineups, promoters, venue directories, RA picks, ticket tiers |
| [Shotgun.live Event Scraper](https://apify.com/hypebridge/shotgun-live) | Electronic music, nightlife, techno parties & international club tours | Genres, lineups, dated city sections, venue profiles, ticket prices |
| [Posh.vip Event Scraper](https://apify.com/hypebridge/posh-vip) | Nightlife, exclusive social parties, college & influencer events | Lineups, ticket groups, attendance counts, organizer contact info |
| [Xceed Events Scraper](https://apify.com/hypebridge/xceed-events-scraper) | European nightlife, clubs, festivals & electronic music | Ticket tiers, fees, age policies, lineups, venue profiles |
| [Fever Events Scraper](https://apify.com/hypebridge/fever-events-scraper) | Immersive experiences, Candlelight concerts, city tours & exhibits | Sessions, time slots, pricing tiers, user reviews, venue coordinates |
| [Showpass Event Scraper](https://apify.com/hypebridge/showpass-event-scraper) | North American events, regional festivals, comedy & venue ticketing | Ticket types, price breakdowns, venue info, organizer details |
| [Sympla Events Scraper](https://apify.com/hypebridge/sympla-events-scraper) | Brazilian & Latin American concerts, conferences & Bileto events | Ticket tiers, installment plans, Bileto sectors, organizer info |
| [Eventnoire Events Scraper](https://apify.com/hypebridge/eventnoire) | Black culture events, lifestyle, nightlife, comedy & festivals | Event details, ticketing options, organizer bios, venue profiles |
| [Prekindle Event Scraper](https://apify.com/hypebridge/prekindle) | Live music venues, indie concerts, comedy shows & regional arts | Deeplinks, venue profiles, organizer links, event descriptions |
| [Eventeny Vendor & Market Scraper](https://apify.com/hypebridge/eventeny-vendor-market-directory) | Festivals, craft fairs, conventions, artisan markets & vendor expos | Vendor applications, booth pricing, deadlines, sponsor rosters |
| [RunSignup Race Scraper](https://apify.com/hypebridge/runsignup-race-scraper) | Marathons, 5Ks, triathlons, trail runs & charity endurance races | Registration fee ladders, price change dates, sub-events, sponsors |
| [FilmFreeway Festival Scraper](https://apify.com/hypebridge/filmfreeway-festival-scraper) | Film festivals, screenplay contests & creative competitions | Submission deadlines, category entry fees, award badges, venues |

### FAQ

#### Is scraping Shotgun.live legal?

Shotgun.live Event Scraper extracts only publicly accessible event listings published on Shotgun.live. It does not extract private customer data or user accounts. Always ensure your data collection complies with Shotgun.live's Terms of Service and applicable privacy laws.

#### Can I filter events by city and genre?

Yes. Shotgun.live supports city pages and genre filtering directly in URLs (e.g. `https://shotgun.live/en/cities/new-york/techno`).

#### How do date filters work?

You can provide `startDate` and `endDate` parameters (in `YYYY-MM-DD` format) to scrape events within a bounded time window.

### Support

- Report bugs or submit feature requests through the **Issues** tab.
- Use the **API** tab to run this Actor programmatically or integrate via webhooks.

> **Disclaimer**: This Actor extracts publicly available information. It does not collect private user data. Ensure that your collection and use of public data complies with applicable regulations and laws.

# Actor input Schema

## `startUrls` (type: `array`):

City, venue, or event URLs from Shotgun.live to scrape. City pages (e.g., https://shotgun.live/en/cities/new-york) will discover all events in that city. City URLs also support optional genre and/or date filters as path segments: /en/cities/{city}/{genre}/{YYYY-MM-DD} (use '-' as the genre placeholder for date-only, e.g. /en/cities/paris/-/2026-07-10). Genre slugs: afro, dance, downtempo, experimental, hard-music, hip-hop, house, industrial, instrumental, latino-brazilian, metal, pop, reggae-dub, rock, techno, trance, uk. Venue pages (e.g., https://shotgun.live/en/venues/volange) will discover all events at that venue. Event pages (e.g., https://shotgun.live/en/events/event-name) will scrape that specific event.

## `maxEvents` (type: `integer`):

Maximum number of events to scrape across all start URLs.

## `scrapeEventDetails` (type: `boolean`):

When enabled, navigates to each event page for complete information (venue, lineup, tickets). Additional charges apply per event scraped.

## `startDate` (type: `string`):

Optional inclusive start date for city pages. The scraper anchors Shotgun at this date and follows View more until the end date or another bounded stop condition.

## `endDate` (type: `string`):

Optional inclusive end date for city pages. Pagination stops after chronological listing sections pass this date.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://shotgun.live/en/cities/new-york/techno"
    }
  ],
  "maxEvents": 5,
  "scrapeEventDetails": false
}
```

# Actor output Schema

## `dataset` (type: `string`):

Complete dataset containing every extracted field.

## `overviewView` (type: `string`):

Compact event discovery view.

## `eventDetailsView` (type: `string`):

Detailed event, ticket, lineup, organizer, and venue fields.

# 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 = {
    "startUrls": [
        {
            "url": "https://shotgun.live/en/cities/new-york/techno"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("hypebridge/shotgun-live").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 = { "startUrls": [{ "url": "https://shotgun.live/en/cities/new-york/techno" }] }

# Run the Actor and wait for it to finish
run = client.actor("hypebridge/shotgun-live").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://shotgun.live/en/cities/new-york/techno"
    }
  ]
}' |
apify call hypebridge/shotgun-live --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hypebridge/shotgun-live"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

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