Shotgun Scraper — Events, Venues & Lineups avatar

Shotgun Scraper — Events, Venues & Lineups

Pricing

from $3.00 / 1,000 event results

Go to Apify Store
Shotgun Scraper — Events, Venues & Lineups

Shotgun Scraper — Events, Venues & Lineups

Scrape Shotgun.live events, venues, and artists by city, genre, date, or URL. Ticket prices, sold-out flags, GPS, and lineups from public pages. HTTP only, no login.

Pricing

from $3.00 / 1,000 event results

Rating

0.0

(0)

Developer

Andrej Kiva

Andrej Kiva

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

21 hours ago

Last modified

Share

Disclaimer: Unofficial tool — not affiliated with, sponsored by, or endorsed by Shotgun or its affiliates. Data is read from publicly accessible pages only. No login. You are responsible for complying with applicable law (including GDPR where personal data appears) and the site’s terms. No warranty on accuracy or availability. Provided for informational and research use.

Shotgun scraper for Apify — a Shotgun.live events scraper for city calendars, venue pages, and artist profiles. Built for nightlife aggregation, ticket-price monitoring, and promoter lead lists. Export dates, genres, display prices, sold-out flags, GPS, lineups, and ticket SKUs as JSON. A practical Shotgun API alternative for Python, Node.js, Sheets, and MCP / AI assistants. HTTP-only (no browser).

Crawloop Events suite — ticketed nightlife, editorial club calendars, and general catalogs.

Shotgun Scraper ◄── you are hereResident Advisor ScraperEventbrite Scraper
Ticketed club nights, prices, SKUsClub lineups, RA clubs & DJsConferences, gigs, organizers

When to use this Actor

  • Shotgun events scraper — city name or slug (paris, new-york), optional genre and date window
  • Venue / organizer scraper — paste a /venues/{slug} URL (address + public socials)
  • Artist scraper — paste a /artists/{slug} URL
  • Change monitor — scheduled runs that emit only new or changed prices / sold-out flags
  • Shotgun API alternative — structured dataset without an organizer API key

When not to use this Actor

  • Orders, barcodes, guest lists, or sold-ticket PII — organizer Tickets API, not public listings
  • Full-text search box — city + genre + URLs; search pages are client-rendered
  • RA magazine blurbs or Eventbrite conferences — use the suite siblings
  • Private or unlisted events — public marketplace pages only

Key features

  • HTTP listings — city cards already include date, venue, price, and genres
  • Optional event details — JSON-LD for description, door time, address, GPS, lineup, ticket SKUs
  • Start URLs — city, genre, date-bounded city, event, venue, and artist pages auto-routed
  • Monitor mode — remember ids between runs; emit only new or changed
  • Caps that save budgetmaxItems (default 50). Large cities can have thousands of upcoming nights
  • Residential proxy by default on Apify — Shotgun (Vercel) returns HTTP 429 to datacenter IPs. Local home-IP runs can turn the proxy off

Input Parameters

ParameterTypeDefaultDescription
modeStringeventsevents, venues, or artists. URLs are auto-routed either way
citiesArrayCity name or slug (paris, New York)
startUrlsArrayCity, event, venue, or artist URLs
genresArrayKeep events tagged with these genre names/slugs
dateFrom / dateToStringYYYY-MM-DD window
scrapeDetailsBooleanfalseExtra request per event for SKUs, GPS, lineup
maxItemsInteger50Hard cap (0 = unlimited)
monitorModeBooleanfalseEmit only new & changed rows
monitorKeyStringdefaultIsolated monitor memory per saved search
requestDelaySecsNumber0.2Delay between HTTP requests
proxyConfigurationObjectresidentialRequired on Apify cloud (Vercel 429 on datacenter IPs). Local HTTP often works without a proxy

Provide at least one of: cities, startUrls.

Input example — city calendar

{
"mode": "events",
"cities": ["paris"],
"maxItems": 50
}

Input example — genre + dates

{
"mode": "events",
"cities": ["new-york"],
"genres": ["techno"],
"dateFrom": "2026-09-18",
"dateTo": "2026-09-30",
"maxItems": 100
}

Input example — event URL + details

{
"startUrls": [
{ "url": "https://shotgun.live/en/events/example-event" }
],
"scrapeDetails": true,
"maxItems": 1
}

Input example — monitor a city

{
"mode": "events",
"cities": ["lisbon"],
"maxItems": 200,
"monitorMode": true,
"monitorKey": "lisbon-nights"
}

