Bandsintown APIbandsintown.com ↗
Access Bandsintown concert data: search artists, get upcoming and past events by artist or city, venue details, ticket links, and RSVP counts via 6 endpoints.
What is the Bandsintown API?
The Bandsintown API exposes 6 endpoints covering artist profiles, upcoming and past concert events, city-level event listings, and individual event details. Starting with search_artists, you can find any artist by name and retrieve their Bandsintown ID and slug, which then feeds into endpoints like get_artist_events and get_event_details for full tour schedules, venue addresses, ticket URLs, and real-time RSVP counts.
curl -X GET 'https://api.parse.bot/scraper/25ccb7dd-ea12-4f2c-bb0a-966dbe1228e3/search_artists?query=Radiohead' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace bandsintown-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Bandsintown concert discovery: search artists, browse past events, get event details."""
from parse_apis.Bandsintown_API import Bandsintown, CitySlug, ResourceNotFound
client = Bandsintown()
# Search for artists by name
for artist in client.artists.search(query="Radiohead", limit=3):
print(artist.name, artist.tracker_text, artist.verified)
# Get an artist's profile and upcoming events
profile = client.artist_profiles.get(artist="1488-drake")
print(profile.name, profile.follower_count_text, len(profile.events), "upcoming events")
# Browse the artist's past concert history
for past in profile.past_events.list(limit=3):
print(past.title, past.starts_at, past.city, past.country)
# Browse city events using the CitySlug enum
page = client.city_event_pages.get(city_slug=CitySlug.NEW_YORK_NY, page=1)
print(page.city_slug, page.next_page)
# Get full event details with venue and ticket info
try:
event = client.events.get(event="108324911")
print(event.artist_name, event.venue.name, event.venue.address, event.starts_at)
except ResourceNotFound as exc:
print(f"Event not found: {exc}")
print("exercised: artists.search / artist_profiles.get / past_events.list / city_event_pages.get / events.get")
Full-text search across Bandsintown's catalog. Returns matching artists, upcoming events near matching artists, festivals, and venues. Use artist id and name from results to construct slugs for get_artist_events (format: 'id-name', e.g. '1488-drake').
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Search term for artist name (e.g., 'Drake', 'Radiohead') |
{
"type": "object",
"fields": {
"events": "array of upcoming event objects matching the search",
"venues": "array of venue objects matching the search",
"artists": "array of artist objects with id, name, verified, trackerText, href",
"festivals": "array of festival objects matching the search"
},
"sample": {
"data": {
"events": [
{
"id": 107813861,
"href": "https://www.bandsintown.com/e/107813861",
"venue": {
"name": "Soundwell",
"location": "Salt Lake City, UT"
},
"startsAt": "2026-06-14T19:00:00",
"timezone": "America/Denver",
"artistName": "Drake Milligan"
}
],
"venues": [],
"artists": [
{
"id": 1488,
"href": "https://www.bandsintown.com/a/1488-drake",
"name": "Drake",
"verified": true,
"trackerText": "9,133,322 Followers"
}
],
"festivals": []
},
"status": "success"
}
}About the Bandsintown API
Artist Search and Profile Data
search_artists accepts a free-text query and returns four result sets: artists (with id, name, verified status, and href), upcoming events, venues, and festivals. The id and name fields from the artist results are used to construct the slug format id-name (e.g., 1488-drake) required by the other artist-focused endpoints. If you already know the artist's name but not their ID, get_artist_events_by_name resolves the best-matching artist automatically and returns both the artist_slug and artist_id alongside the full event list.
Upcoming and Past Events by Artist
get_artist_events takes an artist slug and returns the artist's profile fields — image_url, follower_count, follower_count_text, verified — plus an events array containing title, venue_name, city, starts_at, ticket_url, and lineup. Results can be filtered by country (ISO 3166-1 alpha-2 code, e.g., DE) or region (currently EU for all 27 EU member states). Artists with no scheduled shows return an empty events array. get_artist_past_events follows the same slug and filter parameters but returns historical concerts, including latitude, longitude, and a total_events count.
City Event Listings
get_city_events accepts a city_slug (e.g., denver-co, new-york-ny) and returns a paginated list of upcoming events in MusicEvent schema format, with name, startDate, location, performer, and offers fields. The page parameter enables pagination; next_page in the response is null when no further pages exist. Optional start_date and end_date parameters (ISO YYYY-MM-DD) let you narrow results to a specific date window.
Single Event Details
get_event_details takes an event slug (e.g., 107813856-drake-milligan-at-asbury-lanes) sourced from search or city event results, and returns the most granular data available: full venue address and addressMultiline, rsvp_count, timezone, starts_at, ends_at, image_url, and a lineup array of co-billed artist objects. This is the primary endpoint for building event detail pages or triggering ticket-purchase flows via ticket_url.
The Bandsintown API is a managed, monitored endpoint for bandsintown.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when bandsintown.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official bandsintown.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a tour schedule tracker that monitors upcoming shows for a list of artists using
get_artist_eventswith country filtering. - Power a city-based concert discovery app using
get_city_eventswith date range filters and pagination. - Display artist profile cards with follower counts and verified status pulled from
get_artist_eventsresponse fields. - Aggregate co-billed lineups across events by consuming the
lineuparray fromget_event_details. - Generate historical tour maps using
latitudeandlongitudefromget_artist_past_events. - Surface direct ticket links in a mobile app by extracting
ticket_urlfrom event objects. - Track RSVP momentum for upcoming shows by periodically polling
rsvp_countfromget_event_details.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Bandsintown have an official developer API?+
How do I get the artist slug needed by `get_artist_events`?+
search_artists with your artist's name. Each result in the artists array includes an id integer and a name string. Combine them as id-name (lowercase, hyphens replacing spaces) — for example, id 1488 and name Drake produces the slug 1488-drake. Alternatively, use get_artist_events_by_name which resolves this automatically and returns the artist_slug field directly.What geographic filters are available for artist event endpoints?+
get_artist_events and get_artist_past_events both accept a country parameter (ISO 3166-1 alpha-2, e.g., US, FR) and a region parameter, which currently supports EU to filter to the 27 EU member states. No sub-national filtering (state or city level) is available for these endpoints. get_city_events provides city-level scoping via the city_slug parameter instead.Does the API return streaming music data, discographies, or social media links for artists?+
Is there a limit to how far back `get_artist_past_events` returns data?+
total_events count. There is no explicit date-range parameter for past events — the full history is returned in a single response. If you need to filter by date range on historical data, you would need to post-process the starts_at field client-side. You can fork this API on Parse and revise it to add server-side date filtering for past events.