OrbTop

Bandcamp New Release Scraper

FOR CREATORSBUSINESSLEAD GENERATION

Bandcamp New Release Scraper

Scrapes the Bandcamp Discover feed for new album and track releases. Filter by genre tag and sort order to track new music in any genre — from electronic and jazz to hip-hop and metal.

What it does

Calls the Bandcamp internal discover API to retrieve a rolling feed of new releases. Each result includes the album title, artist name, genre tag, release date, price, track count, artist location, featured track title, and direct Bandcamp URL. The actor paginates through the cursor-based feed until it reaches your maxItems limit.

Data is returned with no audio content — metadata only, with a clean legal posture.

Use cases

  • Music supervisors and sync agents tracking new indie releases in specific genres
  • Music blogs and newsletters building "new releases this week" roundups
  • A&R research monitoring emerging artists on Bandcamp
  • Price and release monitoring for music labels and distributors
  • Recurring weekly/daily feeds for any genre or global filter

Input

Field Type Default Description
maxItems integer 60 Maximum number of releases to scrape
genreTag string (all) Genre/tag slug to filter (e.g. electronic, hip-hop-rap, jazz)
sortOrder string new Sort order: new (newest), top (top releases), rec (recommended)

Genre tag examples

Use the normalized Bandcamp genre slug as the genreTag value:

electronic, rock, metal, alternative, hip-hop-rap, experimental, folk, pop, punk, ambient, soundtrack, world, jazz, latin, lo-fi, blues, classical, country, funk, r-b-soul, reggae, spoken-word

Example input

{
  "maxItems": 60,
  "genreTag": "electronic",
  "sortOrder": "new"
}

Leave genreTag empty to browse all genres on the main discover feed.

Output

Each result is a flat JSON object:

{
  "album_id": 1648818688,
  "title": "Atheosis",
  "artist": "Atheosis",
  "label": null,
  "genre_tag": "metal",
  "secondary_tags": null,
  "release_date": "2026-05-22",
  "price": 3.0,
  "currency": "GBP",
  "is_name_your_price": false,
  "track_count": 3,
  "location": "Brighton And Hove, UK",
  "featured_track": "Pale Emanation",
  "bandcamp_url": "https://atheosis1.bandcamp.com/album/atheosis",
  "artwork_url": "https://f4.bcbits.com/img/a2430942940_10.jpg"
}

Field reference

Field Type Description
album_id integer Bandcamp internal album ID
title string Album or release title
artist string Artist name
label string Record label name (null — not returned by the discover API)
genre_tag string Primary genre slug (from filter input or genre ID lookup)
secondary_tags string Secondary tags (null — not returned by the discover API)
release_date string Release date (YYYY-MM-DD)
price number Price in the listed currency (0 = free or name-your-price)
currency string Three-letter ISO 4217 currency code (e.g. USD, GBP)
is_name_your_price boolean Whether the release uses name-your-price pricing
track_count integer Number of tracks on the release
location string Artist-declared location (city, country, or region)
featured_track string Featured/preview track title
bandcamp_url string Full Bandcamp URL to the release page
artwork_url string URL to the album artwork thumbnail (350×350 JPG)

How it works

The actor calls the Bandcamp internal discover API (POST /api/discover/1/discover_web) using impit, which spoofs a Chrome TLS fingerprint to bypass Fastly's bot protection. Results are paginated via the API's cursor-based pagination until maxItems is reached.

No audio content is accessed or downloaded. No artist subdomains are crawled.

Notes

  • The Bandcamp discover feed only surfaces albums and releases, not individual tracks
  • label and secondary_tags fields are always null — the discover API does not include these in its response
  • Price amounts are in the currency listed in the currency field (not normalized to USD)
  • The is_name_your_price flag is derived from the combination of price.amount = 0, is_set_price = false, and is_free_download = false