Output

Each dataset item is one event, venue, or artist (recordType).

FieldTypeDescription
recordTypeStringevent, venue, or artist
id / eventSlugStringStable id and URL slug
title / nameStringEvent title or profile name
urlStringCanonical event / profile page
startDate / endDate / doorTimeStringSchedule (details for end/door)
venueName / city / countryStringWhere it happens
venueAddress / latitude / longitudeString / NumberAddress + GPS on details
genreNamesArrayListing genre chips
priceAmount / priceCurrency / priceDisplayNumber / StringLowest public price
isSoldOutBooleanListing or SKU sold-out flag
artistNames / lineupArrayPerformers (details)
ticketsArrayTicket SKUs: name, price, availability (details)
organizerNameStringPromoter / organizer
instagram / websiteStringPublic socials on venue/artist rows
monitorChangeStringnew or changed in monitor mode
scrapedAtStringUTC timestamp

City listing rows already include date, venue, display price, and genres. Turn on scrapeDetails (or pass event URLs) for description, GPS, lineup, and ticket SKUs.

Output example — listing event

{
"recordType": "event",
"id": "576198",
"eventSlug": "frappeirfane",
"title": "Sacré X Frappé : Irfane, Basile De Suresnes & Ten Fingerz",
"url": "https://shotgun.live/en/events/frappeirfane",
"startDate": "2026-09-18T21:00:00.000Z",
"venueName": "Sacré",
"city": "Paris",
"citySlug": "paris",
"genreNames": ["House"],
"priceAmount": 9.99,
"priceCurrency": "EUR",
"isSoldOut": false,
"source": "city"
}

Use cases

  • Build a city nightlife feed with ticket prices and sold-out flags
  • Track promoter calendars and SKU price changes on a schedule
  • Collect venue Instagram / website leads from public profiles
  • Compare Shotgun ticketed nights with RA editorial lineups
  • Feed MCP / AI assistants a structured Shotgun dataset instead of HTML

Integration examples

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('crawloop/shotgun-scraper').call({
cities: ['paris'],
maxItems: 50,
scrapeDetails: false,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.slice(0, 5));

Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("crawloop/shotgun-scraper").call(
run_input={
"cities": ["paris"],
"maxItems": 50,
"scrapeDetails": False,
}
)
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items[:5])

cURL

curl "https://api.apify.com/v2/acts/crawloop~shotgun-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"cities":["paris"],"maxItems":20}'

MCP and AI assistants

Use this Actor from AI tools via Apify MCP. Connect your Apify account, then call this Actor by its Store ID crawloop/shotgun-scraper.

Example prompts:

  • "Run Shotgun Scraper for cities paris, max 30 events, and return title, date, venue, price, and URL as JSON"
  • "Scrape Shotgun techno nights in new-york this month and summarize sold-out vs on-sale"
  • "Chain Shotgun Scraper then Resident Advisor Scraper for Paris this weekend — ticket SKUs plus club lineups"

FAQ

Does this use the official Shotgun organizer API? No. The organizer Events/Tickets API needs an organizer token for your events. This Actor reads public city and event pages.

Why is search not an input? The public search UI is client-rendered. Use a city slug, a genre, dates, or a direct event/venue/artist URL.

Do listing rows include prices without scrapeDetails? Yes. City cards publish a display price and genre chips. SKUs, GPS, and lineup need scrapeDetails or an event URL.

Do I need a proxy? On the Apify platform, yes — Shotgun (Vercel) returns HTTP 429 to datacenter IPs. The input default is Apify Residential. Local runs from a home IP usually work with the proxy off.

Can Paris return thousands of rows? Yes. Set maxItems (default 50). Unlimited (0) will walk cumulative city pages and can be a large run.

Does monitor mode charge for unchanged events? No. Unchanged rows are skipped and not written to the dataset.

Can I scrape Shotgun with Python or Node.js? Yes. Call crawloop/shotgun-scraper from the Apify client (examples above) or via MCP. The dataset is JSON.

Is this a Shotgun API alternative? Yes, for public city calendars, event pages, venues, and artists. It is not a substitute for the organizer API (orders, barcodes, your own listings).

What to run next

After a Shotgun city dump, run Resident Advisor Scraper for the same city when you need editorial club calendars, DJ lineups, or public booking blurbs. Use Eventbrite Scraper for conferences and general catalogs.